PyPy-projektet försöker både på forskningsnivå och på praktisk nivå bevisa genomförbarheten av att bygga en virtuell maskin (VM) för ett dynamiskt språk på ett dynamiskt språk - i detta fall Python. Syftet är att översätta (dvs. kompilera) VM till godtyckliga målmiljöer, som varierar i nivå från C/Posix till Smalltalk/Squeak via Java och CLI/.NET, samtidigt som den fortfarande är av rimlig effektivitet i dessa miljöer. Ett viktigt verktyg för att uppnå detta mål är att systematiskt återanvända Python-språket som ett systemprogrammeringsspråk på olika nivåer av vår arkitektur och översättningsprocess. För varje nivå, utformar vi ett motsvarande typsystem och tillämpar en generisk typ inference motor - till exempel, sopfångaren är skriven i en stil som manipulerar simulerade pekare och adressobjekt, och när de översätts till C dessa operationer blir C-nivå pekare och adress instruktioner.
PyPy-projektet REF har ett liknande tillvägagångssätt och tillhandahåller verktyg för att implementera språk som tolkar, samtidigt som man återanvänder gemensamma element som t.ex. en metatracing JIT-kompilator och sopsamlaren.
PyPy's approach to virtual machine construction
{'venue': "OOPSLA '06", 'journal': None, 'mag_field_of_study': ['Computer Science']}