Det har funnits en hel del intresse av sent för programmeringsspråk som innehåller funktioner från beroende typ system och bevis assistenter, för att fånga viktiga invarianter av programmet i typerna. Detta möjliggör typbaserad programverifiering och är en lovande kompromiss mellan vanliga gamla typer och fullblåsta Hoare logik bevis. Införandet av GADT i GHC (och senare typfamiljer) gjorde sådan beroende maskinskrivning tillgänglig i ett genomförande av branschkvalitet, vilket gör det möjligt att överväga dess användning i storskaliga program. Vi har genomfört byggandet av en komplett kompilator för System F, vars huvudsakliga egenskap är att GHC typ kontroll verifierar mekaniskt att varje fas av kompilatorn korrekt bevarar typer. Vårt fokus ligger särskilt på "typer snarare än bevis": någorlunda få kommentarer som inte överväldigar den faktiska koden. Vi anser att det bör vara möjligt att skriva en sådan typbevarande kompilator med en mängd extra kod som är jämförbar med vad som är nödvändigt för typiska maskinskrivna mellanspråk, men med fördelen av statisk kontroll. I detta dokument kommer vi att visa de återstående hindren för att nå detta mål.
På senare tid har författarna utökat genomförandet av övergången till stängning som en del av deras kompilator för System F REF.
A type-preserving compiler in Haskell
{'venue': 'ICFP', 'journal': None, 'mag_field_of_study': ['Computer Science']}