Advertisement

Defining Object-Oriented Execution Semantics Using Graph Transformations

  • Harmen Kastenberg
  • Anneke Kleppe
  • Arend Rensink
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4037)

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.

Keywords

Operational Semantic Graph Transformation Flow Graph Program Graph Concrete Syntax 
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

  1. 1.
    Abadi, M., Cardelli, L.: A Theory of Objects. Monographs in Computer Science. Springer, Heidelberg (1996)CrossRefMATHGoogle Scholar
  2. 2.
    Á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)CrossRefGoogle Scholar
  3. 3.
    Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading (1986)MATHGoogle Scholar
  4. 4.
    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)CrossRefGoogle Scholar
  5. 5.
    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
  6. 6.
    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)CrossRefGoogle Scholar
  7. 7.
    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)CrossRefGoogle Scholar
  8. 8.
    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)CrossRefGoogle Scholar
  9. 9.
    Fenton, N.E., Pfleeger, S.L.: Software Metrics: A Rigorous & Practical Approach, 2nd edn. International Thomsen Publishing Inc. (1997)Google Scholar
  10. 10.
    Habel, A., Heckel, R., Taentzer, G.: Graph grammars with negative application conditions. Fundamenta Informaticae 26(3-4), 287–313 (1996)MathSciNetMATHGoogle Scholar
  11. 11.
    Hausmann, J.H.: Dynamic Meta Modeling, A Semantics Description technique for Visual Modeling Languages. PhD thesis, University of Paderborn (2006)Google Scholar
  12. 12.
    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)CrossRefGoogle Scholar
  13. 13.
    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/
  14. 14.
    Kleppe, A.: Taal eclipse plugin (2006), Available from: http://www.klasse.nl/english/research/taal-install.html
  15. 15.
    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
  16. 16.
    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)CrossRefGoogle Scholar
  17. 17.
    OMG. MDA guide version 1.0.1 (June 2003), Available from: www.omg.org
  18. 18.
    OMG. UML 2.0 OCL specification (October 2003), Available from: www.omg.org.
  19. 19.
    Pierce, B.C.: Types and Programming Languages. The MIT Press, Cambridge (2002)MATHGoogle Scholar
  20. 20.
    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)CrossRefGoogle Scholar
  21. 21.
    Rensink, A.: The Groove Tool Set (2005), Available from: http://groove.sf.net
  22. 22.
    Rensink, A.: The joys of graph transformation. Nieuwsbrief van de Nederlandse Vereniging voor Theoretische Informatica 9 (2005)Google Scholar
  23. 23.
    Rozenberg, G. (ed.): Handbook of Graph Grammars and Computing by Graph Transformation: Foundations, vol. I. World Scientific, Singapore (1997)MATHGoogle Scholar
  24. 24.
    Smelik, R.M.: Specification and construction of control flow semantics. Master’s thesis, University of Twente (January 2006)Google Scholar
  25. 25.
    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)CrossRefGoogle Scholar
  26. 26.
    Winskel, G.: The formal semantics of programming languages: an introduction. MIT Press, Cambridge (1993)MATHGoogle Scholar
  27. 27.
    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)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2006

Authors and Affiliations

  • Harmen Kastenberg
    • 1
  • Anneke Kleppe
    • 1
  • Arend Rensink
    • 1
  1. 1.Department of Computer ScienceUniversity of TwenteEnschedeThe Netherlands

Personalised recommendations