Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Building domain-specific embedded languages
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Understanding SQL and Java together: a guide to SQLJ, JDBC, and related technologies
Understanding SQL and Java together: a guide to SQLJ, JDBC, and related technologies
An efficient context-free parsing algorithm
Communications of the ACM
Disambiguation Filters for Scannerless Generalized LR Parsers
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Generating Robust Parsers using Island Grammars
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Modular Domain Specific Languages and Tools
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Robust multilingual parsing using island grammars
CASCON '03 Proceedings of the 2003 conference of the Centre for Advanced Studies on Collaborative research
Parsing expression grammars: a recognition-based syntactic foundation
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Model-Driven Software Development: Technology, Engineering, Management
Model-Driven Software Development: Technology, Engineering, Management
ATerms for manipulation and exchange of structured data: It's all about sharing
Information and Software Technology
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
IMP: a meta-tooling platform for creating language-specific ides in eclipse
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
A preliminary study on various implementation approaches of domain-specific language
Information and Software Technology
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
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
An architecture for composing embedded domain-specific languages
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
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
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
Incremental programming language development
Computer Languages, Systems and Structures
An object-oriented approach to language compositions for software language engineering
Journal of Systems and Software
Hi-index | 0.00 |
Embedded domain-specific languages (EDSLs) are known to improve the productivity of developers. However, for many domains no DSL implementation is available and two important reasons for this are: First, the effort to implement EDSLs that provide the domain's established syntax (called concrete syntax) is very high. Second, the EDSL and its underlying general-purpose programming language (GPL) are typically tightly integrated. This hampers reusability across different GPLs. Besides these implementation issues, the productivity gains of using EDSLs are also limited by the lack of explicit tool support for EDSL users-such as syntax highlighting or code analyses. In this paper, we present an approach that significantly reduces the necessary effort to implement embedded DSLs with concrete syntax. The idea is to use island grammars to specify the EDSL's concrete syntax. This enables the developer to implement the embedded DSL as a library and to incrementally specify the concrete syntax using meta-data. Only those parts of the EDSL's grammar need to be specified that deviate from the grammar of the GPL. By analyzing an EDSL's implementation using reflection, it is possible to provide tool support for EDSLs without having the developer implement it explicitly, such as syntax highlighting. An evaluation demonstrates the feasibility of our approach by embedding a real-world DSL into a GPL.