COBOLAssist: Analyzing and Fixing Compilation Errors for LLM-Powered COBOL Code Generation
Dit paper introduceert COBOLAssist, een framework dat grote taalmodellen gebruikt om compilatiefouten in gegenereerde COBOL-code iteratief te corrigeren, waardoor de compilatiesuccespercentages aanzienlijk worden verhoogd ondanks de beperkte functionele correctheid van sommige modellen.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
De Probleemstelling: De Vergeten Taal van de Oude Kerk
Stel je voor dat de wereldwijde economie draait op een reusachtige, oude kerk. Deze kerk is gebouwd met een heel specifieke bouwstijl uit de jaren '50, genaamd COBOL. Het is een taal die heel letterlijk is, net als een streng ouderwetse instructie: "Als het regent, doe dan de deur dicht." Geen ruimte voor dubbelzinnigheid.
Het probleem? De oude bouwmeesters die deze taal spreken, gaan met pensioen. De jonge bouwmeesters die nu aan de slag gaan, spreken moderne talen (zoals Python of JavaScript) en hebben nooit geleerd hoe ze deze oude kerk moeten repareren.
Om dit op te lossen, proberen we LLMs (grote kunstmatige intelligenties, zoals de hersenpan van een supercomputer) om deze oude COBOL-code voor ons te schrijven. Maar hier komt de twist: deze AI's zijn geweldig in moderne talen, maar ze struikelen over de strenge regels van COBOL. Het is alsof je een moderne architect vraagt om een middeleeuwse kathedraal te bouwen; hij gebruikt de juiste stenen, maar plaatst ze in de verkeerde volgorde. Het resultaat is een bouwwerk dat instort (een compilatiefout) voordat het zelfs maar kan worden gebruikt.
De Oplossing: COBOLAssist (De Slimme Bouwmeester)
De auteurs van dit papier hebben een slimme oplossing bedacht, genaamd COBOLAssist.
Stel je voor dat de AI een beginnende leerling is die probeert een COBOL-gebouw te bouwen.
- De Eerste Poging: De AI schrijft een stuk code.
- De Inspecteur: Een strenge inspecteur (de compiler) kijkt ernaar en roept: "Fout! Je hebt de deur vergeten te sluiten!" of "Je hebt twee keer dezelfde fundering gebruikt!"
- De Feedback: In plaats van de AI te laten stoppen, geven we deze foutmelding terug aan de AI.
- De Herhaling: De AI leest de melding, denkt na, en probeert het opnieuw. Dit proces herhaalt zich totdat de inspecteur zegt: "Goed, dit bouwwerk staat stevig."
Dit noemen ze iteratief zelfrepareren. De AI leert van zijn eigen fouten, net als een leerling die van een leraar terugkoppeling krijgt.
Wat hebben ze ontdekt?
De onderzoekers hebben gekeken naar de fouten die de AI maakt en hoe COBOLAssist hielp:
- De AI is niet perfect: Zonder hulp faalt de AI vaak. Bijvoorbeeld, bij de krachtigste AI (GPT-4o) lukte het maar in 42% van de gevallen om een werkend programma te maken.
- Specifieke fouten: De AI maakt andere fouten dan mensen. Mensen maken soms typfouten, maar de AI vergeet vaak de hele structuur. Ze vergeten bijvoorbeeld een puntje aan het einde van een zin te zetten (wat in COBOL cruciaal is) of gebruiken een woord op de verkeerde manier, alsof ze een moderne taal in een oude tekst proberen te plakken.
- Het succes van COBOLAssist: Met de hulp van de inspecteur (de compiler) en het herhaaldelijk proberen, steeg het succes van GPT-4o van 42% naar 96%. Dat is een enorme sprong! Het is alsof je een leerling die eerst maar 4 van de 10 vragen goed had, na wat extra uitleg en oefening 9,6 van de 10 laat halen.
De Grenzen van de AI
Hoewel het systeem wonderen doet voor de structuur van het gebouw (de muren staan recht, de deuren sluiten), is de AI nog niet perfect in het doel van het gebouw.
Soms staat het gebouw stevig, maar werkt de lift niet of is de keuken te klein. In technische termen: de code compileert (werkt), maar doet niet precies wat je wilt (functionele fouten). De AI is dus goed in het volgen van regels, maar soms nog niet in het begrijpen van de diepere logica.
Conclusie
Dit onderzoek laat zien dat we AI kunnen gebruiken om de oude COBOL-wereld te redden, maar we kunnen niet zomaar wachten tot de AI het perfect doet. We moeten de AI een strenge leraar geven (de compiler) die haar keer op keer corrigeert.
Kort samengevat:
We hebben een oude, moeilijke taal die bijna niemand meer spreekt. We hebben slimme computers die proberen die taal te leren, maar ze maken veel fouten. Door die computers te laten werken met een systeem dat ze direct vertelt waar ze fout gaan, kunnen we ze trainen tot ze bijna perfect zijn. Dit helpt om de oude systemen van banken en overheden veilig en modern te houden, terwijl we wachten tot er nieuwe mensen zijn die de taal echt spreken.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.