Conversão PL / I

Conversão do PL / I para Java ou .NET

O CodeLiberator converte aplicativos PL / I de Mainframe ou de sistema aberto para a plataforma Java ou .NET, incluindo a lógica de negócios, o acesso aos dados e a interface do usuário.

Quando o banco de dados subjacente é migrado, as instruções de acesso aos dados são convertidas adequadamente dependendo do banco de dados de destino que pode ser mecanismo relacional (Oracle, DB2 / UDB, MSSQL, etc.), solução NoSQL ou simplesmente arquivo. Oferecemos suporte aos tipos diferentes de acesso aos dados, como o DAO separado, para mantê-lo transparente ou SQL padrão.
Vários tipos de soluções de interface de usuário que geralmente vêm com PL / I, e. CICS / BMS ou IMS / DC, também são convertidos para o destino que pode ser JSF ou HTML / JavaScript independente de plataforma (programação reativa).
Assim como em outras conversões de linguagem, todos os elementos de linguagem específicos do PL / I (atributos, tipos de dados, funções, estruturas de controle) são inteiramente suportados pela solução, ALIGNED, POINTER e GOTO, entre outros. O CodeLiberator é capaz de aplicar mais padrões durante a conversão para gerenciar os arquivos INCLUDE e outros pré-processadores da PL / I para encontrar um equilíbrio razoável entre código de manutenção e retenção do conceito de reutilização de código. A sintaxe e estrutura do código é direta e simples de seguir tanto para novos desenvolvedores quanto para programadores de PL / I, além de refletir a convenção de nomenclatura e a estrutura dos programas originais.


Quais fontes de PL / I devem ser usadas como entrada correta para conversão?

news-image-2Um dos desafios mais interessantes da conversão do PL / I para Java é gerado por instruções de pré-processador como% INCLUDE,% DECLARE,% ACTIVATE,% IF -% THEN -% ELSE,% DO -% END, etc.

Quando as fontes de PL / I contêm instruções pré-processador (procedimentos), então obviamente o código “fonte” é diferente daquele que é finalmente passado para o compilador PL / I. Estas instruções / procedimentos do pré-processador são executados imediatamente antes da compilação e podem alterar o código-fonte, adicionando ou removendo partes do código. Então, afinal de contas, a questão é qual código deve ser a entrada para uma conversão de idioma, aquela antes ou depois do pré-processamento de PL / I.

Quando as fontes PL / I contêm instruções pré-processador (procedimentos), então obviamente o código “fonte” é diferente daquele que é finalmente passado para o compilador PL / I. Estas instruções / procedimentos do pré-processador são executados imediatamente antes da compilação e podem alterar o código-fonte, adicionando ou removendo partes do código. Então, afinal de contas, a questão é qual código deve ser a entrada para uma conversão de idioma, aquela antes ou depois do pré-processamento de PL / I.


Quando as fontes antes do pré-processamento de PL / I devem ser usadas como entrada para a conversão do PL / I para Java

O conceito de pré-processamento serve principalmente 3 objetivos: reutilização de código, melhorar a capacidade de manutenção, aumentar o desempenho. O exemplo mais simples para isso é o processador% INCLUDE, que permite a reutilização de código altamente eficiente. Sempre que possível, o programa separado e o conceito de arquivo de inclusão devem ser preservados por qualquer solução de migração para o Java, caso contrário, a manutenção geral do aplicativo de destino diminuirá consideravelmente. Se a solução de conversão PL / I não suporta esse recurso automaticamente, isso representa um sério risco para o projeto de migração PL / I!


Quando as fontes após o pré-processamento de PL / I devem ser usadas como entrada para conversão do PL / I para Java

news-image-2Nos casos em que o arquivo de origem PL / I não pode ser analisado como uma unidade sintaticamente correta e completa, a conversão de código tecnicamente razoável do arquivo de origem original não é possível e o arquivo de origem após o pré-processamento PL / I precisa ser convertido.

Essa abordagem também pode ser necessária quando a conversão de arquivos de origem não processados ​​resulta em efeitos colaterais inaceitáveis. Os efeitos colaterais desse caso são causados ​​pelo fato de que a execução de instruções originalmente colocadas na fase de pré-processamento é deslocada para o tempo de execução do aplicativo no cenário de destino. O efeito pode ser: código convertido com capacidade de manutenção baixa ou desempenho baixo.

O LiberatorWorkbench permite intervenção humana nas regras de conversão do PL / I para Java. Por isso, caso código ou desempenho de qualidade baixa seja resultado dos algoritmos de conversão padrão (arquivos de origem antes do pré-processamento), ele pode ser alterado por especialistas de conversão, encontrando assim o equilíbrio correto.
O pré-processador PL / I permite várias construções de linguagem evitando que arquivos de origem não processados ​​sejam convertidos razoavelmente para Java.


Conversão dos elementos específicos de PL / I para Java

A conversão do código PL / I para um sistema funcionalmente equivalente em Java pode ser considerada bem-sucedida quando o sistema de destino fornece dados e serviços idênticos originais em quaisquer estágios de execução. Consequentemente, a tecnologia de conversão correta deve ser capaz de implementar toda a construção específica de PL / I em algum formato. Os elementos principais de linguagem específicos da PL / I são abordados em várias fases e formas pelo LiberatorWorkbench da FreeSoft.

Gerenciado na fase de conversão de código ou por utilitários específicos:

  • Atributos padrão
  • Declarações contendo atributos LIKE
  • Uma resolução de nomes não totalmente qualificados
  • Identificação dos tipos de dados para todos os símbolos (variáveis, literais, funções)
  • Variáveis ​​dinamicamente alocadas
  • Definição de âmbito variável
  • Identificação de referências de seções cruzadas ‘Array’
  • Construções de etiqueta GOTO – fatiamento de código, lançando exceções, etc.
  • Criando métodos a partir de condições ON
  • Implementação precisa de bits dos tipos de dados PL / I
  • Alocação / remoção e uso dinâmico de variáveis
  • Manipular referências de seções cruzadas ‘Array’
  • PL / I I / O (Stream, Record, …) operações, dependências do sistema operacional (por exemplo, formato do nome do caminho)
  • Conversões de tipo implícito
  • implementação precisa de bit de funções embutidas PL / I / pseudo-variáveis ​​(SUBSTR, INDEX, UNSPEC, etc.

Customização dos processos de conversão PL / I

A tecnologia de conversão de código da FreeSoft foi projetada e implementada para permitir a personalização de regras em todas as fases (análise, modelagem, geração de código) do processo de conversão, de acordo com solicitações de clientes específicas para arquitetura de destino e sintaxe de código.
Nas fases iniciais, as regras definem qual estado dos arquivos de origem (antes ou depois do pré-processamento PL / I) será usado como entrada para conversão. O mecanismo LiberatorWorkbench também aceita listas para definir o grupo de fontes a serem tomadas após o pré-processamento.
A fase de modelagem também permite que regras customizadas sejam executadas nos modelos de código intermediários por meio de refatoração.
Finalmente, para geração de código, também usamos regras e padrões personalizados predefinidos, por exemplo, convenções de nomenclatura, sintaxe para instruções diferentes, padrão para chamadas externas (chamadas de serviço), etc.


Não hesite em solicitar uma amostra de conversão enviando-nos alguns programas de PL / I ou inscreva para uma Demo, para que possamos orientá-lo no processo de conversão de PL / I para Java.