This Is Not a ModelOpen image in new window

On Development of a Common Terminology for Modeling and Programming
  • Ole Lehrmann Madsen
  • Birger Møller-PedersenEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11244)


SIMULA and Beta are object-oriented languages intended for modeling and programming. This is in contrast to mainstream where different languages are used for modeling and programming. In previous papers, it has been argued that there are a number of advantages in developing a unified language. In order to do this, a consistent terminology for modeling and programming is needed. The notion of model is essential in this respect. In UML, the diagrams are considered models. For SIMULA and Beta the program executions are considered models. We argue for the latter and discuss the implications for the design of a unified language.


Modeling Programming Languages 



We would like to thank the organizers (especially Klaus Havelund) for inviting us, the reviewers for constructive criticism, Hans Petter Dahle, Eyvind W. Axelsen and Arne Maus for valuable comments, and Susanne Brøndberg for proofreading.


  1. 1.
    Madsen, O.L., Møller-Pedersen, B.: A unified approach to modeling and programming. In: Petriu, Dorina C., Rouquette, N., Haugen, Ø. (eds.) MODELS 2010. LNCS, vol. 6394, pp. 1–15. Springer, Heidelberg (2010). Scholar
  2. 2.
    Broy, M., Havelund, K., Kumar, R.: Towards a unified view of modeling and programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9953, pp. 238–257. Springer, Cham (2016). Scholar
  3. 3.
    Dahl, O.-J., Myhrhaug, B., Nygaard, K.: SIMULA 67 Common Base Language (Editions 1968, 1970, 1972, 1984). Norwegian Computing Center, Oslo (1968)Google Scholar
  4. 4.
    Coad, P., Yourdon, E.: Object-Oriented Analysis. Prentice-Hall, Englewood Cliffs (1991)Google Scholar
  5. 5.
    Rumbaugh, J., et al.: Object-Oriented Modeling and Design. Prentice Hall, Englewood Cliffs (1991)Google Scholar
  6. 6.
    Booch, G.: Object-Oriented Analysis and Design with Applications. Benjamin/Cummings, Redwood City (1991)zbMATHGoogle Scholar
  7. 7.
    Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language Reference Manual. Addison Wesley, Essex (1998)Google Scholar
  8. 8.
    OMG, UML 2.5 (2015)Google Scholar
  9. 9.
    Madsen, O.L., Møller-Pedersen, B., Nygaard, K.: Object-Oriented Programming in the BETA Programming Language. Addison Wesley, New York (1993)Google Scholar
  10. 10.
    Lethbridge, T.C., Abdelzad, V., Husseini Orabi, M., Husseini Orabi, A., Adesina, O.: Merging modeling and programming using Umple. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9953, pp. 187–197. Springer, Cham (2016). Scholar
  11. 11.
    Neubauer, P., Mayerhofer, T., Kappel, G.: Towards Integrating Modeling and Programming Languages: The Case of UML and Java (2014)Google Scholar
  12. 12.
    OMG, Semantics of a Foundational Subset for Executable UML Models (fUML), Version 1.3 (2017)Google Scholar
  13. 13.
    Ungar, D., Smith, R.B.: Self: the power of simplicity. In: Object-Oriented Programming Systems, Languages and Applications, OOPSLA 1987, Orlando, Florida, USA. ACM Press (1987)Google Scholar
  14. 14.
    Nierstrasz, O.: Ten things I hate about object-oriented programming. In: The JOT Blog (2010)Google Scholar
  15. 15.
    OMG, Precise Semantics of UML State Machines (PSSM) Version 1.0 Beta (2017)Google Scholar
  16. 16.
    OMG, Precise Semantics of UML Composite Structure (PSCSTM) - Version 1.1 (2018)Google Scholar
  17. 17.
    Naur, P.: Proof of algorithms by general snapshots. BIT 6, 310–316 (1966)CrossRefGoogle Scholar
  18. 18.
    ITU, Message Sequence Charts (MSC), Recommendation Z.120, Geneva (1999)Google Scholar
  19. 19.
    Ciccozzi, F., Malavolta, I., Selic, B.: Execution of UML models: a systematic review of research and practice. Softw. Syst. Model., 1–48 (2018)Google Scholar
  20. 20.
    Hoare, C.A.R.: Notes on Data Structuring, in Structured Programming. Academic Press, London (1972)Google Scholar
  21. 21.
    Kristensen, B.B., Madsen, O.L., Møller-Pedersen, B.: The when, why and why not of the BETA programming language. In: The Third ACM SIGPLAN Conference on History of Programming Languages, HOPL III, San Diego (2007)Google Scholar
  22. 22.
    Dahl, O.-J., Nygaard, K.: SIMULA–A Language for Programming and Description of Discrete Event Systems. Norwegian Computing Center, Oslo (1965)Google Scholar
  23. 23.
    Birtwistle, G.M., et al.: Simula BEGIN. Studentlitteratur/auerbach, Philadelphia (1973)Google Scholar
  24. 24.
    Madsen, O.L., Møller-Pedersen, B.: What object-oriented programming may be - and what it does not have to be. In: Gjessing, S., Nygaard, K. (eds.) ECOOP 1988. LNCS, vol. 322, pp. 1–20. Springer, Heidelberg (1988). Scholar
  25. 25.
    Dahl, O.-J., Dijkstra, E.W., Hoare, C.A.R.: Structured Programming. Academic Press, London (1972)Google Scholar
  26. 26.
    Dahl, O.-J., Nygaard, K.: SIMULA: an ALGOL-based simulation language. Commun. ACM 9(9), 671–678 (1966)CrossRefGoogle Scholar
  27. 27.
    Fischer, J., Møller-Pedersen, B., Prinz, A.: Modelling of systems for real. In: Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2016), pp. 427–434. SCITEPRESS – Science and Technology Publications, Rome (2016)Google Scholar
  28. 28.
    Black, A.P.: Object-oriented programming: some history, and challenges for the next fifty years. Inf. Comput. 231, 3–20 (2013)MathSciNetCrossRefGoogle Scholar
  29. 29.
    Black, A.P., Bruce, K.B., Noble, J.: The Grace Programming Language Draft Specification Version 0.3.1303 (2013)Google Scholar
  30. 30.
    Cook, W.R., Hill, W., Canning, P.S.: Inheritance is not subtyping. In: 17th ACM SIGPLAN-SIGACT Symposium on Principles of programming Languages, POPL 1990, San Francisco, California. ACM, New York (1990)Google Scholar
  31. 31.
    Madsen, O.L., Møller-Pedersen, B.: Virtual classes–a powerful mechanism in object-oriented programming. In: Object-Oriented Programming, Systems Languages and Applications, OOPSLA 1989. ACM Press, New Orleans (1989)Google Scholar
  32. 32.
    Goldberg, A., Robson, D.: Smalltalk-80: The Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc., Boston (1983)zbMATHGoogle Scholar
  33. 33.
    Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16(6), 1811–1841 (1994)CrossRefGoogle Scholar
  34. 34.
    Kristensen, B.B., Madsen, O.L., Møller-Pedersen, B., Nygaard, K.: Classification of actions or Inheritance Also for methods. In: Bézivin, J., Hullot, J.-M., Cointe, P., Lieberman, H. (eds.) ECOOP 1987. LNCS, vol. 276, pp. 98–107. Springer, Heidelberg (1987). Scholar
  35. 35.
    Madsen, O.L.: Building safe concurrency abstractions. In: Agha, G., et al. (eds.) Concurrent Objects and Beyond. LNCS, vol. 8665, pp. 66–104. Springer, Heidelberg (2014). Scholar
  36. 36.
    Madsen, O.L.: Using object sequence diagrams for defining object semantics or just another high-level debugger. Technical report, Aarhus University (2018, in Preparation)Google Scholar
  37. 37.
    Rumbaugh, J.: Relations as semantic constructs in an object-oriented language. In: Object-Oriented Programming, Systems Languages and Applications, OOPSLA 1987. ACM Press, Orlando (1987)Google Scholar
  38. 38.
    Østerbye, K.: Associations as a Language Construct. In: TOOLS 1999, Nancy (1999)Google Scholar
  39. 39.
    Gamma, E., et al.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional Computing Series. Addison-Wesley, Reading (1995)Google Scholar
  40. 40.
    Chin, B., Millstein, T.: An extensible state machine pattern for interactive applications. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 566–591. Springer, Heidelberg (2008). Scholar
  41. 41.
    Andresen, K., Møller-Pedersen, B., Runde, R.K.: Combined modelling and programming support for composite states and extensible state machines. In: MODELSWARD 2015 - 3rd International Conference on Model-Driven Engineering and Software Development. SciTePress, ESEO, Angers (2015)Google Scholar
  42. 42.
    Aldrich, J., et al.: Typestate-oriented programming. In: Onward 2009, OOPSLA 2009, Orlando, Florida, USA (2009)Google Scholar
  43. 43.
    Sunshine, J., et al.: First-class state change in plaid. In: OOPSLA 2011, Portland, Oregon. ACM, USA (2011)Google Scholar
  44. 44.
    Taivalsaari, A.: Object-oriented programming with modes. J. Object Oriented Program. 6(3), 25–32 (1993)Google Scholar
  45. 45.
    Madsen, O.L.: Towards integration of state machines and object-oriented languages. In: Technology of Object-Oriented Languages and Systems, pp. 261–274 (1999)Google Scholar
  46. 46.
    Holbæk-Hanssen, E., Håndlykken, P., Nygaard, K.: System Description and the DELTA Language. Norwegian Computing Center, Oslo (1973)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  • Ole Lehrmann Madsen
    • 1
    • 2
  • Birger Møller-Pedersen
    • 3
    Email author
  1. 1.Aarhus UniversityAarhusDenmark
  2. 2.The Alexandra Institute Ltd.AarhusDenmark
  3. 3.Department of InformaticsUniversity of OsloOsloNorway

Personalised recommendations