Abstract
The article provides an introduction to the track: Towards a Unified View of Modeling and Programming, organized by the authors of this paper as part of ISoLA 2018: the 8th International Symposium On Leveraging Applications of Formal Methods, Verification and Validation. A total of 19 researchers presented their views on the two questions: what are the commonalities between modeling and programming languages?, and should we strive towards a unified view of modeling and programming? The idea behind the track, which is a continuation of a similar track at ISoLA 2016, emerged as a result of experiences gathered in the three fields: formal methods, model-based software engineering, and programming languages, and from the observation that these technologies share a large common part, to the extent where one may ask, does the following equation hold:
Keywords
The research performed by this author was carried out at Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Which are very popular in practice, as “pictures are (often) worth a thousand words”.
- 2.
The difference between internal and external DSLs can be sketched as follows: an internal DSL is added (e.g. via API functionality) to a host language, which is usually a general-purpose programming language, while an external DSL comes with its own syntax that is completely independent of already existing languages.
- 3.
Design languages are essentially DSLs, as discussed in Sect. 4.
References
Documents associated with Object Constraint Language (OCL), Version 2.4. http://www.omg.org/spec/OCL/2.4
Abrial, J.R.: Modeling in Event-B. Cambridge University Press, Cambridge (2010)
Andersen, L., Chang, S., Felleisen, M.: Super 8 Languages for Making Movies (Functional Pearl). In: Proceedings of the ACM on Programming Languages 1(ICFP) (2017)
Barras, B., et al.: The Coq Proof Assistant Reference Manual: Version 6.1 (1997)
Bauer, F., Broy, M., Gnatz, R., Hesse, W., Krieg-Brückner, B.: Towards a wide spectrum language to support program specification and program development. In: Alber, K. (ed.) Programmiersprachen. Informatik - Fachberichte, vol. 12, pp. 73–85. Springer, Heidelberg (1978)
Berg, A., et al.: PG 582 - Industrial Programming by Example. Technical report, TU Dortmund (2015). http://hdl.handle.net/2003/34106
Bjørner, D., Jones, C.B. (eds.): The Vienna Development Method: The Meta-Language. LNCS, vol. 61. Springer, Heidelberg (1978). https://doi.org/10.1007/3-540-08766-4
Bjørner, D., Jones, C.B.: Formal Specification and Software Development. Prentice Hall International (1982). ISBN 0-13-880733-7
Bobot, F., Filliâtre, J.C., Marché, C., Paskevich, A.: Why3: shepherd your herd of provers. In: Boogie 2011: First International Workshop on Intermediate Verification Languages, pp. 53–64. Wrocław, Poland, August 2011
Boerger, E.: Why programming must be supported by modeling and how. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 89–110. Springer, Cham (2018)
Bosselmann, S., Naujokat, S., Steffen, B.: On the difficulty of drawing the line. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 340–356. Springer, Cham (2018)
Broy, M.: On architecture specification. In: Tjoa, A.M., Bellatreche, L., Biffl, S., van Leeuwen, J., Wiedermann, J. (eds.) SOFSEM 2018. LNCS, vol. 10706, pp. 19–39. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-73117-9_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). https://doi.org/10.1007/978-3-319-47169-3_17
Broy, M., Havelund, K., Kumar, R.: Towards a Unified View of Modeling and Programming (Track Summary). In: Margaria, T., Steffen, B. (eds.) ISoLA 2016, part 2. LNCS, vol. 9953, pp. 3–10. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-47169-3_1
Chadli, M., Kim, J.H., Larsen, K.G., Legay, A., Naujokat, S., Steffen, B., Traonouez, L.M.: High-level frameworks for the specification and verification of scheduling problems. Softw. Tools Technol. Transfer (2017)
Cleaveland, R.: Programming is modeling. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 150–161. Springer, Cham (2018)
Dmitriev, S.: Language Oriented Programming: The Next Programming Paradigm. JetBrains onBoard Online Magazine 1 (2004). http://www.onboard.jetbrains.com/is1/articles/04/10/lop/
Eiffel (2015). http://www.eiffel.com
Elaasar, M.: Definition of modeling vs. programming languages. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 35–51. Springer, Cham (2018)
Felleisen, M.: A programmable programming language. Commun. ACM 61(3), 62–71 (2018)
Fitzgerald, J., Larsen, P.G., Mukherjee, P., Plat, N., Verhoef, M.: Validated Designs For Object-oriented Systems. Springer, Santa Clara (2005). https://doi.org/10.1007/b138800
Fowler, M., Parsons, R.: Domain-Specific Languages. Addison-Wesley/ACM Press (2011). http://books.google.de/books?id=ri1muolw_YwC
George, C., et al.: The RAISE Specification Language. The BCS Practitioner Series. Prentice-Hall, Hemel Hampstead (1992)
Gurevich, Y., Rossman, B., Schulte, W.: Semantic Essence of AsmL. Theor. Comput. Sci. 343(3), 370–412 (2005)
Hallerstede, S., Larsen, P.G., Fitzgerald, J.: A Non-unified view of modelling, specification and programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 52–68. Springer, Cham (2018)
Hatcliff, J., Larson, B.R., Belt, J., Robby, Zhang, Y.: A unified approach for modeling, developing, and assuring critical systems. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 225–245. Springer, Cham (2018)
Havelund, K., Joshi, R.: Modeling in Scala. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 184–205. Springer, Cham (2018)
Havelund, K., Visser, W.: Program model checking as a new trend. STTT 4(1), 8–20 (2002)
Holzmann, G.: The SPIN Model Checker. Addison-Wesley, Boston (2004)
Huisman, M.: On models and code - a unified approach to support large-scale deductive program verification. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 111–118. Springer, Cham (2018)
Idris. https://www.idris-lang.org
Ionescu, C., Jansson, P., Botta, N.: Type theory as a framework for modelling and programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 119–133. Springer, Cham (2018)
Jackson, D.: Software Abstractions: Logic, Language, and Analysis. The MIT Press (2012)
JetBrains: Meta Programming System. https://www.jetbrains.com/mps
Jones, N.D: On modeling and programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 22–34. Springer, Cham (2018)
Jones, S.L.P.: Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge (2003)
Karsai, G.: From modeling to model-based programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 295–308. Springer, Cham (2018)
Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press, Hoboken (2008)
Kiczales, G., et al.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997). https://doi.org/10.1007/BFb0053381
Lamport, L.: Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Pearson Education Inc., London (2002)
Leino, K.R.M.: Dafny: an automatic program verifier for functional correctness. In: Clarke, E.M., Voronkov, A. (eds.) LPAR 2010. LNCS (LNAI), vol. 6355, pp. 348–370. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-17511-4_20
Lethbridge, T.C., Algablan, A.: Using umple to synergistically process features, variants, UML models and classic code. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 69–88. Springer, Cham (2018)
Madsen, O.L., Møller-Pedersen, B.: This is not a model. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 206–224. Springer, Cham (2018)
Margaria, T.: From computational thinking to constructive design with simple models. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 261–278. Springer, Cham (2018)
Milner, R., Tofte, M., Harper, R. (eds.): The Definition of Standard ML. MIT Press (1997). ISBN 0-262-63181-4
Naujokat, S., Lybecait, M., Kopetzki, D., Steffen, B.: CINCO: a simplicity-driven approach to full generation of domain-specific graphical modeling tools. Softw. Tools Technol. Transfer (2017)
Naujokat, S., Traonouez, L.-M., Isberner, M., Steffen, B., Legay, A.: Domain-specific code generator modeling: a case study for multi-faceted concurrent systems. In: Margaria, T., Steffen, B. (eds.) ISoLA 2014. LNCS, vol. 8802, pp. 481–498. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-45234-9_33
Nipkow, T., Wenzel, M., Paulson, L.C. (eds.): Isabelle/HOL: A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45949-9
O’Connor, L., Chen, Z., Susarla, P., Rizkallah, C., Klein, G., Keller, G.: bringing effortless refinement of data layouts to COGENT. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 134–149. Springer, Cham (2018)
OMG: SysML. http://www.omg.org/spec/SysML/1.3
OMG: UML. http://www.omg.org/spec/UML/2.5
Scala. http://www.scala-lang.org
Selić, B.: Design languages: a necessary new generation of computer languages. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 279–294. Springer, Cham (2018)
Sestoft, P.: Programming language specification and implementation. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 162–183. Springer, Cham (2018)
Smyth, S., Schulz-Rosengarten, A., von Hanxleden, R.: Towards interactive compilation models. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 246–260. Springer, Cham (2018)
Spivey, J.M.: The Z Notation - a Reference Manual. International Series in Computer Science, 2nd edn. Prentice Hall, Hemel Hempstead (1992)
Steffen, B., Gossen, F., Naujokat, S., Margaria, T.: Language-driven engineering: from general-purpose to purpose-specific languages. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 546–564. Springer, Cham (2018)
UPPAAL. http://www.uppaal.org
Voelter, M., Siegmund, J., Berger, T., Kolb, B.: Towards user-friendly projectional editors. In: Combemale, B., Pearce, D.J., Barais, O., Vinju, J.J. (eds.) SLE 2014. LNCS, vol. 8706, pp. 41–61. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-11245-9_3
Voelter, M.: Fusing modeling and programming into language-oriented programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 309–339. Springer, Cham (2018)
Ward, M.P.: Language oriented programming. Softw. Concepts Tools 15(4), 147–161 (1994)
Weckwerth, J.: Cinco Evaluation: CMMN-Modellierung und -Ausführung in der Praxis. Master’s thesis, TU Dortmund (2016)
Wortmann, N., Michel, M., Naujokat, S.: A fully model-based approach to software development for industrial centrifuges. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9953, pp. 774–783. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-47169-3_58
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Broy, M., Havelund, K., Kumar, R., Steffen, B. (2018). Towards a Unified View of Modeling and Programming (ISoLA 2018 Track Introduction). In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. Modeling. ISoLA 2018. Lecture Notes in Computer Science(), vol 11244. Springer, Cham. https://doi.org/10.1007/978-3-030-03418-4_1
Download citation
DOI: https://doi.org/10.1007/978-3-030-03418-4_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-03417-7
Online ISBN: 978-3-030-03418-4
eBook Packages: Computer ScienceComputer Science (R0)