Abstract
The notion of program transformation is ubiquitous in programming language studies on interpreters, compilers, partial evaluators, etc. In order to implement a program transformation, we need to choose a representation in the meta language, that is, the programming language in which we construct programs, for representing object programs, that is, the programs in the object language on which the program transformation is to be performed. In practice, most representations chosen for typed object programs are typeless in the sense that the type of an object program cannot be reflected in the type of its representation. This is unsatisfactory as such typeless representations make it impossible to capture in the type system of the meta language various invariants in a program transformation that are related to the types of object programs. In this paper, we propose an approach to implementing program transformations that makes use of a first-order typeful program representation formed in Dependent ML (DML), where the type of an object program as well as the types of the free variables in the object program can be reflected in the type of the representation of the object program. We introduce some programming techniques needed to handle this typeful program representation, and then present an implementation of a CPS transform function where the relation between the type of an object program and that of its CPS transform is captured in the type system of DML. In a broader context, we claim to have taken a solid step along the line of research on constructing certifying compilers.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference21 articles.
1. Explicit substitutions
2. Cayenne---a language with dependent types
3. L. Augustsson and M. Carlsson. An excercise in dependent types: A well-typed interpreter 1999. Available as http://www.cs.chalmers.se/˜augustss/cayenne/interp.ps]] L. Augustsson and M. Carlsson. An excercise in dependent types: A well-typed interpreter 1999. Available as http://www.cs.chalmers.se/˜augustss/cayenne/interp.ps]]
4. Typing dynamic typing
Cited by
2 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A unified treatment of syntax with binders;Journal of Functional Programming;2012-08-15
2. Typed Transformations of Typed Grammars: The Left Corner Transform;Electronic Notes in Theoretical Computer Science;2010-09