Flexible and Extensible Notations for Modeling Languages

  • Jimin Gao
  • Mats Heimdahl
  • Eric Van Wyk
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4422)


In model-based development, a formal description of the software (the model) is the central artifact that drives other development activities. The availability of a modeling language well-suited for the system under development and appropriate tool support are of utmost importance to practitioners. Considering the diverse needs of different application domains, flexibility in the choice of modeling languages and tools may advance the industrial acceptance of formal methods.

We describe a flexible modeling language framework by which language and tool developers may better meet the special needs of various users groups without incurring prohibitive costs. The framework is based on a modular and extensible implementation of languages features using attribute grammars and forwarding. We show a prototype implementation of such a framework by extending the host language Mini-Lustre, an example synchronous data-flow language, with a collection of features such as state transitions, condition tables, and events. We also show how new languages can be created in this framework by feature composition.


Modeling Language Boolean Variable Boolean Expression Concrete Syntax Language Feature 
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.


  1. 1.
    Berry, G., Gonthier, G.: The Esterel synchronous programming language: Design, semantics, implementation. Science of Comp. Prog. 19(2), 87–152 (1992)zbMATHCrossRefGoogle Scholar
  2. 2.
    Esterel-Technologies: Corporate web page (2004),
  3. 3.
    Harel, D., Lachover, H., Naamad, A., Pnueli, A., Politi, M., Sherman, R., Shtull-Trauring, A., Trakhtenbrot, M.: Statemate: A working environment for the development of complex reactive systems. IEEE Trans. on Soft. Engin. 16(4) (1990)Google Scholar
  4. 4.
    Heitmeyer, C., Bull, A., Gasarch, C., Labaw, B.: SCR*: A toolset for specifying and analyzing requirements. In: Proceedings of the Tenth Annual Conference on Computer Assurance, COMPASS 95 (1995)Google Scholar
  5. 5.
    Thompson, J.M., Heimdahl, M.P.E., Miller, S.P.: Specification-Based Prototyping for Embedded Systems. In: Nierstrasz, O., Lemoine, M. (eds.) ESEC 1999 and ESEC-FSE 1999. LNCS, vol. 1687, p. 163. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  6. 6.
    Van Wyk, E., Heimdahl, M.: Flexibility in modeling languages and tools: A call to arms. In: Proc. of IEEE ISoLA Workshop on Leveraging Applications of Formal Methods, Verification, and Validation (2005)Google Scholar
  7. 7.
    Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous dataflow programming language Lustre. Proc. of the IEEE 79(9), 1305–1320 (1991)CrossRefGoogle Scholar
  8. 8.
    Halbwachs, N., Lagnier, F., Ratel, C.: Programming and verifying real-time systems by means of the synchronous data-flow language lustre. IEEE Transactions on Software Engineering, 785–793 (1992)Google Scholar
  9. 9.
    Van Wyk, E., de Moor, O., Backhouse, K., Kwiatkowski, P.: Forwarding in attribute grammars for modular language design. In: Horspool, R.N. (ed.) CC 2002 and ETAPS 2002. LNCS, vol. 2304, pp. 128–142. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  10. 10.
    Heninger, K.: Specifying software requirements for complex systems: New techniques and their application. IEEE Trans. on Software Engin. 6(1), 2–13 (1980)CrossRefGoogle Scholar
  11. 11.
    Leveson, N., Heimdahl, M., Hildreth, H., Reese, J.: Requirements Specification for Process-Control Systems. IEEE Trans. on Software Engin. 20(9), 684–706 (1994)CrossRefGoogle Scholar
  12. 12.
    Zimmerman, M.K., Lundqvist, K., Leveson, N.: Investigating the readability of state-based formal requirements specification languages. In: Proc. 24th Intl. Conf. on Software Engineering, pp. 33–43. ACM Press, New York (2002)Google Scholar
  13. 13.
    Weise, D., Crew, R.: Programmable syntax macros. ACM SIGPLAN Notices 28(6) (1993)Google Scholar
  14. 14.
    Ganzinger, H.: Increasing modularity and language-independency in automatically generated compilers. Science of Computer Programing 3(3), 223–278 (1983)zbMATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    Kastens, U., Waite, W.M.: Modularity and reusability in attribute grammars. Acta Informatica 31, 601–627 (1994)zbMATHCrossRefGoogle Scholar
  16. 16.
    Le Bellec, C., Jourdan, M., Parigot, D., Roussel, G.: Specification and implementation of grammar coupling using attribute grammars. In: Penjam, J., Bruynooghe, M. (eds.) PLILP 1993. LNCS, vol. 714, pp. 123–136. Springer, Heidelberg (1993)Google Scholar
  17. 17.
    Hedin, G.: An object-oriented notation for attribute grammars. In: Proc. of European Conf. on Object-Oriented Prog., ECOOP’89, Cambridge Univ. Press, Cambridge (1989)Google Scholar
  18. 18.
    Vogt, H., Swierstra, S.D., Kuiper, M.F.: Higher-order attribute grammars. In: ACM PLDI Conf., pp. 131–145 (1990)Google Scholar
  19. 19.
    Ekman, T., Hedin, G.: Rewritable Reference Attributed Grammars. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 147–171. Springer, Heidelberg (2004)Google Scholar
  20. 20.
    Simonyi, C.: The future is intentional. IEEE Computer 32(5), 56–57 (1999)Google Scholar
  21. 21.
    Van Wyk, E., Krishnan, L., Bodin, D., Johnson, E.: Adding domain-specific and general purpose language features to Java with the Java language extender. In: Companion to the Proc. OOPSLA (2006)Google Scholar

Copyright information

© Springer Berlin Heidelberg 2007

Authors and Affiliations

  • Jimin Gao
    • 1
  • Mats Heimdahl
    • 1
  • Eric Van Wyk
    • 1
  1. 1.Department of Computer Science and Engineering, University of Minnesota 

Personalised recommendations