Welke nieuwe inzichten op programmeren biedt ‘oersysteem‘ ALGOL 60, welke principes van dat in de jaren zestig van de vorige eeuw geïmplementeerde systeem houden anno 2019 nog steeds stand en hoe moet het systeem vanuit computerwetenschappelijk, filosofisch en historisch perspectief worden gekaderd? Die vragen behandelt CWI-promovendus Gauthier van den Hove. De Belg verdedigt vrijdag 15 februari 2019 zijn proefschrift ‘New Insights from Old Programs – The Structure of the First ALGOL 60 System’ aan de Universiteit van Amsterdam.
Om beter te begrijpen wat programmeren is en hoe het gedaan moet worden, reconstrueerde en analyseerde de CWI-promovendus het eerste ALGOL 60-systeem, een computersysteem ontworpen en in 1960 geïmplementeerd op het Mathematisch Centrum (MC), voorloper van het huidige CWI (‘Centrum Wiskunde & Informatica) in Amsterdam.
Van den Hove vertelt over zijn onderzoek: ‘Er kan veel over computerprogrammering en over de methoden die daarbij worden gebruikt worden geleerd door modelprogramma’s te bestuderen. Ik heb een bijzonder goed gemaakt computerprogramma gereconstrueerd: het eerste ALGOL 60-systeem, ontworpen en geïmplementeerd op het Mathematisch Centrum (MC), nu CWI, door Edsger Dijkstra en Jaap Zonneveld, met de hulp van Fiek Christen en Marlene Römgens, op een Electrologica X1-computer.’
Het onderzoek bestaat uit drie delen. Ten eerste behandelt hij de twee facetten van het probleem waarmee het MC-team werd geconfronteerd, namelijk de ALGOL 60-taal en de X1-computer. Ten tweede de principes van de oplossing – de implementatiekeuzes die het MC-team heeft gemaakt in vergelijking met andere mogelijkheden. Ten derde, de details van het MC ALGOL 60 systeem, reverse engineered vanuit de X1 assembler-bron. Volgens Van den Hove’s promotor prof. Paul Klint (CWI en UvA) is het onderzoek een unieke reconstructie en analyse van een van de meest invloedrijke compilers uit de geschiedenis van de informatica.
Donald Knuth
Het proefschrift heeft een voorwoord van de beroemde Amerikaanse computerpionier en Turing Award winnaar Donald Knuth. Die schrijft: ‘Grote computerprogramma’s behoren tot de belangrijkste intellectuele prestaties in de menselijke geschiedenis. Goed geschreven boeken over dergelijke meesterwerken zullen ongetwijfeld programmeurs van jong tot oud bezighouden en ons inspireren om ons bereik te blijven uitbreiden.’
Prof. Donald Knuth (Stanford University), die ook bekend is als de maker van opmaaktaal TeX, noemt de studie een belangrijke aanvulling op de literatuur. ‘Het is voorbestemd om een klassieker te worden, omdat het niet alleen de schoonheid van een diepgaand origineel en invloedrijk computerprogramma onthult, maar het ook de enorme betekenis van dit programma verklaart (…..). Dit fascinerende onderzoek dient als model voor de wetenschapsgeschiedenis: het bewijst dat geweldige software een geweldig verhaal maakt, zonder te beknibbelen op technische details.’
Conclusies
Van den Hove vindt het lastig om in een paar zinnen de uitkomsten van zijn lijvige onderzoek te noemen. In een poging om in een paar zinnen conclusies van zijn promotieschrift te delen, meldt hij desgevraagd:
‘Voor computerwetenschappers en computerprogrammeurs is een belangrijke uitkomst dat de vertaal- en runtime-technieken die in die vroege programmeertaal zijn geïmplementeerd nog steeds competitief zijn.’ Verder merkt de onderzoeker op dat een gedetailleerde bestudering van computerprogramma’s een belangrijk instrument is, wat hem betreft de beste mogelijkheid, om de moeilijkheden in programmeertalen te achterhalen.
Hij meldt dat het ondoenlijk is om wetenschappelijk aan te tonen wanneer een computerprogramma ‘correct’ is. Voor computerwetenschappers biedt het onderzoek inzicht in hoe bepaalde computerprogramma’s historisch gekaderd kunnen worden en de impact van die programmeertalen kunnen worden geduid. Verder biedt het onderzoek volgens de promovendus houvast voor filosofen die zoeken naar een precieze definitie voor het begrip ‘programmeren’.
SWAT
Het onderzoek is uitgevoerd in de onderzoeksgroep Software Analysis and Transformation (SWAT) van het CWI in Amsterdam. SWAT bestudeert het ontwerp, de constructie en evolutie van softwaresystemen om ze te begrijpen en de kwaliteit ervan te verbeteren. Het onderzoek is gefinancierd door NWO.