Flexible and Extensible Notations for Modeling Languages

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.

[1]  S. Doaitse Swierstra,et al.  Higher order attribute grammars , 1989, PLDI '89.

[2]  Mats Per Erik Heimdahl,et al.  Specification-based prototyping for embedded systems , 1999, ESEC/FSE-7.

[3]  Nancy G. Leveson,et al.  Requirements Specification for Process-Control Systems , 1994, IEEE Trans. Software Eng..

[4]  Görel Hedin,et al.  An Object-Oriented Notation for Attribute Grammars , 1989, European Conference on Object-Oriented Programming.

[5]  Kathryn L. Heninger Specifying Software Requirements for Complex Systems: New Techniques and Their Application , 2001, IEEE Transactions on Software Engineering.

[6]  Pierre Deransart,et al.  Programming Languages Implementation and Logic Programming , 1989, Lecture Notes in Computer Science.

[7]  Eric Johnson,et al.  Adding domain-specific and general purpose language features to Java with the Java language extender , 2006, OOPSLA '06.

[8]  William M. Waite,et al.  Modularity and reusability in attribute grammars , 1994, Acta Informatica.

[9]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[10]  Eugene Miya,et al.  On "Software engineering" , 1985, SOEN.

[11]  Nicolas Halbwachs,et al.  Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTRE , 1992, IEEE Trans. Software Eng..

[12]  Oscar Nierstrasz,et al.  Software Engineering - ESEC/FSE '99 , 1999 .

[13]  A. Pnueli,et al.  STATEMATE: a working environment for the development of complex reactive systems , 1988, [1988] Proceedings. The Third Israel Conference on Computer Systems and Software Engineering.

[14]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[15]  Eric Van Wyk,et al.  Forwarding in Attribute Grammars for Modular Language Design , 2002, CC.

[16]  Charles Simonyi The Future is Intentional , 1999, Computer.

[17]  Harald Ganzinger Increasing Modularity and Language-Independency in Automatically Generated Compilers , 1983, Sci. Comput. Program..

[18]  Torbjörn Ekman,et al.  Rewritable Reference Attributed Grammars , 2004, ECOOP.

[19]  K. Lundqvist,et al.  Investigating the readability of state-based formal requirements specification languages , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[20]  Daniel Weise,et al.  Programmable syntax macros , 1993, PLDI '93.

[21]  Constance L. Heitmeyer,et al.  SCR: a toolset for specifying and analyzing requirements , 1995, COMPASS '95 Proceedings of the Tenth Annual Conference on Computer Assurance Systems Integrity, Software Safety and Process Security'.

[22]  Didier Parigot,et al.  Specification and Implementation of Grammar Couplings using Attribute Grammars , 1993, PLILP.

[23]  Martin Odersky ECOOP 2004 – Object-Oriented Programming , 2004, Lecture Notes in Computer Science.

[24]  Eric Van Wyk,et al.  Flexibility in modeling languages and tools: a call to arms , 2009, International Journal on Software Tools for Technology Transfer.