Results 1 -
3 of
3
M-LISP: A Representation-Independent Dialect of LISP with Reduction Semantics
- ACM Transactions on Programming Languages and Systems
, 1992
"... In this paper we introduce M-LISP, a simple new dialect of LISP which is designed with an eye toward reconciling LISP's metalinguistic power with the structural style of operational semantics advocated by Plotkin [Plo75]. We begin by reviewing the original denition of LISP [McC61] in an attempt t ..."
Abstract
-
Cited by 21 (2 self)
- Add to MetaCart
In this paper we introduce M-LISP, a simple new dialect of LISP which is designed with an eye toward reconciling LISP's metalinguistic power with the structural style of operational semantics advocated by Plotkin [Plo75]. We begin by reviewing the original denition of LISP [McC61] in an attempt to clarify the source of its metalinguistic power. We nd that it arises from a problematic clause in this denition. We then dene the abstract syntax and operational semantics of M-LISP, essentially a hybrid of M-expression LISP and Scheme. Next, we tie the operational semantics to the corresponding equational logic. As usual, provable equality in the logic implies operational equality. Having established this framework we then extend M-LISP with the metalinguistic eval and reify operators (the latter is a non-strict operator which converts its argument to its metalanguage representation.) These operators encapsulate the metalinguistic representation conversions that occur globall...
A Semantics of Compile-time Reflection
, 1993
"... A new language incorporating both ML-style type checking and a limited form of reflection is defined by giving an interpreter and showing how this interpreter may be interpreted as a compositional denotational semantics. The resulting language has a partial function as a compiler, but if the compile ..."
Abstract
-
Cited by 10 (3 self)
- Add to MetaCart
A new language incorporating both ML-style type checking and a limited form of reflection is defined by giving an interpreter and showing how this interpreter may be interpreted as a compositional denotational semantics. The resulting language has a partial function as a compiler, but if the compiler terminates without a type error there will be no type-errors at runtime. Typing issues and first-class environments are discussed as well. 1 Introduction Traditionally reflection and strong typing are found on different sides of the schism that divides the lisp and functional programming communities. This paper introduces Compile-time Reflective ML (CRML), a reflective language with compile-time type checking and run-time type safety[14]. CRML provides a bridge between two rich cultures. When developing CRML, the goal was to create a system that was both expressive and useful, supported higher abstraction mechanisms, and that could be completely type checked at compile-time. The implement...
Type Safe Meta-Programming
, 1994
"... This paper advances a general theory of "generator" systems which is used to attack several well known problems associated with the use of program generators. ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
This paper advances a general theory of "generator" systems which is used to attack several well known problems associated with the use of program generators.

