Advertisement

Integrated Definition of Abstract and Concrete Syntax for Textual Languages

  • Holger Krahn
  • Bernhard Rumpe
  • Steven Völkel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4735)

Abstract

An understandable concrete syntax and a comprehensible abstract syntax are two central aspects of defining a modeling language. Both representations of a language significantly overlap in their structure and also information, but may also differ in parts of the information. To avoid discrepancies and problems while handling the language, concrete and abstract syntax need to be consistently defined. This will become an even bigger problem, when domain specific languages will become used to a larger extent. In this paper we present an extended grammar format that avoids redundancy between concrete and abstract syntax by allowing an integrated definition of both for textual modeling languages. For an amendment of the usability of the abstract syntax it furthermore integrates meta-modeling concepts like associations and inheritance into a well-understood grammar-based approach. This forms a sound foundation for an extensible grammar and therefore language definition.

Keywords

Modeling Language Class Diagram Abstract Syntax Concrete Syntax Eclipse Modeling Framework 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., Grose, T.J.: Eclipse Modeling Framework. Addison-Wesley, Reading (2003)Google Scholar
  2. 2.
    Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  3. 3.
    Dodd, C., Maslov, V.: BTYACC – backtracking YACC. Siber Systems (2006), http://www.siber.com/btyacc/
  4. 4.
    Fondement, F., Schnekenburger, R., Gerard, S., Muller, P.-A.: Metamodel-aware textual concrete syntax specification. Technical report, LGL-REPORT-2006-005 Swiss Federal Institute of Technology in Lausanne, Switzerland (2006)Google Scholar
  5. 5.
    Gagnon, E., Hendren, L.: SableCC – An Object-Oriented Compiler Framework. In: Puigjaner, R., Savino, N.N., Serra, B. (eds.) Tools 1998. LNCS, vol. 1469, Springer, Heidelberg (1998)Google Scholar
  6. 6.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  7. 7.
    Graphical Modeling Framework (GMF, Eclipse technology subproject), http://www.eclipse.org/gmf/
  8. 8.
    Grönniger, H., Krahn, H., Rumpe, B., Schindler, M., Völkel, S.: MontiCore 1.0 - Ein Framework zur Erstellung und Verarbeitung domänenspezifischer Sprachen. Technical Report Informatik-Bericht 2006-04, Software Systems Engineering Institute, Braunschweig University of Technology (2006)Google Scholar
  9. 9.
    Harel, D., Rumpe, B.: Meaningful modeling: What’s the semantics of ”semantics”? Computer 37(10), 64–72 (2004)CrossRefGoogle Scholar
  10. 10.
    Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The syntax definition formalism SDF–Reference Manual—. 24(11), 43–75 (1989)Google Scholar
  11. 11.
    Jouault, F., Bezivin, J., Kurtev, I.: TCS: a DSL for the Specification of Textual Concrete Syntaxes in Model Engineering. In: Proceedings of GPCE 2006 (2006)Google Scholar
  12. 12.
    Kort, J., Lämmel, R., Verhoef, C.: The grammar deployment kit. In: van den Brand, M., Lämmel, R. (eds.) ENTCS, vol. 65, Elsevier Science Publishers, Amsterdam (2002)Google Scholar
  13. 13.
    Muller, P.-A., Fleurey, F., Fondement, F., Hassenforder, M., Schneckenburger, R., Gérard, S., Jézéquel, J.-M.: Model-driven analysis and synthesis of concrete syntax. In: Nierstrasz, O., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 98–110. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  14. 14.
    Parr, T., Quong, R.: ANTLR: A Predicated-LL(k) parser generator. Journal of Software Practice and Experience 25(7), 789–810 (1995)CrossRefGoogle Scholar
  15. 15.
    Reps, T., Teitelbaum, T.: The synthesizer generator. In: Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments, pp. 42–48. ACM Press, New York (1984)CrossRefGoogle Scholar
  16. 16.
    Rumpe, B.: Agile Modellierung mit UML: Codegenerierung, Testfälle, Refactoring. Springer, Berlin (2004)Google Scholar
  17. 17.
    Rumpe, B.: Modellierung mit UML. Springer, Berlin (2004)zbMATHGoogle Scholar
  18. 18.
    Wile, D.: Abstract syntax from concrete syntax. In: ICSE ’97. Proceedings of the 19th international conference on Software engineering, New York, NY, USA, pp. 472–480 (1997)Google Scholar
  19. 19.
    Wile, D.: Lessons learned from real DSL experiments. Science of Computer Programming 51(3), 265–290 (2004)CrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Holger Krahn
    • 1
  • Bernhard Rumpe
    • 1
  • Steven Völkel
    • 1
  1. 1.Institute for Software Systems Engineering, Technische Universität Braunschweig, BraunschweigGermany

Personalised recommendations