Abstract
Model-based techniques are in wide-spread use for the design and implementation of domain specific languages (DSLs) and their tooling. The Eclipse Modeling Framework (EMF) is a frequently used environment for model-based language engineering. With its underlying modelling language Ecore, its XML serialisation support and its versatile extensibility it provides a solid grounding for many task-specific language development tools. In this tutorial, we give an introduction to model-based language engineering using EMFText, which allows users to develop powerful textual editors for Ecore-based DSLs that are tightly integrated with the EMF.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C.: Derivation and Refinement of Textual Syntax for Models. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 114–129. Springer, Heidelberg (2009)
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: Eclipse Modeling Framework, 2nd edn. Pearson Education (2008)
Hedin, G.: Reference Attributed Grammars. Informatica 24(3), 301–317 (2000)
Object Management Group Human Usable Textual Notation (HUTN) Specification. Final Adopted Specification ptc/02-12-01 (2002)
Meta-Object Facility (MOF) Core Specification. Version 2.0 (January 2006)
Mosses, P.D.: Denotational semantics. In: Van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, vol. B, pp. 575–631. MIT Press (1990)
Object Management Group Business Process Model and Notation (BPNM) Specication. Version 2.0 (January 2011)
ANother Tool for Language Recognition (ANTLR), http://www.antlr.org/
JastEMF website, http://www.jastemf.org/
JastAdd website, http://www.jastadd.org/
Bürger, C., Karol, S.: Towards Attribute Grammars for Metamodel Semantics. Technical Report TUD-FI10-03 - März 2010, Technische Universität Dresden (March 2010)
Bürger, C., Karol, S., Wende, C., Aßmann, U.: Reference Attribute Grammars for Metamodel Semantics. In: Malloy, B., Staab, S., van den Brand, M. (eds.) SLE 2010. LNCS, vol. 6563, pp. 22–41. Springer, Heidelberg (2011)
Knuth, D.E.: Semantics of context-free languages. Theory of Computing Systems 2(2), 127–145 (1968)
Grosch, J.: Object-Oriented Attribute Grammars. Technical report, CoCoLab Datenverarbeitung, Aachen (August 1990)
Paakki, J.: Attribute grammar paradigms—high-level methodology in language implementation. ACM Comput. Surv. 27(2), 196–255 (1995)
Gray, R.W., Levi, S.P., Heuring, V.P., Sloane, A.M., Waite, W.M.: Eli: a complete, flexible compiler construction system. Commun. ACM 35(2), 121–130 (1992)
Wyk, E.V., Bodin, D., Gao, J., Krishnan, L.: Silver: an Extensible Attribute Grammar System. Electron. Notes Theor. Comput. Sci. 203(2), 103–116 (2008)
Sloane, A.M., Kats, L.C.L., Visser, E.: A Pure Object-Oriented Embedding of Attribute Grammars. Electron. Notes Theor. Comput. Sci. 253(7), 205–219 (2010)
Ekman, T., Hedin, G.: The JastAdd Extensible Java Compiler. SIGPLAN Not. 42(10), 1–18 (2007)
Hedin, G.: An Introductory Tutorial on JastAdd Attribute Grammars. In: Fernandes, J.M., Lämmel, R., Visser, J., Saraiva, J. (eds.) TTSE 2009. LNCS, vol. 6491, pp. 166–200. Springer, Heidelberg (2011)
Java Emitter Templates (JET), http://www.eclipse.org/modeling/m2t/?project=jet
World Wide Web Consortium Extensible Stylesheet Language (XSL) Specification. Recommendation 1.1 (December 2006)
EMFText Concrete Syntax Zoo, http://www.emftext.org/index.php/EMFText_Concrete_Syntax_Zoo
Gosling, J., Joy, B., Steele, G., Bracha, G.: Java(TM) Language Specification. Addison-Wesley Professional (2005)
Bravenboer, M., Kalleberg, K.T., Vermaas, R., Visser, E.: Stratego/XT 0.17. A Language and Toolset for Program Transformation. Science of Computer Programming 72(1-2), 52–70 (2008)
Object Management Group Metamodel and UML Profile for Java and EJB Specification Version 1.0. formal/2004-02-02 (2004)
The MoDisco project, http://www.eclipse.org/MoDisco/
Pawlak, R.: Spoon: Compile-time Annotation Processing for Middleware. IEEE Distributed Systems Online 7(11) (2006)
JaMoPP website, http://jamopp.org/
Byte Code Engineering Library (Apache Commons BCEL), http://commons.apache.org/bcel/
Heidenreich, F., Johannes, J., Seifert, M., Wende, C., Böhme, M.: Generating Safe Template Languages. In: Proc. of the 8th Int’l Conf. on Generative Programming and Component Engineering (GPCE 2009). ACM (2009)
Seifert, M., Samlaus, R.: Static Source Code Analysis using OCL. In: Cabot, J., Van Gorp, P. (eds.) Proc. of the MoDELS 2008 Workshop on OCL Tools: From Implementation to Evaluation and Comparison, OCL 2008 (2008)
Heidenreich, F., Johannes, J., Seifert, M., Wende, C.: JaMoPP: The Java Model Parser and Printer. Technical Report TUD-FI09-10 August 2009, Technische Universität Dresden (2009)
JaMoPP applications website, http://jamopp.org/applications/
Van Deursen, A., Klint, P., Visser, J.: Domain-specific Languages: An Annotated Bibliography. ACM Sigplan Notices 35(6), 26–36 (2000)
Nystrom, N., Clarkson, M., Myers, A.: Polyglot: An Extensible Compiler Framework for Java. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 138–152. Springer, Heidelberg (2003)
Bravenboer, M., de Groot, R., Visser, E.: MetaBorg in Action: Examples of Domain-Specific Language Embedding and Assimilation Using Stratego/XT. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2005. LNCS, vol. 4143, pp. 297–311. Springer, Heidelberg (2006)
Van Wyk, E., Krishnan, L., Bodin, D., Schwerdfeger, A.: Attribute Grammar-Based Language Extensions for Java. In: Bateni, M. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 575–599. Springer, Heidelberg (2007)
Cunningham, H.: A Little Language for Surveys: Constructing an Internal DSL in Ruby. In: Proceedings of ACM-SE 2008, pp. 282–287. ACM (2008)
Heidenreich, F., Johannes, J., Seifert, M., Wende, C., Böhme, M.: Generating Safe Template Languages. In: Proceedings of GPCE 2009. ACM Press (2009)
Model Development Tools UML implementation, http://wiki.eclipse.org/MDT/UML2
Xtext–textual modelling framework (March 2012), http://www.eclipse.org/Xtext/
Textual Editing Framework (TEF), http://www2.informatik.hu-berlin.de/sam/meta-tools/tef/index.html
Textual Concrete Syntax (TCS), http://www.eclipse.org/gmt/tcs/
Krahn, H., Rumpe, B., Völkel, S.: MontiCore: a framework for compositional development of domain specific languages. International Journal on Software Tools for Technology Transfer (STTT) 12(5), 353–372 (2010)
Kats, L.C., Visser, E.: The spoofax language workbench: rules for declarative specification of languages and IDEs. In: Proceedings of OOPSLA 2010, pp. 444–463. ACM (2010)
Voelter, M.: Language and IDE modularization, extension and composition with MPS. In: Pre-Proceedings GTTSE 2011, pp. 395–431 (2011)
Goldschmidt, T., Becker, S., Uhl, A.: Classification of Concrete Textual Syntax Mapping Approaches. In: Schieferdecker, I., Hartman, A. (eds.) ECMDA-FA 2008. LNCS, vol. 5095, pp. 169–184. Springer, Heidelberg (2008)
Merkle, B.: Textual modeling tools: overview and comparison of language workbenches. In: Proceedings of SPLASH, SPLASH 2010, pp. 139–148. ACM, New York (2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C. (2013). Model-Based Language Engineering with EMFText. In: Lämmel, R., Saraiva, J., Visser, J. (eds) Generative and Transformational Techniques in Software Engineering IV. GTTSE 2011. Lecture Notes in Computer Science, vol 7680. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35992-7_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-35992-7_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-35991-0
Online ISBN: 978-3-642-35992-7
eBook Packages: Computer ScienceComputer Science (R0)