Conversão de código, par a par
Rust para COBOL
A mesma rotina, escrita à mão em Rust e em COBOL. Ela está aqui para você ver o que muda e o que continua igual antes de alguém te passar um preço.
Antes · Rust
fn interest(balance: Decimal, rate: Decimal) -> Decimal {
(balance * rate).round_dp(2)
}No que isso vira · 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.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.