Abstract. Macro expansion in current Lisp systems is naive with respect o block structure. Every macro function can cause the capture of free user identifiers and thus corrupt intended bindings. We propose a change to the expansion algorithm so that macros will only violate the binding discipline when it is explicitly intended. 1. Prob lems with Macro Expansions Lisp macro functions are powerful tools for the extension of language syntax. They allow programmers to add new syntactic onstructs to a programming language. A pro-stammer specifies a macro function which translates ac-tual instances of a syntactic extension to core language x-pressions. This process can also be pyramided, i.e., macro functions may translate into an already extende...
Syntactic abbreviations or macros provide a powerful tool to increase the syntactic expressivity of ...
In interactive theorem provers (ITPs), extensible syntax is not only crucialto lower the cognitive b...
Abstract. ACL2 is a theorem prover for a purely functional subset of Common Lisp. It inherits Common...
The traditional Lisp macro expansion facility inhibits several important forms of expansion control....
In LISP 1.5 special forms are used for three logically separate purposes: a) to reach the alist, b) ...
Abstract: It is known that the essential ingredients of a Lisp-style unhygienic macro system can be ...
Even in the days of Lisp’s simple defmacro systems, macro developers did not have adequate debugging...
It is known that the essential ingredients of a Lisp-style unhygienic macro system can be expressed ...
AbstractOver the past two decades, Scheme macros have evolved into a powerful API for the compiler f...
Genuine differences in the treatment of identifiers in block-structured languages and those that pro...
9 pagesThis paper describes a modified form of Kohlbecker's algorithm for reliably hygienic (captur...
One of the powerful features of the Lisp language family is possibility to extend the language using...
Over the past two decades, Scheme macros have evolved into a pow-erful API for the compiler front-en...
We present the λm-calculus, a semantics for a language of hygienic macros with a non-trivial theory....
Lisp and Scheme have demonstrated the power of macros to enable programmers to evolve and craft lang...
Syntactic abbreviations or macros provide a powerful tool to increase the syntactic expressivity of ...
In interactive theorem provers (ITPs), extensible syntax is not only crucialto lower the cognitive b...
Abstract. ACL2 is a theorem prover for a purely functional subset of Common Lisp. It inherits Common...
The traditional Lisp macro expansion facility inhibits several important forms of expansion control....
In LISP 1.5 special forms are used for three logically separate purposes: a) to reach the alist, b) ...
Abstract: It is known that the essential ingredients of a Lisp-style unhygienic macro system can be ...
Even in the days of Lisp’s simple defmacro systems, macro developers did not have adequate debugging...
It is known that the essential ingredients of a Lisp-style unhygienic macro system can be expressed ...
AbstractOver the past two decades, Scheme macros have evolved into a powerful API for the compiler f...
Genuine differences in the treatment of identifiers in block-structured languages and those that pro...
9 pagesThis paper describes a modified form of Kohlbecker's algorithm for reliably hygienic (captur...
One of the powerful features of the Lisp language family is possibility to extend the language using...
Over the past two decades, Scheme macros have evolved into a pow-erful API for the compiler front-en...
We present the λm-calculus, a semantics for a language of hygienic macros with a non-trivial theory....
Lisp and Scheme have demonstrated the power of macros to enable programmers to evolve and craft lang...
Syntactic abbreviations or macros provide a powerful tool to increase the syntactic expressivity of ...
In interactive theorem provers (ITPs), extensible syntax is not only crucialto lower the cognitive b...
Abstract. ACL2 is a theorem prover for a purely functional subset of Common Lisp. It inherits Common...