MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Syntactic Abstraction in Scheme (1993) [14 citations — 2 self]

Abstract:

Naive program transformations can have surprising effects due to the interaction between introduced identifier references and previously existing identifier bindings, or between introduced bindings and previously existing references. These interactions can result in inadvertent binding, or capturing, of identifiers. A further complication is that transformed programs may have little resemblance to original programs, making correlation of source and object code difficult. This article describes an efficient macro system that prevents inadvertent capturing while maintaining the correlation between source and object code. The macro system allows the programmer to define program transformations using an unrestricted, general-purpose language. Previous approaches to the capturing problem have been inadequate, overly restrictive, or inefficient, and the problem of source-object correlation has been largely unaddressed. The macro system is based on a new algorithm for implementing syntactic transformations and a new representation for syntactic expressions.

Citations

870 The Lambda Calculus. Its Syntax and Semantics – Barendregt - 1984
388 Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory – Stoy - 1977
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
70 Symbolic debugging of optimized code – Hennessy - 1982
60 The Scheme Programming Language – Dybvig - 1987
50 DOC: A practical approach to source-level debugging of globally optimized code – Coutant, Meloy, et al. - 1988
31 An Interactive High-Level Debugger for Control-Flow Optimised Programs – Zellweger - 1983
28 Syntactic Extension in the Programming Language Lisp – Kohlbecker - 1986
28 Macro-byExample: Deriving Syntactic Transformations from their Specifications – Kohlbecker, Wand - 1987
26 Syntactic closures – Bawden, Rees - 1988
12 Expansion-passing style: A general macro mechanism – Dybvig, Friedman, et al.
9 Expansion-passing style: Beyond conventional macros – Dybvig, Friedman, et al. - 1986
9 A Syntactic Closures Macro Facility – Hanson - 1991
8 Writing Hygienic Macros in Scheme with Syntax-Case – Dybvig - 1992
7 Hygienic macros through explicit renaming – Clinger - 1991
4 Notational definition and top-down refinement for interactive proof development systems – Griffin - 1988