ABSTRACT
Domain Specific Languages (DSL) attract more and more users as they are specialized and optimized for a certain problem area. Currently the number of new emerging Programming Languages is significant [1] but GPL (General Purpose Languages) do often not fit the specific need of the end-user. DSL are one way to solve this problem. DSLs can be divided into different independent dimensions: e.g. internal vs. external or textual vs. graphical or tabular. In this paper we focus on textual syntaxes as they have several advantages like easy information exchange via e.g. mail, integration into existing tools like diff, merge and version control and most important the fast editing style supported by the "usual" IDE support like code completion, error markers, intentions and quick fixes. While Fowler described the initial vision of Language Workbenches [2], several mature Textual Language Workbenches have emerged in recent years. In this paper we will compare them with a consistent example and look at pros and cons.
Supplemental Material
- }}Announcing The Emerging Languages Camp at OSCON. http://radar.oreilly.com/2010/05/announcing-the-emerging-langua.htmlGoogle Scholar
- }}Fowler, M.: Language Workbenches - The Killer-App for Domain Specific Languages? http://martinfowler.com/articles/languageWorkbench.htmlGoogle Scholar
- }}Fowler, M.: Projectional Editing http://martinfowler.com/bliki/ProjectionalEditing.htmlGoogle Scholar
- }}Fowler, M.: Fluent Interfaces http://www.martinfowler.com/bliki/FluentInterface.htmlGoogle Scholar
- }}Garcia, Automating the embedding of Domain Specific Languages in Eclipse JDT http://www.eclipse.org/articles/Article-AutomatingDSLEmbeddings/index.htmlGoogle Scholar
- }}Textual Modeling Tools for ecliplse, Xtext http://ww.eclipse.org/Xtext/, TCS: www.eclipse.org/gmt/tcs/, TEF:http://www2.informatik.hu-berlin.de/sam/meta-tools/tef/tool.html, EMFText: http://emftext.orgGoogle Scholar
- }}Meta Edit http://www.metacase.comGoogle Scholar
- }}B. Langlois, C.E. Jitia, E Jouenne: DSL Classification. In 7th OO-PLA Workshop on Domain-Specific Modeling, 2007Google Scholar
- }}M. Pfeiffer, J. Pichler A Comparison of Tool Support for Textual Domain-Specific Languages, In 8th OOPSLA Workshop on Domain Specific Modeling, 2008Google Scholar
- }}T. Goldschmidt, S.Becker, A. Uhl: Classification of Concrete Textual Syntax Mapping Approaches, In ECMDA-FA 2008 Google ScholarDigital Library
- }}www.eclipse.org/modelingGoogle Scholar
- }}www.antlr.org/papersGoogle Scholar
- }}runcc.sourceforge.netGoogle Scholar
- }}www.jetbrains.com/mpsGoogle Scholar
- }}Intentional Software, Intentional Domain Workbench, http://intentsoft.com/technology/IS_OOPSLA_2006_paper.pdf Google ScholarDigital Library
- }}L. Kats, E. Visser. The Spoofax Language Workbench. Rules for Declarative Specification of Languages and IDEs. In OOPSLA 2010 Google ScholarDigital Library
- }}Xtext http://ww.eclipse.org/Xtext/Google Scholar
- }}openArchitectureWare http://www.openarchitectureware.org/Google Scholar
- }}eclipse B3: http://www.eclipse.org/modeling/emft/b3/Google Scholar
- }}TEF: http://www2.informatik.hu-berlin.de/sam/meta-tools/tef/tool.htmlGoogle Scholar
- }}TCS: www.eclipse.org/gmt/tcs/Google Scholar
- }}ATL: www.eclipse.org/m2m/atlGoogle Scholar
- }}KM3: F. Jouault, J. Bezivin: KM3: a DSL for Metamodel Specification, Formal Methods for Open Object-Based distr. Systems 2006 Google ScholarDigital Library
- }}EMFText: http://www.emftext.orgGoogle Scholar
- }}Reuseware: http://www.reuseware.org/Google Scholar
- }}Eclipse/IMP (Safari project) http://eclipse-imp.sourceforge.netGoogle Scholar
- }}Spoofax/IMP http://strategoxt.org/SpoofaxGoogle Scholar
- }}CAL, http://www.cs.ubc.ca/~ade/research.htmlGoogle Scholar
- }}S. Dmitriev: Language Oriented Programming: The Next Programming ParadigmGoogle Scholar
- }}Jetbrains youtrack bugtracker http://youtrack.jetbrains.net/dashboardGoogle Scholar
Index Terms
- Textual modeling tools: overview and comparison of language workbenches
Recommendations
Language extension and composition with language workbenches
OOPSLA '10: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companionDomain-specific languages (DSLs) provide high expressive power focused on a particular problem domain. They provide linguistic abstractions and specialized syntax specifically designed for a domain, allowing developers to avoid boilerplate code and low-...
A Domain-Specific Language and Editor for Parallel Particle Methods
Domain-specific languages (DSLs) are of increasing importance in scientific high-performance computing to reduce development costs, raise the level of abstraction, and, thus, ease scientific programming. However, designing DSLs is not easy, as it ...
Building Code Generators for DSLs Using a Partial Evaluator for the Xtend Language
Part I of the Proceedings of the 6th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change - Volume 8802For several years now, domain-specific languages DSLs are a mainstream tool for establishing model-based development environments in real-world projects. Typical back-end tools for external DSLs are interpreters and code generators.
Partial evaluation ...
Comments