Uitvoerbare Archeologie van Programma's die Programmeren Modelleren: Het Reanimeren van de Heuristic Compiler (1961) en KBEmacs (1984)

Samenvatting

Vroege AI-programma's waren vaak ook theorieën over hoe mensen denken, en programma's die programma's schreven waren, in zekere mate, theorieën over hoe mensen programmeren. Hier rapporteren we over de reanimatie van twee van dergelijke programma's die twee schijnbaar verschillende theorieën over programmeren bieden en ontwikkeld zijn voor totaal verschillende doeleinden.

De Heuristic Compiler (1961)

De eerste, de Heuristic Compiler van Herbert Simon (1961), was een experimenteel model van programmeren als probleemoplossing. Hierbij werden de means-ends analysis-methoden van de General Problem Solver toegepast om de aard van de programmeertaak te onderzoeken.

KBEmacs (1984)

De tweede, KBEmacs (1984), was een werkend prototype van een intelligente programmeerassistent, ontwikkeld door het Programmer's Apprentice-project van MIT. Dit systeem was gebouwd op het inzicht dat deskundige programmeurs bekende patronen, of "clichés", herkennen en combineren. Het stelde een programmeur in staat om programma's op te bouwen door clichés te combineren via een gestileerde Engelse opdrachttaal.

Methodologie: Uitvoerbare Archeologie

We benaderen beide systemen via de methodologie van Uitvoerbare Archeologie (Executable Archaeology). Dit is de studie van historische computationele systemen door hun originele code uit te voeren, een proces dat we "reanimatie" noemen.

De resultaten van deze reanimaties zijn als volgt:

  • De reanimatie van de Heuristic Compiler reproduceert de gecompileerde code die verschijnt in het artikel van Simon uit 1963.
  • De reanimatie van KBEmacs reproduceert de SQRT-sequentie van de zelftest uit december 1984.

Analyse en Conclusies

Wanneer de twee systemen naast elkaar worden gelegd, blijkt dat de twee theorieën veel gemeen hebben: de Heuristic Compiler werkt ook door bestaande routines aan te passen, en Simon betoogde later dat enkel zoeken een grote hoeveelheid programmeerkennis vereist.

Om de reflexiviteit van dit project te benadrukken, hebben we bewust een moderne AI-ondersteunde programmeertool gebruikt, Anthropic's Claude Code (Opus 5.5), om een groot deel van het gedetailleerde reanimatiewerk uit te voeren, voortbouwend op een aanzienlijke basis van bestaande software.

De expliciete, uitvoerbare theorieën over programmeren die beide systemen belichaamden, ontbreken grotendeels in de huidige, veel capabelere AI-codeassistenten.