Virtuele Machines voor Gewone Stervelingen

Begeleiders:

Een virtuele machine of interpreter implementatie bouwen is een complexe taak. Om een goede performantie te halen wordt vaak gekozen voor C als implementatietaal. Vanuit een software engineering standpunt is dat echter niet noodzakelijk de beste keuze. Er zijn dan ook reeds een aantal systemen die voor een alternatieve taal kiezen, al dan niet specifiek ontworpen voor dat bepaald systeem. Zo is de Squeak virtuele machine ontwikkeld in Slang, een (vrij gerestricteerde) subset van Smalltalk en is de Jikes RVM ontwikkeld in Java. Het PyPy project omvat een meta-circulaire Python interpreter die door een uitgebreide toolchain omgezet wordt naar C.

Elk van deze systemen hebben echter ook hun beperkingen. Slang is bijvoorbeeld niet veel expressiever dan C, de Jikes RVM steunt volkomen op het feit dat alle code dynamisch wordt gecompileerd i.p.v. geinterpreteerd, en in PyPy is het abstractieniveau soms te hoog om bepaalde aspecten van een virtuele machine te kunnen implementeren.

Het idee achter dit thesisvoorstel is om een programmeertaal te ontwikkelen die deze problemen aanpakt en dus specifiek gericht is op de implementatie van virtuele machines. Tijdens je stage is het de bedoeling om een proof-of-concept implementatie van zo'n taal en een eenvoudige virtuele machine (bijvoorbeeld voor Pico of Scheme) in die taal te ontwikkelen. De resultaten van deze experimenten vormen de basis voor je thesis, waarin je deze aanpak vergelijkt met reeds bestaande systemen.