← Nieuwste papers
💻 computer science

Do Code LLMs Do Static Analysis?

Dit onderzoek concludeert dat code-LLMs slecht presteren bij statische analyse en dat training op statische analyse-taken niet leidt tot betere prestaties in code-intelligentie-taken, en vice versa.

Oorspronkelijke auteurs: Chia-Yi Su, Collin McMillan

Gepubliceerd 2026-03-27
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Chia-Yi Su, Collin McMillan

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 Kernvraag: Denken computers net als mensen?

Stel je voor dat je een zeer slimme, maar nogal raadselachtige robot hebt die alles over programmeren lijkt te weten. Deze robot kan code schrijven, uitleggen wat code doet en zelfs code van de ene taal naar de andere vertalen. Mensen noemen dit "redeneren" of "creativiteit".

De onderzoekers van dit paper (Chia-Yi Su en Collin McMillan) stelden zich echter een heel specifieke vraag: Doet deze robot eigenlijk wel "statische analyse"?

Wat is statische analyse?
Voor mensen is programmeren niet alleen maar typen. Als een mens een groot programma bekijkt, doet hij alsof hij een landkaart tekent. Hij kijkt niet alleen naar de woorden, maar vraagt zich af:

  1. Welke functie belt welke andere functie? (De landkaart van de wegen).
  2. Hoe stroomt de data door het programma? (De waterleidingen).
  3. Hoe is de structuur van de code opgebouwd? (Het skelet van het gebouw).

Mensen doen dit om het programma echt te begrijpen. De onderzoekers wilden weten: doet de AI dit ook, of is het gewoon een slimme "woordvoorspeller" die de vorm van de code nabootst zonder de betekenis te snappen?

Het Experiment: De Test

Om dit te testen, lieten ze de AI (zoals GPT-4, Gemini en open-source modellen) drie dingen doen:

  1. De "Landkaarten" tekenen: De AI moest de landkaart van de code (call graphs), de waterleidingen (dataflow) en het skelet (AST) maken.
  2. De "Bouwwerk" doen: De AI moest code schrijven, samenvatten of vertalen.
  3. De "Oefening" doen: Ze trainden de AI specifiek om die landkaarten te tekenen, om te zien of dit hem hielp bij het bouwen van code. En andersom: trainden ze hem om code te bouwen, om te zien of hij dan per ongeluk ook landkaarten kon tekenen.

De Resultaten: Een Teleurstellende Ontdekking

De uitkomsten waren verrassend en een beetje ongemakkelijk voor de hype rond AI:

1. De AI is slecht in het tekenen van landkaarten
Hoewel de AI goed is in het schrijven van code, faalt hij bijna volledig als hij moet uitleggen hoe die code werkt.

  • Vergelijking: Het is alsof je een robot vraagt om een recept te schrijven voor een taart (code schrijven). Dat doet hij perfect. Maar als je vraagt: "Teken een diagram van welke ingrediënten naar welke stap gaan en welke bakkerij welke oven gebruikt" (statische analyse), dan maakt de robot een complete warboel. Hij weet de woorden, maar niet de logica erachter.

2. Oefening baart kunst... maar alleen voor de vorm
Toen ze de AI speciaal trainden om die landkaarten te tekenen, werd hij er iets beter in, maar alleen op het niveau van de vorm.

  • Vergelijping: Het is alsof je iemand leert een tekening van een huis te maken door alleen de lijnen na te trekken. Hij leert dat er een dak en muren moeten zijn, maar hij snapt niet dat het dak water moet weren of dat de muren de wind moeten tegenhouden. Als je hem daarna vraagt om een echt huis te bouwen, maakt hij dezelfde fouten als voorheen.

3. Geen "doorwerking" naar beter programmeren
Dit is het belangrijkste punt: Als je de AI traint om de landkaarten te tekenen, wordt hij niet beter in het schrijven van goede code. En als je hem traint om goede code te schrijven, leert hij niet automatisch hoe je die landkaarten tekent.

  • Conclusie: Mensen gebruiken het tekenen van landkaarten als een tussenstap om beter te programmeren. De AI doet dit niet. Hij slaat de tussenstap over en probeert direct het eindresultaat te raden op basis van patronen die hij eerder heeft gezien.

4. De "Hallucinaties"
De AI maakt vaak fouten die eruitzien als logische redeneringen, maar die volledig verkeerd zijn.

  • Vergelijking: Stel je voor dat de AI een landkaart tekent en zegt: "Deze weg gaat van A naar B." Maar in werkelijkheid is er een muur tussen A en B. De AI ziet de muur niet, omdat hij alleen kijkt naar de woorden "weg" en "A" en "B" in zijn trainingsdata, niet naar de fysieke realiteit van de code.

Wat betekent dit voor de toekomst?

De onderzoekers concluderen dat Large Language Models (LLMs) waarschijnlijk niet "denken" zoals mensen. Ze hebben geen intern model van hoe een programma werkt. Ze zijn meer als een extreem slimme parrot die de vorm van programmeertaal perfect heeft gememoriseerd, maar de betekenis (de logica en de structuur) niet echt begrijpt.

  • Voor de gebruiker: Je kunt AI gebruiken om snel code te genereren, maar je moet er altijd zelf op controleren of de logica klopt. De AI "weet" niet of zijn code veilig of logisch is; hij denkt alleen dat het eruit ziet als code.
  • Voor de wetenschap: We moeten misschien nieuwe manieren van trainen bedenken. Als we willen dat AI echt goed wordt in software engineering, moeten we hem misschien leren om die "landkaarten" eerst te tekenen, net als mensen, in plaats van alleen maar eindresultaten te laten voorspellen.

Kortom: De AI is een meester in het nabootsen van de uiterlijke schijn van programmeren, maar mist de inwendige logica die menselijke programmeurs gebruiken om complexe problemen op te lossen.

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.

Probeer Digest →