Ir para o conteúdo

Conversão de código, par a par

COBOL para ABAP

A mesma rotina, escrita à mão em COBOL e em ABAP. Ela está aqui para você ver o que muda e o que continua igual antes de alguém te passar um preço.

Antes · COBOL

       IDENTIFICATION DIVISION.
       PROGRAM-ID. INTEREST.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-BALANCE     PIC S9(9)V99 COMP-3 VALUE 0.
       01  WS-RATE        PIC S9(1)V9(4) COMP-3 VALUE 0.0425.
       01  WS-INTEREST    PIC S9(9)V99 COMP-3.
       PROCEDURE DIVISION.
           COMPUTE WS-INTEREST ROUNDED = WS-BALANCE * WS-RATE
           DISPLAY 'INTEREST: ' WS-INTEREST
           STOP RUN.

No que isso vira · ABAP

DATA: lv_balance  TYPE p DECIMALS 2 VALUE 0,
      lv_rate     TYPE p DECIMALS 4 VALUE '0.0425',
      lv_interest TYPE p DECIMALS 2.

lv_interest = lv_balance * lv_rate.
WRITE: / 'INTEREST:', lv_interest.
Uma rotina: um saldo vezes uma taxa, arredondado ao centavo. Escrita por um engenheiro nas duas linguagens, para você ler como o destino fica de verdade.
Abaixo está uma rotina nas duas linguagens. Num sistema de verdade o mesmo movimento roda sobre a árvore inteira de uma vez: a nossa plataforma lê em paralelo cada linguagem que existe ali, monta o grafo de dependências e um engenheiro corta as fronteiras. Um milhão de linhas é o tamanho normal desse trabalho, e ele termina dentro de trinta dias.

Como isso fica no seu sistema inteiro

Na sua base de código real o mesmo movimento responde o que um par de arquivos não alcança: que arquivos nada mais chama, que job batch escreve às 02:00 o registro que outro lê depois e se a versão reescrita ainda produz os números que seus auditores viram no mês passado. O diagnóstico volta com as três respostas em três a cinco dias.