COBOL-ohjelman siirtäminen modernille kielelle voi säilyttää syntaksin mutta samalla muuttaa rahalaskennan sääntöjä. OpenAI omisti tälle ongelmalle 19. lokakuuta julkaistun kirjoituksen: yhtiö kertoi malliensa tuloksista COBOLin, Fortranin ja muiden niukemmin koulutusmateriaalia sisältävien kielten ohjelmointitesteissä ja julkaisi MultiLangBench-aineiston.

Vanhoja yritysjärjestelmiä ylläpitäville tiimeille uutisen hyödyllinen anti eivät ole vain ilmoitetut prosenttiluvut, vaan myös kaksi erilaista arviointitapaa. Toisessa mitataan ohjelmien luomista alusta alkaen eri kielillä; toisessa selvitetään, säilyttääkö COBOL-koodin siirto ohjelman havaittavan toiminnan. Tehtävät edellyttävät erilaisia testejä, ja niiden käyttöönottoon liittyvät riskit ovat erilaisia.
Kaksi testiä, kaksi teknistä tehtävää
MultiLangBenchissä mallin pitää luoda SQLite-yhteensopiva moottori, joka vastaanottaa kyselyitä ja muokkaa tietokantatiedostoa. OpenAI ilmoittaa 20 kielen testien keskimääräisen läpäisyprosentin: GPT‑6 Astra sai 87,4 prosenttia suurimmalla päättelytasolla, kun taas GPT‑5.6 Sol sai 26,8 prosenttia. Kunkin toteutuksen tulosta verrataan tietokannan odotettuun sisältöön; arvioinnissa tarkastellaan myös suoritusaikaa ja API-kustannuksia.
Yhtiö julkaisi MultiLangBenchin GitHubissa testausinfrastruktuureineen. Julkaistussa repositoriossa kuvataan SQLite TCL Tests -aineistoon perustuvia testejä ja tulosten tarkistussäännöt. Kehittäjät voivat tutustua siihen, mitä toimintoja arviointiin kuuluu, ja toistaa testin omalla malliasetuksellaan.
COBOL-migraatiotestissä arvioidaan toisenlaista kykyä: olemassa oleva ohjelma kirjoitetaan uudelleen C++:lla, Javalla, Kotlinilla, Pythonilla tai Rustilla siten, että sen toiminta säilyy piilotetuissa testeissä. OpenAI ilmoittaa GPT‑6.1 Solin tarkkuudeksi 86,6 prosenttia matalalla päättelytasolla, kun GPT‑5.6 Solin tulos samassa tilassa oli 5,4 prosenttia. Korkeammalla päättelytasolla GPT‑6.1 Solin tulos nousee tässä arvioinnissa 97,9 prosenttiin.
Miksi siirrossa on tarkistettava liiketoimintasäännöt
OpenAI korostaa kuvauksessaan, että yhteensopivuus riippuu lähdekielen semantiikasta. Esimerkiksi COBOLin kiinteän tarkkuuden aritmetiikka katkaisee ylimääräiset desimaalit, ellei pyöristystä määritellä erikseen. Jos uusi toteutus pyöristää ne eri tavalla, ohjelma voi toimia moitteettomasti mutta tuottaa silti erilaisia taloudellisia tuloksia.
Siirtotestin kriteerinä on siis tulosten yhtäpitävyys testatuissa tapauksissa. Tiimin käytännön arviointiin pitää lisäksi sisällyttää omat laskentasäännöt, datamuodot ja järjestelmäriippuvuudet. Hyvä ensimmäinen askel on valita moduuli, jolla on selkeä syöte ja tuloste, tallentaa vertailutulokset oikeiden ääritapausten pohjalta ja ajaa alkuperäistä sekä uudelleenkirjoitettua versiota rinnakkain.
Mitä tulokset merkitsevät tiimeille
OpenAI:n luvut koskevat julkaistuja aineistoja ja päättelyasetuksia. MultiLangBench arvioi SQLite-yhteensopivan toteutuksen luomista, kun taas COBOL-aineistolla testataan toiminnan säilymistä siirrossa; tulokset kuvaavat juuri näitä arviointeja. Tiimeille ne antavat viitepisteen mallien valintaan ja pohjan omalle toistettavalle vertailulle, eivät valmista arviota yhteensopivuudesta minkä tahansa tuotantojärjestelmän kanssa.
Käytännön johtopäätös on yksinkertainen: malleja kannattaa testata omalla koodilla ja omilla vertailutapauksilla sekä tarkastella kustannuksia onnistumisprosentin rinnalla. COBOLin uudistamisessa on erityisen tärkeää tarkistaa pyöristykset, puuttuvat tietueet ja muut vanhan ohjelman toimintaan vakiintuneet säännöt. Uudet tulokset helpottavat tällaista arviointia, mutta vastaavuuden varmistaminen kuuluu edelleen tekniseen työhön.