Spring til artiklen
nyhederModellanceringer
← Tilbage til nyhederne
Penge & marked · Mistral AI · 09.09.2026 · 2 min. læsning

Mistral migrerede 40.000 linjer Fortran til C++

En europæisk energivirksomhed fik flyttet et fysikberegnet reservoirsimulator med et test-setup, der måler numerisk overensstemmelse før og efter.

Først et målebånd for tallene

Mistral hjalp en europæisk energivirksomhed med at flytte 40.000 linjer Fortran 77 over i C++. Koden var en fysiktung reservoirsimulator uden testsuite og uden samlet dokumentation.

Før et eneste AI-agent-oversættelsesforsøg blev sat i gang, byggede holdet det, de kalder et parity harness: en kontrol, der beviser, at begge kodetyper regner ens. Agenter blev bedt om at tilføje rutiner i Fortran-koden, som gemmer tilstandsbilleder, mens C++-testframeworken bruger de samme værdier som reference.

I et eksempel dumpede en indsat linje værdien 42.71834 for variablen RHOG, og den samme værdi blev kontrolpunkt for det oversatte C++-modul. Kriteriet var numerisk overensstemmelse i både slutresultater og en række kritiske mellemled, som virksomhedens reservoiringeniører udpegede.

Det gjorde lange agentkøringer tryggere, skriver Mistral, og netop dette bør være et af de første skridt i et moderniseringsprojekt.

Fortran migreret til C++ i projektets første sprint
40.000 linjer
Samlet omfang af den Fortran-baserede kodebase
300.000 linjer
Agenter sat i gang til at dokumentere kaldetræet
over 100

Over hundrede agenter skrev dokumentation

Projektets dokumentation lå spredt i gamle PDF-filer og i kommentarer dybt inde i Fortran-koden. Proceduralkode har en praktisk egenskab: hele programmet kan tegnes som ét træ af kaldende og kaldte rutiner.

Mistral parsede kodebasen med en egen parser og brugte Vibe CLI til at starte over hundrede agenter, der dokumenterede træet. De enkelte agenter kunne trække relevante PDF'er ind via dokumentbiblioteker og Mistral OCR.

Arbejdet gik nedefra i træet og opad: hver node skabte en underagent, der dokumenterede den og åbnede en pull request i det oprindelige repository. En reviewer-agent kørte på fast tidsplan, gennemgik nye pull requests og planlagte rettelser, når det var nødvendigt.

Fuld autonomi gav Fortran i C++-træk

Ved første forsøg fik hver Fortran-subroutine sin egen agent, der oversatte selvstændigt i en uge. Resultatet virkede, men COMMON-blocke blev globale struct'er ét til ét, og GOTO-styret kontrolflow stod urørt tilbage. Ifølge Mistral lignede det Fortran omskrevet med C++-syntax.

Andet forsøg gav agenterne struktur: planlægger, kodende, tester og kvalitetsgennemgående agent per modul. Kvaliteten steg mærkbart, men agenterne gik i stå ved svære fejl og havde ingen til at løse dem.

Løsningen blev et mellemting: en menneskelig operatør styrer en arbejdsgang af kodende, testende og gennemgående agenter modul for modul, med en menneskelig godkendelse af pull requests. Modulerne blev udpeget via træet som selvstændige dele på under cirka 10.000 Fortran-linjer.

Flere detaljer
Derfor er det interessantUden en menneskelig checkpoint stod agenterne stille ved svære fejl, viser Mistral: struktureret samarbejde bevarede kodekvaliteten og fjerede propperne.

Kilder:
Mistral AI →

Læs dagens AI-nyheder på letlæst dansk →

Genfortalt i egne ord af AI-nyheder.com · Tjek altid originalkilden, før du handler på vigtige oplysninger.