Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
@article{CSX-FI05,
author = "Chiyan Chen and Rui Shi and Hongwei Xi",
title = {{Implementing Typeful Program Transformations}},
journal = "Fundamenta Informaticae",
year = 2005,
volume = "69",
number = "1-2",
pages = "103-121",
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, 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.
}}
}