Abstract
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.
Different aspects of this work are partially funded by NSF CAREER Award #0347860, NSF CCF Award #0429640, and the McKnight Foundation.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
Berry, G., Gonthier, G.: The Esterel synchronous programming language: Design, semantics, implementation. Science of Comp. Prog. 19(2), 87–152 (1992)
Esterel-Technologies: Corporate web page (2004), http://www.esterel-technologies.com
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)
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)
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)
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)
Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous dataflow programming language Lustre. Proc. of the IEEE 79(9), 1305–1320 (1991)
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)
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)
Heninger, K.: Specifying software requirements for complex systems: New techniques and their application. IEEE Trans. on Software Engin. 6(1), 2–13 (1980)
Leveson, N., Heimdahl, M., Hildreth, H., Reese, J.: Requirements Specification for Process-Control Systems. IEEE Trans. on Software Engin. 20(9), 684–706 (1994)
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)
Weise, D., Crew, R.: Programmable syntax macros. ACM SIGPLAN Notices 28(6) (1993)
Ganzinger, H.: Increasing modularity and language-independency in automatically generated compilers. Science of Computer Programing 3(3), 223–278 (1983)
Kastens, U., Waite, W.M.: Modularity and reusability in attribute grammars. Acta Informatica 31, 601–627 (1994)
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)
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)
Vogt, H., Swierstra, S.D., Kuiper, M.F.: Higher-order attribute grammars. In: ACM PLDI Conf., pp. 131–145 (1990)
Ekman, T., Hedin, G.: Rewritable Reference Attributed Grammars. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 147–171. Springer, Heidelberg (2004)
Simonyi, C.: The future is intentional. IEEE Computer 32(5), 56–57 (1999)
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)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer Berlin Heidelberg
About this paper
Cite this paper
Gao, J., Heimdahl, M., Van Wyk, E. (2007). Flexible and Extensible Notations for Modeling Languages. In: Dwyer, M.B., Lopes, A. (eds) Fundamental Approaches to Software Engineering. FASE 2007. Lecture Notes in Computer Science, vol 4422. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71289-3_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-71289-3_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-71288-6
Online ISBN: 978-3-540-71289-3
eBook Packages: Computer ScienceComputer Science (R0)