Skip to main content

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 16.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Chapter  Google Scholar 

  2. Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: Eclipse Modeling Framework, 2nd edn. Pearson Education (2008)

    Google Scholar 

  3. Hedin, G.: Reference Attributed Grammars. Informatica 24(3), 301–317 (2000)

    MATH  Google Scholar 

  4. Object Management Group Human Usable Textual Notation (HUTN) Specification. Final Adopted Specification ptc/02-12-01 (2002)

    Google Scholar 

  5. Meta-Object Facility (MOF) Core Specification. Version 2.0 (January 2006)

    Google Scholar 

  6. Mosses, P.D.: Denotational semantics. In: Van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, vol. B, pp. 575–631. MIT Press (1990)

    Google Scholar 

  7. Object Management Group Business Process Model and Notation (BPNM) Specication. Version 2.0 (January 2011)

    Google Scholar 

  8. ANother Tool for Language Recognition (ANTLR), http://www.antlr.org/

  9. JastEMF website, http://www.jastemf.org/

  10. JastAdd website, http://www.jastadd.org/

  11. 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)

    Google Scholar 

  12. 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)

    Chapter  Google Scholar 

  13. Knuth, D.E.: Semantics of context-free languages. Theory of Computing Systems 2(2), 127–145 (1968)

    MathSciNet  MATH  Google Scholar 

  14. Grosch, J.: Object-Oriented Attribute Grammars. Technical report, CoCoLab Datenverarbeitung, Aachen (August 1990)

    Google Scholar 

  15. Paakki, J.: Attribute grammar paradigms—high-level methodology in language implementation. ACM Comput. Surv. 27(2), 196–255 (1995)

    Article  Google Scholar 

  16. 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)

    Article  Google Scholar 

  17. 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)

    Article  MATH  Google Scholar 

  18. 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)

    Article  Google Scholar 

  19. Ekman, T., Hedin, G.: The JastAdd Extensible Java Compiler. SIGPLAN Not. 42(10), 1–18 (2007)

    Article  MATH  Google Scholar 

  20. 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)

    Chapter  Google Scholar 

  21. Java Emitter Templates (JET), http://www.eclipse.org/modeling/m2t/?project=jet

  22. World Wide Web Consortium Extensible Stylesheet Language (XSL) Specification. Recommendation 1.1 (December 2006)

    Google Scholar 

  23. EMFText Concrete Syntax Zoo, http://www.emftext.org/index.php/EMFText_Concrete_Syntax_Zoo

  24. Gosling, J., Joy, B., Steele, G., Bracha, G.: Java(TM) Language Specification. Addison-Wesley Professional (2005)

    Google Scholar 

  25. 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)

    Article  MathSciNet  Google Scholar 

  26. Object Management Group Metamodel and UML Profile for Java and EJB Specification Version 1.0. formal/2004-02-02 (2004)

    Google Scholar 

  27. The MoDisco project, http://www.eclipse.org/MoDisco/

  28. Pawlak, R.: Spoon: Compile-time Annotation Processing for Middleware. IEEE Distributed Systems Online 7(11) (2006)

    Google Scholar 

  29. JaMoPP website, http://jamopp.org/

  30. Byte Code Engineering Library (Apache Commons BCEL), http://commons.apache.org/bcel/

  31. 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)

    Google Scholar 

  32. 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)

    Google Scholar 

  33. 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)

    Google Scholar 

  34. JaMoPP applications website, http://jamopp.org/applications/

  35. Van Deursen, A., Klint, P., Visser, J.: Domain-specific Languages: An Annotated Bibliography. ACM Sigplan Notices 35(6), 26–36 (2000)

    Article  Google Scholar 

  36. 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)

    Chapter  Google Scholar 

  37. 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)

    Chapter  Google Scholar 

  38. 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)

    Chapter  Google Scholar 

  39. Cunningham, H.: A Little Language for Surveys: Constructing an Internal DSL in Ruby. In: Proceedings of ACM-SE 2008, pp. 282–287. ACM (2008)

    Google Scholar 

  40. Heidenreich, F., Johannes, J., Seifert, M., Wende, C., Böhme, M.: Generating Safe Template Languages. In: Proceedings of GPCE 2009. ACM Press (2009)

    Google Scholar 

  41. Model Development Tools UML implementation, http://wiki.eclipse.org/MDT/UML2

  42. Xtext–textual modelling framework (March 2012), http://www.eclipse.org/Xtext/

  43. Textual Editing Framework (TEF), http://www2.informatik.hu-berlin.de/sam/meta-tools/tef/index.html

  44. Textual Concrete Syntax (TCS), http://www.eclipse.org/gmt/tcs/

  45. 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)

    Article  Google Scholar 

  46. 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)

    Google Scholar 

  47. Voelter, M.: Language and IDE modularization, extension and composition with MPS. In: Pre-Proceedings GTTSE 2011, pp. 395–431 (2011)

    Google Scholar 

  48. 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)

    Chapter  Google Scholar 

  49. Merkle, B.: Textual modeling tools: overview and comparison of language workbenches. In: Proceedings of SPLASH, SPLASH 2010, pp. 139–148. ACM, New York (2010)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics