Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Reflective facilities in Smalltalk-80
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
A meta-environment for generating programming environments
ACM Transactions on Software Engineering and Methodology (TOSEM)
Building domain-specific embedded languages
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Notable design patterns for domain-specific languages
Journal of Systems and Software
Packrat parsing:: simple, powerful, lazy, linear time, functional pearl
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Forwarding in Attribute Grammars for Modular Language Design
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Component-based DSL development
Proceedings of the 2nd international conference on Generative programming and component engineering
Parsing expression grammars: a recognition-based syntactic foundation
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The TXL source transformation language
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
Executable Grammars in Newspeak
Electronic Notes in Theoretical Computer Science (ENTCS)
Why Smalltalk wins the host languages shootout
IWST '09 Proceedings of the International Workshop on Smalltalk Technologies
Attribute grammar-based language extensions for java
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Embedding languages without breaking tools
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
EriLex: an embedded domain specific language generator
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
SugarJ: library-based syntactic language extensibility
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
A DSL for writing type systems for Xtext languages
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Comparison of context-free grammars based on parsing generated test data
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
TraitRecordJ: A programming language with traits and records
Science of Computer Programming
Implementing Java-like languages in Xtext with Xsemantics
Proceedings of the 28th Annual ACM Symposium on Applied Computing
An object-oriented approach to language compositions for software language engineering
Journal of Systems and Software
Hi-index | 0.00 |
As domain-specific modeling begins to attract widespread acceptance, pressure is increasing for the development of new domain-specific languages. Unfortunately these DSLs typically conflict with the grammar of the host language, making it difficult to compose hybrid code except at the level of strings; few mechanisms (if any) exist to control the scope of usage of multiple DSLs; and, most seriously, existing host language tools are typically unaware of the DSL extensions, thus hampering the development process. Language boxes address these issues by offering a simple, modular mechanism to encapsulate (i) compositional changes to the host language, (ii) transformations to address various concerns such as compilation and syntax highlighting, and (iii) scoping rules to control visibility of fine-grained language extensions. We describe the design and implementation of language boxes, and show with the help of several examples how modular extensions can be introduced to a host language and environment.