M-LISP: a representation-independent dialect of LISP with reduction semantics
- 1 October 1992
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 14 (4) , 589-616
- https://doi.org/10.1145/133233.133254
Abstract
In this paper we introduce M-LISP, a dialect of LISP designed with an eye toward reconciling LISP's metalinguistic power with the structural style of operational semantics advocated by Plotkin [28]. We begin by reviewing the original definition of LISP [20] in an attempt to clarify the source of its metalinguistic power. We find that it arises from a problematic clause in this definition. We then define 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 nonstrict operator that converts its argument to its metalanguage representation). These operators encapsulate the matalinguistic representation conversions that occur globally in S-expression LISP. We show that the naive versions of these operators render LISP's equational logic inconsistent. On the positive side, we show that a naturally restricted form of the eval operator is confluent and therefore a conservative extension of M-LISP. Unfortunately, we must weaken the logic considerably to obtain a consistent theory of reification.Keywords
This publication has 8 references indexed in Scilit:
- Unique normal forms for lambda calculus with surjective pairingInformation and Computation, 1989
- A critique of Abelson and Sussman or why calculating is better than schemingACM SIGPLAN Notices, 1987
- Can programming be liberated from the von Neumann style?Communications of the ACM, 1978
- Call-by-name, call-by-value and the λ-calculusTheoretical Computer Science, 1975
- Proving Theorems about LISP FunctionsJournal of the ACM, 1975
- Tree-Manipulating Systems and Church-Rosser TheoremsJournal of the ACM, 1973
- LISP 1.5 PROGRAMMER'S MANUALPublished by Defense Technical Information Center (DTIC) ,1962
- Recursive functions of symbolic expressions and their computation by machine, Part ICommunications of the ACM, 1960