POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Syntactic abstraction in Scheme
Lisp and Symbolic Computation
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Composable and compilable macros:: you want it when?
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
ACL2 '06 Proceedings of the sixth international workshop on the ACL2 theorem prover and its applications
The design and implementation of typed scheme
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Refining syntactic sugar: tools for supporting macro development
Refining syntactic sugar: tools for supporting macro development
IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
Hi-index | 0.00 |
ACL2 is a theorem prover for a purely functional subset of Common Lisp. It inherits Common Lisp's unhygienic macros, which are used pervasively to eliminate repeated syntactic patterns. The lack of hygiene means that macros do not automatically protect their producers or consumers from accidental variable capture. This paper demonstrates how this lack of hygiene interferes with theorem proving. It then explains how to design and implement a hygienic macro system for ACL2. An evaluation of the ACL2 code base shows the potential impact of this hygienic macro system on existing libraries and practices.