Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The C programming language
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
The Dylan reference manual: the definitive guide to the new object-oriented dynamic language
The Dylan reference manual: the definitive guide to the new object-oriented dynamic language
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Syntax macros and extended translation
Communications of the ACM
A alternate form of the “UNCOL diagram”
Communications of the ACM
Revised report on the algorithmic language scheme
ACM SIGPLAN Lisp Pointers
Growing languages with metamorphic syntax macros
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
C++ Templates
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The TeXbook
JavaScript: The Good Parts
The Scheme Programming Language, 4th Edition
The Scheme Programming Language, 4th Edition
Science of Computer Programming
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Honu: syntactic extension for algebraic notation through enforestation
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Hi-index | 0.00 |
The article describes an implementation scheme of a hygienic syntactic macro system for JavaScript. Instead of implementing the complex logic of a hygienic macro system from scratch, the proposed method heavily relies on an existing Scheme implementation of its hygienic syntactic macro system. A program written in our macro-enhanced version of JavaScript is first translated into a Scheme program. It is then macro-expanded by a macro expander of Scheme into a macro-free Scheme code. Finally, it is translated back to Javascript, which at this point is free of macros. To deal with the macro-enhanced syntax, an extensible parser architecture based on top-down operator precedence is proposed. A prototype hygienic macro system, including both the parser and the two-way translator, is implemented by only 2,000 lines of Scheme code.