ACM SIGPLAN Notices · 2003 · 20 citations · 34 references
ComputingComputer ScienceComputer SystemsFormal MethodsProgramming LanguagesSystems ProgrammingData TypesSpecification LanguagesType CheckingType ClassificationType SystemsDynamic Type CheckingPersistenceRuntime Type CheckingRuntime Type SystemsStatic Type CheckingType ConstructorsType PreservationType Safety
This paper proposes and develops the basic theory for a new approach to typing multi-stage languages based a notion of environment classifiers . This approach involves explicit but lightweight tracking -- at type-checking time -- of the origination environment for future-stage computations. Classification is less restrictive than the previously proposed notions of closedness, and allows for both a more expressive typing of the "run" construct and for a unifying account of typed multi-stage programmin.The proposed approach to typing requires making cross-stage persistence (CSP) explicit in the language. At the same time, it offers concrete new insights into the notion of levels and in turn into CSP itself. Type safety is established in the simply-typed setting. As a first step toward introducing classifiers to the Hindley-Milner setting, we propose an approach to integrating the two, and prove type preservation in this setting.
34
Principal type-schemes for functional programs
Robin Milner · 1982 · 1.1K citations
Philip Wadler · 1989 · 776 citations
Multi-stage programming with explicit annotations
Walid Taha, Tim Sheard · 1997 · 343 citations
Tutorial notes on partial evaluation
Charles Consel, Olivier Danvy · 1993 · 322 citations · Full text