@MISC{Queinnec90modules,macros, author = {Christian Queinnec and Julian Padget}, title = {Modules, Macros and Lisp}, year = {1990} }
Years of Citing Articles
Bookmark
OpenURL
Abstract
Lisp has some specialised capability for reflective operations, exemplified by its macro facility, structured name spaces, file compilation, file loading and dynamic code synthesis. There has been some progress in the last few years on the semantics of macros, but the other operations have been categorized as environmental issues. In this paper, we present a semantics for modules and will show that it substantially reduces the difficulty of defining precisely several features of usual Lisp systems such as macros, module compilation (file compilation), module loading (fasl loading) and dynamic evaluation. The module schema addresses the questions of name visibility and separate compilation. Macro-expansion is specified relative to where and how it takes place as part of operations on modules. We do not present a radical Lisp, but rather one that tries to stay within the commonly understood Lisp paradigm. We do not simply borrow from other languages --- the particular behaviour of Lisp p...