MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Macroexpansion Reflective Tower (1996) [6 citations — 2 self]

by Christian Queinnec
Proceedings of the Reflection’96 Conference
Add To MetaCart

Abstract:

Macros are reflective tools that operate on the representation of programs. Though having been used, and still being useful, for more than thirty years, their semantics and pragmatics are still unclear. This paper proposes a new model to understand the macroexpansion process; this model is based on a reflective tower of macroexpansion engines. 1 Introduction Macros are definitely a forte of Lisp dialects. They confer upon the powerful users a means to adapt their language to their problems and this is, in our mind, one of the key reasons for Lisp's longevity. Despite the various attempts to standardize macros [Ste90, CR91b] and even if most of them are just quite simple abbreviations, they still represent one of the thorniest problems that occur when porting code between dialects of Lisp: a sure sign of their ambiguous nature. Even in Scheme, macros still have a dark side with respect to their scope, their extent and their meaning i.e., their definition language. This paper proposes a...

Citations

157 The revised report on the algorithmic language Scheme – Clinger, Rees - 1991
112 Hygienic macro expansion – Kohlbecker, Friedman, et al. - 1986
74 Macros that Work – Clinger, Rees - 1993
63 The mystery of the tower revealed: A non-reflective description of the reflecitve tower – Wand, Friedman - 1988
58 The implementation of procedurally reflective languages – Rivi`eres, Smith - 1984
39 The evolution of LISP – Steele, Gabriel - 1993
35 Syntactic abstraction – Dybvig, Hieb, et al. - 1993
26 Syntactic closures – Bawden, Rees - 1988
21 M-LISP: A representation-independent dialect of LISP with reduction semantics – Muller - 1992
15 Modules, macros and Lisp – Queinnec, Padget - 1991
12 Expansion-passing style: A general macro mechanism – Dybvig, Friedman, et al.
11 Interactive modular programming in scheme – Tung - 1992
6 Talking about modules and delivery – Davis, Parquier, et al. - 1994
5 An Overview of EuLisp – Padget, Nuyens, et al. - 1993
2 de Maricourt. Macro-expansion en Lisp, s'emantique et r'ealisation. Th`ese d'universit'e, Universit'e Paris 7 – Dumesnil - 1995
2 A staging calculus and its application to the verification of translators – Muller - 1994
2 langages Lisp. Inter – Les - 1994