The syntax definition formalism SDF—reference manual—
ACM SIGPLAN Notices
Notable design patterns for domain-specific languages
Journal of Systems and Software
The Java syntactic extender (JSE)
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Higher-Order and Symbolic Computation
OpenJava: A Class-Based Macro System for Java
Proceedings of the 1st OOPSLA Workshop on Reflection and Software Engineering: Reflection and Software Engineering, Papers from OORaSE 1999
Stratego: A Language for Program Transformation Based on Rewriting Strategies
RTA '01 Proceedings of the 12th International Conference on Rewriting Techniques and Applications
Modular Domain Specific Languages and Tools
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Domain specific language implementation via compile-time meta-programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Silver: An extensible attribute grammar system
Science of Computer Programming
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
Preventing injection attacks with syntax embeddings
Science of Computer Programming
The spoofax language workbench: rules for declarative specification of languages and IDEs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Embedding languages without breaking tools
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Featherweight TEX and parser correctness
SLE'10 Proceedings of the Third international conference on Software language engineering
Building semantic editors using JastAdd: tool demonstration
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Revisiting information hiding: reflections on classical and nonclassical modularity
Proceedings of the 25th European conference on Object-oriented programming
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
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
Attribute grammar-based language extensions for java
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Layout-sensitive language extensibility with SugarHaskell
Proceedings of the 2012 Haskell Symposium
Implementing modular domain specific languages and analyses
Proceedings of the Workshop on Model-Driven Engineering, Verification and Validation
Modular and automated type-soundness verification for language extensions
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Composing textual modelling languages in practice
Proceedings of the 6th International Workshop on Multi-Paradigm Modeling
An object-oriented approach to language compositions for software language engineering
Journal of Systems and Software
Hi-index | 0.00 |
In language-oriented programming and modeling, software developers are largely concerned with the definition of domain-specific languages (DSLs) and their composition. While various implementation techniques and frameworks exist for defining DSLs, language composition has not obtained enough attention and is not well-enough understood. In particular, there is a lack of precise terminology for describing observations about language composition in theory and in existing language-development systems. To clarify the issue, we specify five forms of language composition: language extension, language restriction, language unification, self-extension, and extension composition. We illustrate this classification by various examples and apply it to discuss the performance of different language-development systems with respect to language composition. We hope that the terminology provided by our classification will enable more precise communication on language composition.