Begreppet programomvandling är allmänt förekommande i programmeringsspråkstudier på tolkar, kompilatorer, delutvärderare osv. För att genomföra en programomvandling måste vi välja en representation i metaspråket, det vill säga det programmeringsspråk i vilket vi konstruerar program, för att representera objektprogram, det vill säga de program i objektspråket på vilka programomvandlingen ska utföras. I praktiken, de flesta representationer som väljs för maskinskrivna objektprogram är typlösa i den meningen att typen av ett objekt program inte kan återspeglas i typen av dess representation. Detta är otillfredsställande som sådana typlösa representationer gör det omöjligt att fånga i typsystemet av metaspråket olika invarianter i ett program transformation som är relaterade till de typer av objektprogram. I detta dokument, föreslår vi en strategi för att genomföra programomvandlingar som använder sig av en första ordningen typfull program representation bildas i beroende ML (DML), där typen av ett objektprogram samt de typer av fria variabler i objektet programmet kan återspeglas i typen av representation av objektet programmet. Vi introducerar några programmeringstekniker som behövs för att hantera denna typ av program representation, och sedan presentera en implementering av en CPS transform funktion där förhållandet mellan typen av ett objektprogram och dess CPS transform fångas i typsystemet för DML. I ett bredare sammanhang hävdar vi att vi har tagit ett stabilt steg i forskningen om att bygga certifieringskompilatorer.
I REF, Chiyan Chen et al. Visa också en CPS-transformation där typbevarande egenskapen kodas i metaspråkets typsystem.
Implementing typeful program transformations
{'venue': "PEPM '03", 'journal': None, 'mag_field_of_study': ['Computer Science']}