PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Syntactic abstraction in Scheme
Lisp and Symbolic Computation
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
C: a language for high-level, efficient, and machine-independent dynamic code generation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Deftable: a macro for implementing tables
ACM SIGPLAN Lisp Pointers
LISP
Revised Report on the Algorithmic Language Scheme
Higher-Order and Symbolic Computation
JTS: Tools for Implementing Domain-Specific Languages
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Growing languages with metamorphic syntax macros
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Runtime aspect weaving through metaprogramming
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Maya: multiple-dispatch syntax extension in Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Altering Java Semantics via Bytecode Manipulation
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Separation of concerns through semantic annotations
OOPSLA '02 Companion of the 17th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Compile-time meta-programming in a dynamically typed OO language
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
A new general parser for extensible languages
MS'06 Proceedings of the 17th IASTED international conference on Modelling and simulation
Adding domain-specific and general purpose language features to Java with the Java language extender
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Expressive programs through presentation extension
Proceedings of the 6th international conference on Aspect-oriented software development
Implementing aspect-oriented programming constructs as modular language extensions
Science of Computer Programming
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Jeannie: granting java native interface developers their wishes
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Xoc, an extension-oriented compiler for systems programming
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Curl: a language for web content
International Journal of Web Engineering and Technology
Expressive and safe static reflection with MorphJ
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Domain specific language implementation via compile-time meta-programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Language support for model-driven software development
Science of Computer Programming
Domain-specific languages and program generation with meta-AspectJ
ACM Transactions on Software Engineering and Methodology (TOSEM)
Designing Syntax Embeddings and Assimilations for Language Libraries
Models in Software Engineering
Mixing source and bytecode: a case for compilation by normalization
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Building language towers with ziggurat
Journal of Functional Programming
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Runtime bytecode transformation for Smalltalk
Computer Languages, Systems and Structures
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
ABI compatibility through a customizable language
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Morphing: Structurally shaping a class by reflecting on others
ACM Transactions on Programming Languages and Systems (TOPLAS)
Statically safe program generation with SafeGen
Science of Computer Programming
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Growing a language environment with editor libraries
Proceedings of the 10th ACM international conference on Generative programming and component engineering
SugarJ: library-based syntactic language extensibility
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Crossing state lines: adapting object-oriented frameworks to functional reactive languages
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
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
Statically safe program generation with safegen
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Marco: safe, expressive macros for any language
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Honu: syntactic extension for algebraic notation through enforestation
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
MOST-flexiPL: modular, statically typed, flexibly extensible programming language
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Morphing: safely shaping a class in the image of others
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Language composition untangled
Proceedings of the Twelfth Workshop on Language Descriptions, Tools, and Applications
Prototyping domain specific languages as extensions of a general purpose language
SAM'12 Proceedings of the 7th international conference on System Analysis and Modeling: theory and practice
Extending Erlang by utilising RefactorErl
Proceedings of the twelfth ACM SIGPLAN workshop on Erlang
An object-oriented approach to language compositions for software language engineering
Journal of Systems and Software
A framework for extensible languages
Proceedings of the 12th international conference on Generative programming: concepts & experiences
A framework for extensible languages
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
The ability to extend a language with new syntactic forms is a powerful tool. A sufficiently flexible macro system allows programmers to build from a common base towards a language designed specifically for their problem domain. However, macro facilities that are integrated, capable, and at the same time simple enough to be widely used have been limited to the Lisp family of languages to date. In this paper we introduce a macro facility, called the Java Syntactic Extender (JSE), with the superior power and ease of use of Lisp macro sytems, but for Java, a language with a more conventional algebraic syntax. The design is based on the Dylan macro system, but exploits Java's compilation model to offer a full procedural macro engine. In other words, syntax expanders may be implemented in, and so use all the facilities of, the full Java language