Ir al contenido

Conversores de código

Perl a COBOL

La misma rutina, escrita a mano en Perl y en COBOL. Está aquí para que vea qué cambia y qué no antes de que nadie le pase un presupuesto.

Lo que tiene · Perl

sub interest {
    my ($balance, $rate) = @_;
    return sprintf('%.2f', $balance * $rate);
}

En qué se convierte · 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.
Una rutina: un saldo multiplicado por un tipo, redondeado al céntimo. Escrita por una persona en los dos lenguajes, no sacada de una herramienta. Su fichero es más largo y tiene más cosas dentro, que es justo de lo que va esto.
Leer dos ficheros uno al lado del otro es la mitad fácil. La difícil es el resto del sistema: qué ficheros ya no llama nadie, qué proceso escribe el registro que otro lee a las 02:00 y si la reescritura sigue dando las cifras que sus auditores vieron el mes pasado. Ese trabajo corre sobre nuestra plataforma y lo vigila un ingeniero. Empieza con una lectura de su código.

Cuando un conversor deja de bastar

Comparar dos ficheros es la mitad fácil. Nada de lo que hay en esta página puede decirle qué ficheros ya no llama nadie, qué proceso batch escribe el registro que otro lee a las 02:00, ni si la versión reescrita sigue dando las cifras que sus auditores vieron el mes pasado. La auditoría responde a eso sobre su propio código.