Portabilidade de r-codes - parte I

Escrito por Marcos Kirchner em 15 de setembro de 2008, 08:30h

Programas escritos na linguagem Progress passam por um processo de compilação antes de serem executados. O compilador é um software que converte o código-fonte do programa para uma representação que a máquina virtual do Progress entenda.

O processo de compilação pode ocorrer em tempo de execução, mas é normal que os usuários já recebam os programas pré-compilados. Estes programas compilados e prontos para execução são os r-codes, representados na forma de arquivos com a extensão .r.

As principais vantagens de compilar os programas antes de enviar aos usuários:

  • os usuários não precisam de uma licença de desenvolvimento Progress;
  • o capital intelectual está protegido, visto que o código do programa não será legível;
  • tempo de resposta mais rápido para as operações do usuário, visto que cada programa não precisará ser compilado antes de ser executado.

A principal desvantagem de pré-compilar os programas é que os r-codes gerados não são compatíveis para todos os ambientes, e o objetivo desta série de posts é explicar as regras para portabilidade dos r-codes.

A primeira regra para portabilidade é o tipo de interface: gráfica ou texto. Todos os programas que gerem alguma informação em tela estão sujeitos a esta regra.

Um r-code que tenha sido compilado para o client gráfico (prowin32) não poderá ser executado com o client texto (_progress), e vice-versa. Ao tentar executar um r-code em um client incompatível, o Progress gera o erro:
Program was compiled under another incompatible display environment. Cannot run without recompile. (4438)

Existe uma consideração adicional para os programas web (WebSpeed). Estes programas executam em um client texto, mas o processo de compilação deve ser realizado via web, com a ferramenta WebSpeed Workshop. Caso os programas web sejam compilados com um client texto padrão, poderão ocorrer travamentos e erros Memory Violation (49) durante a execução.

A maior parte dos programas expedidos pela Datasul são compilados para o modo gráfico, ou são programas que não possuem interface. Programas que não possuam interface com o usuário são compatíveis com qualquer client, independente da forma que tenham sido compilados.

Alguns programas, como por exemplo o RPW, precisam executar também em ambientes texto, e outros em ambiente web (WebAcess, por exemplo). Estes programas são compilados com o client texto ou com o Workshop, conforme necessidade.

A necessidade de um r-code diferente para clients texto ou web é o motivo pelo qual alguns programas do produto podem estar duplicados, normalmente nos diretórios tty, unix, hpuxitanium64 e web.

No próximo post veremos mais duas regras para que os r-codes sejam compatíveis com um determinado ambiente: versão do Progress e plataforma (32/64-bit).

Categorias: Ambiente | Progress

Tags: , , ,

Comentar




biuquote
  • Comentário
  • Pré-visualização
Loading


Acesso LogMeIn

Informe o código PIN: