Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Concrete syntax for data objects in functional languages
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
The syntax definition formalism SDF—reference manual—
ACM SIGPLAN Notices
TXL: a rapid prototyping system for programming language dialects
Computer Languages
Attribute grammar paradigms—a high-level methodology in language implementation
ACM Computing Surveys (CSUR)
Software—Practice & Experience
Syntax macros and extended translation
Communications of the ACM
Meta-programming with Concrete Object Syntax
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Stratego: A Language for Program Transformation Based on Rewriting Strategies
RTA '01 Proceedings of the 12th International Conference on Rewriting Techniques and Applications
The ASF+SDF Meta-environment: A Component-Based Language Development Environment
CC '01 Proceedings of the 10th International Conference on Compiler Construction
Disambiguation Filters for Scannerless Generalized LR Parsers
CC '02 Proceedings of the 11th International Conference on Compiler Construction
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
The structure of shared forests in ambiguous parsing
ACL '89 Proceedings of the 27th annual meeting on Association for Computational Linguistics
LISP 1.5 Programmer's Manual
Generalized type-based disambiguation of meta programs with concrete object syntax
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Interactive disambiguation of meta programs with concrete object syntax
SLE'10 Proceedings of the Third international conference on Software language engineering
Hi-index | 0.00 |
Meta programming can be facilitated by the ability to represent program fragments in concrete syntax instead of abstract syntax. The resulting meta programs are more self-documenting. One caveat in concrete meta programming is the syntactic separation between the meta language and the object language. To solve this problem, many meta programming systems use quoting and anti-quoting to indicate precisely where level switches occur. These “syntactic hedges” can obfuscate the concrete program fragments. This paper describes an algorithm for inferring quotes, such that the meta programmer no longer needs to explicitly indicate transitions between the meta and object languages.