Abstract
In this paper we describe an application of the theory of graph transformations to the practise of language design. In particular, we have defined the static and dynamic semantics of a small but realistic object-oriented language (called TAAL) by mapping the language constructs to graphs (the static semantics) and modelling their effect by graph transformation rules (the dynamic semantics). This gives rise to execution models for all TAAL-programs, which can be used as the basis for formal verification.
This work constitutes a first step towards a method for defining all aspects of software languages, besides their concrete syntax, in a consistent and rigorous manner. Such a method facilitates the integration of formal correctness in the software development trajectory.
The original version of this chapter was revised: The copyright line was incorrect. This has been corrected. The Erratum to this chapter is available at DOI: 10.1007/978-3-540-34895-5_20
Chapter PDF
References
Abadi, M., Cardelli, L.: A Theory of Objects. Monographs in Computer Science. Springer, Heidelberg (1996)
Ábrahám, E., de Boer, F.S., de Roever, W.-P., Steffen, M.: Inductive proof outlines for monitors in java. In: Najm, E., Nestmann, U., Stevens, P. (eds.) FMOODS 2003. LNCS, vol. 2884, pp. 155–169. Springer, Heidelberg (2003)
Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading (1986)
Bruce, K., Crabtree, J., Kanapathy, G.: An operational semantics for TOOPLE: A statically-typed object-oriented programming language. In: Main, M.G., Melton, A.C., Mislove, M.W., Schmidt, D., Brookes, S.D. (eds.) MFPS 1993. LNCS, vol. 802, pp. 603–626. Springer, Heidelberg (1994)
Clark, T., Evans, A., Kent, S., Brodsky, S., Cook, S.: A feasibility study in rearchitecting UML as a family of languages using a precise OO meta-modelling approach (September 2000), Version 1.0 available from: http://www.puml.org
Corradini, A., Dotti, F.L., Foss, L., Ribeiro, L.: Translating Java code to graph transformation systems. In: Ehrig, H., Engels, G., Parisi-Presicce, F., Rozenberg, G. (eds.) ICGT 2004. LNCS, vol. 3256, pp. 383–398. Springer, Heidelberg (2004)
de Boer, F.S., Pierik, C.: How to cook a complete hoare logic for your pet OO language. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2003. LNCS, vol. 3188, pp. 111–133. Springer, Heidelberg (2004)
Engels, G., Hausmann, J.H., Heckel, R., Sauer, S.: Dynamic meta modeling: A graphical approach to the operational semantics of behavioral diagrams in UML. In: Evans, A., Kent, S., Selic, B. (eds.) UML 2000. LNCS, vol. 1939, pp. 323–337. Springer, Heidelberg (2000)
Fenton, N.E., Pfleeger, S.L.: Software Metrics: A Rigorous & Practical Approach, 2nd edn. International Thomsen Publishing Inc. (1997)
Habel, A., Heckel, R., Taentzer, G.: Graph grammars with negative application conditions. Fundamenta Informaticae 26(3-4), 287–313 (1996)
Hausmann, J.H.: Dynamic Meta Modeling, A Semantics Description technique for Visual Modeling Languages. PhD thesis, University of Paderborn (2006)
Bruce, i.B., Schuett, A., van Gent, R., Fiech, A.: PolyTOIL: A type-safe polymorphic object-oriented language. ACM Trans. Program. Lang. Syst. 25(2), 225–290 (2003)
Kastenberg, H., Kleppe, A., Rensink, A.: Engineering object-oriented semantics using graph transformations. CTIT Technical Report 06-12, University of Twente taal.pdf (2006), Available at: http://www.cs.utwente.nl/tdkastenbe/papers/
Kleppe, A.: Taal eclipse plugin (2006), Available from: http://www.klasse.nl/english/research/taal-install.html
Kleppe, A., Warmer, J.: Unification of static and dynamic semantics of UML, a study in redefining the semantics of the UML using the pUML OO meta modelling approach. Technical report, Klasse Objecten (July 2001), Available at: http://www.klasse.nl/papers/unification-report.pdf
Kuske, S., Gogolla, M., Kollmann, R., Kreowski, H.-J.: An integrated semantics for UML class, object and state diagrams based on graph transformation. In: Butler, M., Petre, L., Sere, K. (eds.) IFM 2002. LNCS, vol. 2335, pp. 11–28. Springer, Heidelberg (2002)
OMG. MDA guide version 1.0.1 (June 2003), Available from: www.omg.org
OMG. UML 2.0 OCL specification (October 2003), Available from: www.omg.org .
Pierce, B.C.: Types and Programming Languages. The MIT Press, Cambridge (2002)
Rensink, A.: The GROOVE Simulator: A tool for state space generation. In: Pfaltz, J.L., Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, pp. 479–485. Springer, Heidelberg (2004)
Rensink, A.: The Groove Tool Set (2005), Available from: http://groove.sf.net
Rensink, A.: The joys of graph transformation. Nieuwsbrief van de Nederlandse Vereniging voor Theoretische Informatica 9 (2005)
Rozenberg, G. (ed.): Handbook of Graph Grammars and Computing by Graph Transformation: Foundations, vol. I. World Scientific, Singapore (1997)
Smelik, R.M.: Specification and construction of control flow semantics. Master’s thesis, University of Twente (January 2006)
Varró, D.: A formal semantics of UML statecharts by model transition systems. In: Corradini, A., Ehrig, H., Kreowski, H.-J., Rozenberg, G. (eds.) ICGT 2002. LNCS, vol. 2505, pp. 378–392. Springer, Heidelberg (2002)
Winskel, G.: The formal semantics of programming languages: an introduction. MIT Press, Cambridge (1993)
Zhang, K.-B., Orgun, M.A., Zhang, K.: Visual language semantics specification in the vispro system. In: Jin, J.S., Eades, P., Feng, D.D., Yan, H. (eds.) VIP. CRPIT, vol. 22, Australian Computer Society (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 IFIP International Federation for Information Processing
About this paper
Cite this paper
Kastenberg, H., Kleppe, A., Rensink, A. (2006). Defining Object-Oriented Execution Semantics Using Graph Transformations. In: Gorrieri, R., Wehrheim, H. (eds) Formal Methods for Open Object-Based Distributed Systems. FMOODS 2006. Lecture Notes in Computer Science, vol 4037. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11768869_15
Download citation
DOI: https://doi.org/10.1007/11768869_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34893-1
Online ISBN: 978-3-540-34895-5
eBook Packages: Computer ScienceComputer Science (R0)