← Nieuwste papers
💻 computer science

A Minimal Executable Proof for Multi-Language Contract Traceability

Dit artikel presenteert een minimaal, falsifieerbaar uitvoerbaar bewijs dat aantoont hoe een meerlinguïstisch contract, een implementatiegrafiek, een traceerbaarheidsketen en een reviewpoort kunnen worden gevalideerd aan de hand van zes "Hello, world!"-programma's in verschillende talen, wat resulteert in vijf succesvolle doorgangresultaten en één overgang wegens ontbrekende hulpmiddelen.

Oorspronkelijke auteurs: Werner Kasselman

Gepubliceerd 2026-05-28
📖 4 min leestijd☕ Koffiepauze-leesvoer

Oorspronkelijke auteurs: Werner Kasselman

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

Stel je voor dat je een rechter bent in een zeer strenge rechtszaal. Je hebt één enkele, kleine regel voor een spel: "Zeg 'Hello, world!' precies zoals geschreven, zonder extra ruis, en stop onmiddellijk."

Dit artikel is geen groots theorie over hoe het volledige rechtssysteem van software moet worden opgebouwd. In plaats daarvan is het een opzettelijk kleine, zelfstandige bewijsvoering die aantoont dat we een "rechtszaal" kunnen bouwen waarin we kunnen controleren of verschillende mensen (die in verschillende talen schrijven) die ene simpele regel hebben gevolgd.

Hieronder wordt uiteengezet hoe het artikel is opgebouwd, met behulp van alledaagse analogieën:

1. Het "Contract" (Het Reglement)

De auteurs hebben een digitaal reglement gemaakt dat een Contract wordt genoemd.

  • De Regel: Het computerprogramma moet de exacte letters Hello, world! afdrukken, gevolgd door een "nieuwe regel" (alsof je op Enter drukt). Het mag niets naar het "fout"-kanaal printen (geen schreeuwen) en het moet eindigen met een "0" (een perfecte score).
  • De Analogie: Denk hierbij aan een bakwedstrijd waarbij de enige regel is: "De taart moet precies 10 inch breed zijn." Als hij 10,1 inch is, of als hij verbrand is, dan heb je verloren.

2. De "Getuigen" (De Testers)

Om te bewijzen dat de regel is gevolgd, gebruikt het artikel Getuigen. Dit zijn geautomatiseerde scripts (kleine robots) die het werk controleren.

  • De Hoofdgetuige: Deze voert zes verschillende versies van het programma uit, geschreven in zes verschillende talen (Rust, Go, C, Java, TypeScript en AWK).
  • Het Resultaat: Vijf daarvan slaagden perfect. Eén (Java) werd gemarkeerd als "SKIP" omdat de rechter niet de juiste gereedschappen (een Java-compiler) op zijn bureau had om deze te controleren. Het was geen mislukking; de test kon gewoon niet plaatsvinden.
  • De Analogie: Stel je een proever voor die zes verschillende taarten probeert. Vijf smaken precies goed. De zesde zit in een doos die ze niet kunnen openen, dus markeren ze deze als "Niet Getest" in plaats van "Slecht".

3. De "DAG" (Het Stamboom)

Het artikel maakt gebruik van een structuur die een DAG (Directed Acyclic Graph) wordt genoemd.

  • Het Concept: Stel je een stamboom voor. Je hebt de "Grootouders" (de broncodebestanden), en deze voeden allemaal een "Ouder" (de verificatiestap).
  • Het Doel: Deze kaart toont precies welk codebestand leidde tot welk testresultaat. Het bewijst dat de test niet zomaar door magie is gebeurd; het was een direct, traceerbaar resultaat van specifieke code.

4. De "Herschrijvingen" (De Magie)

Het artikel test ook of het systeem kan opmerken wanneer iemand probeert de regel te "verbergen".

  • De Go-Truc: Een programmeur schreef het "Hello, world!"-bericht op een zeer ingewikkelde, gedraaide manier (alsof je een geheime code schrijft). Het artikel beweert dat het systeem nog steeds het "skelet" van de code kan zien (de functienamen), zelfs als het "vlees" (de letterlijke tekst) verborgen is.
  • De AWK-Truc: Een andere taal (AWK) stond niet op de officiële lijst van talen die het systeem normaal gesproken begrijpt. Daarom maakten de auteurs een speciale "fallback"-controlelijst speciaal hiervoor.
  • De Analogie: Het is alsof een detective kan zien dat een verdachte een vermomming draagt (de gedraaide code), maar toch zijn lengte en schoenmaat kan herkennen (de codestructuur). Voor de taal die de detective niet kent, gebruiken ze gewoon een eenvoudigere controlelijst.

5. Wat dit Artikel NIET IS (De "Niet-Beweringen")

Dit is het belangrijkste deel. De auteurs zijn zeer voorzichtig om te zeggen wat ze niet doen:

  • Het is geen benchmark: Ze zeggen niet dat hun systeem het snelste of beste is.
  • Het is geen garantie voor de echte wereld: Ze claimen niet dat dit systeem elke hacker kan oppakken of elke bug in een enorme bank kan oplossen.
  • Het gaat niet over "Betekenis": Ze bewijzen niet dat twee complexe programma's dezelfde betekenis hebben. Ze bewijzen alleen dat voor dit kleine voorbeeld de regels zijn gevolgd.

De Conclusie

Beschouw dit artikel als een blauwdruk voor één enkele, perfecte baksteen.

De auteurs proberen nog geen wolkenkrabber te bouwen. Ze zeggen: "Kijk, we hebben één kleine baksteen gebouwd. We hebben een kaart van hoe deze is gemaakt, een lijst van de gebruikte gereedschappen en een getuige die bevestigt dat deze voldoet aan de grootte-eis. Als je dezelfde gereedschappen hebt, kun je exact dezelfde baksteen bouwen en hetzelfde resultaat zien."

Het doel is om te laten zien dat transparantie mogelijk is: je kunt een bewering (we hebben de regel gevolgd) helemaal terugtraceerbaar maken tot de specifieke code en de specifieke test die het bewezen.

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 →