Det är svårt att utforma och implementera maskinskrivna programmeringsspråk. Varje ny typ av systemfunktion kräver att metateorin och genomförandet utökas, vilket ofta är komplicerat och skört. För att underlätta denna process skulle vi vilja tillhandahålla allmänna mekanismer som underbygger många olika funktioner. I moderna typsystem är parametrisk polymorfism grundläggande, men skärningspunkten polymorfism har fått lite dragkraft i programmeringsspråk. De flesta praktiska korsningssystem har endast stöd för förfining korsningar, som ökar expressiviteten av typer (mer exakta egenskaper kan kontrolleras) utan att ändra uttryckligheten av termer; förfining korsningar kan helt enkelt raderas under sammanställning. Däremot ökar gränslösa korsningar uttryckligheten i termer, och kan användas för att koda olika språkfunktioner, lovande en ekonomi av både teori och genomförande. Vi beskriver en grund för sammanställning av gränslösa skärnings- och facktyper: ett utvecklingssystem som genererar vanliga λ-calculus-termer. Nyckelfunktionen är en Forsythe-liknande sammanfogningskonstruktion. Med denna konstruktion, inte alla minskningar av källkodsprogrammet bevara typer; men vi bevisar att vanlig call-by value utvärdering av det utarbetade programmet motsvarar en typbevarande utvärdering av källkodsprogrammet. Vi beskriver även en prototypimplementering och tillämpning av obegränsade korsningar och fackföreningar: register, operatörsöverbelastning och simulering av dynamisk maskinskrivning.
Dunfield föreslog en beräkning REF (som vi kallar λ, ) som visar betydande expressivitet av typsystem med obegränsad skärningspunkt typer och en (obegränsad) sammanfogning operatör.
Elaborating Intersection and Union Types
{'venue': 'J. Funct. Prog. 24 (2014) 133-165', 'journal': None, 'mag_field_of_study': ['Computer Science']}