Advertisement

Compositional design and implementation of domain-specific languages

  • U. Kastens
  • P. Pfahler
Chapter
Part of the IFIP Advances in Information and Communication Technology book series (IFIPAICT)

Abstract

The design and implementation of languages for a specific domain can be done on a very high level of abstraction by selecting combinable language specification components and feeding them into a language implementation system. This paper presents the LaCon idea that allows domain experts to compose elements and properties of a language by simple yes/no decisions. A LaCon (Language Constructor) automatically checks consistency of user decisions, computes consequences of decisions, and provides design style advice. An implementation of the composed language is obtained by selecting combinable specification components according to the user decisions and then feeding them into the Eli language implementation system.

A LaCon is constructed by an expert in the field of computer languages and their implementation. He provides composable formal specification parts for the underlying language implementation system and describes their logical relationship. These specifications are transformed into the GUI-based LaCon by our LaCon generator.

The LaCon approach is especially useful for designers of domain specific languages who usually have to deal with languages that have to be revised quite frequently and who normally do not have deep knowledge in the field of language design and implementation.

Keywords

Domain specific languages language design compilers 

References

  1. Abu-Hamdeh, R., Cordy, J. & Martin, P. [1994], Schema translation using structural transformation, in ‘Proceedings of CASCON’94-Integrated Solutions’, IBM Centre for Advanced Studies, Toronto, Ontario, pp. 202–215.Google Scholar
  2. Bjarnason, E. [ 1996 ], APPLAB-A Laboratory for Application Languages, Technical Report LU-CS-TR:96–177, Lund Institute of Technology, Lund, Sweden.Google Scholar
  3. Bosch, J. & Hedin, G. [1996], Editors’s Introduction, in ‘Proceedings ALEL’96 Workshop on Compiler Techniques for Application Domain Languages and Extensible Language Models’, Technical Report LU-CS-TR:96173, Lund University, Sweden.Google Scholar
  4. Chen, P. P. [1976], ‘The entity relationship model-toward an unified view of data’, ACM Trans. on Database Sys. 1(1), 9. Reprinted in M. Stonebraker, Readings in Database Sys., Morgan Kaufmann, San Mateo, CA, 1988.Google Scholar
  5. Cleaveland, J. [1988], ‘Building Application Generators’, IEEE Software pp. 25–33.Google Scholar
  6. Eli Development Team [1996], ‘The Eli Home Page’, http://www.uni-paderborn.de/fachbereich/AG/agkastens/elLhomeE.html.Google Scholar
  7. Feiler, P. H., Jalili, F. & Schlichter, J. H. [1986], An Interactive Prototyping Environment for Language Design, in ‘19th Annual Haiwaii International Conference on System Sciences, HICSS-19’.Google Scholar
  8. Gray, R., Heuring, V., Levi, S., Sloane, A. & Waite, W. [1992], ‘Eli: A Complete, Flexible Compiler Construction System’, Communications of the ACM 35 (2), 121–131.CrossRefGoogle Scholar
  9. Horowitz, E., Kemper, A. & Narasimhan, B. [1985], ‘A Survey of Application Generators’, IEEE Software pp. 44–50.Google Scholar
  10. Järnvall, E., Koskimies, K. & Niittymäki, M. [ 1995 ], ‘Object-oriented language engineering with TaLE’, Object Oriented Systems 2, 77–98.Google Scholar
  11. Kadhim, B. M. & Waite, W. M. [1996], Maptool — supporting modular syntax development, in ‘Proceedings of the 6th International Conference on Compiler Construction, CC’96’, Vol. 1060, Lecture Notes in Computer Science, Springer-Verlag, pp. 268–280.CrossRefGoogle Scholar
  12. Kastens, U. [1996], Construction of Application Generators using Eli, in ‘Proceedings ALEL’96 Workshop on Compiler Techniques for Application Domain Languages and Extensible Language Models’, Technical Report LU-CS-TR:96–173, Lund University, Sweden.Google Scholar
  13. Kastens, U. & Waite, W. M. [1994], ‘Modularity and Reusability in Attribute Grammars’, Acta Informatica 31, 601–627.zbMATHCrossRefGoogle Scholar
  14. Klint, P. [1993], ‘A Meta-Environment for Generating Programming Environments’, ACM Transactions of Software Engineering and Methodology 2(2), 176–201.CrossRefGoogle Scholar
  15. Krueger, C. W. [1992], ‘Software Reuse’, ACM Computing Surveys 24(2), 131–183.CrossRefMathSciNetGoogle Scholar
  16. Markowits, V. M. & Shoshani, A. [1994], An Overview of the Lawrence Berkeley Laboratory Extended Entity-Relationship Database Tools, in P. Loucopoulos, ed.,‘Proceedings of the 13th International Conference on the Entity-Relationship Approach’, Vol. 881 of Lecture Notes in Computer Science, Springer-Verlag, Manchester, United Kingdom, pp. 333–350.Google Scholar
  17. Meyer, J. [1997], Ein Werkzeug zur wissensbasierten Konfiguration bereichsspezifischer Sprachen, Diploma thesis, Universität-GH Paderborn, Fachbereich Mathematik-Informatik.Google Scholar
  18. Minör, S. & Magnusson, B. [1992], Using Mjølner Orm as a Structure-Based Meta Environment, Technical report, Department of Computer Science Lund University.Google Scholar
  19. Pfahler, P. & Kastens, U. [1997], Language Design and Implementation by Selection, in ‘Proceedings of the First ACM SIGPLAN Workshop on Domain-Specific Languages, DSL’97, Paris, France’, Computer Science Report, University of Illinois, pp. 97–108.Google Scholar
  20. Sebesta, R. W. [1996], Concepts of Programming Languages, third edn, Benjamin/Cummings, Redwood City, Calif.zbMATHGoogle Scholar
  21. van Deursen, A. & Klint, P. [1997], Little Languages: Little Maintenance?, in ‘Proceedings of the First ACM SIGPLAN Workshop on Domain-Specific Languages, DSL’97, Paris, France’, Computer Science Report, University of Illinois, pp. 109–127.Google Scholar
  22. Watt, D. A. [1990], Programming Language Concepts and Paradigms, Prentice Hall, New York.Google Scholar

Copyright information

© IFIP 1998

Authors and Affiliations

  • U. Kastens
    • 1
  • P. Pfahler
    • 1
  1. 1.Universität-GH PaderbornPaderbornGermany

Personalised recommendations