K: A Wide Spectrum Language for Modeling, Programming and Analysis

Klaus Havelund, Rahul Kumar, Chris Delp, Bradley Clement


The formal methods community has over the years proposed various formally founded specification languages based on predicate logic and set theory. At the same time the model-based engineering community has pro- posed less formally founded graphical formalisms such as UML and SysML. We report on an effort to formally ground SysML in a textual formal language, named K, supporting classes, multiple inheritance, predicate logic and set theory. K contains programming constructs, and can thus be considered as a wide-spectrum modeling and programming language. We further explain the translation of a subset of this textual language to the input language of the SMT-LIB standard, and the application of Z3 for analysis of the generated SMT-LIB formu- las. The entire effort is part of a larger effort to develop a general purpose SysML development framework for designing systems, in support of NASA’s proposed 2022 mission to Jupiter’s moon Europa.


  1. Allen, J. F. (1984). Towards a general theory of action and time. Artificial Intelligence , 23:123-154.
  2. Barnett, M., Chang, B.-Y. E., DeLine, R., Jacobs, B., and Leino, K. R. M. (2006). Boogie: A modular reusable verifier for object-oriented programs. InFormal methods for Components and Objects, pages 364-387. Springer.
  3. Barnett, M., Fähndrich, M., Leino, K. R. M., Müller, P., Schulte, W., and Venter, H. (2011). Specification and verification: the Spec# experience. Communications of the ACM, 54(6):81-91.
  4. Barras, B., Boutin, S., Cornes, C., Courant, J., Filliatre, J.- C., Gimenez, E., Herbelin, H., Huet, G., Munoz, C., Murthy, C., et al. (1997). The coq proof assistant reference manual: Version 6.1.
  5. Bjørner, D. and Jones, C. B., editors (1978). The Vienna Development Method: The Meta-Language, volume 61 of LNCS. Springer.
  6. Bjørner, D. and Jones, C. B. (1982). Formal Specification and Software Development. Prentice Hall International. ISBN 0-13-880733-7.
  7. Bobot, F., Filliâtre, J.-C., Marché, C., and Paskevich, A. (2011). Why3: Shepherd your herd of provers. In Boogie 2011: First International Workshop on Intermediate Verification Languages , pages 53-64, Wroclaw, Poland.
  8. De Moura, L. and Bjørner, N. (2008). Z3: An efficient smt solver. In Tools and Algorithms for the Construction and Analysis of Systems, pages 337-340. Springer.
  9. Europa Clipper Mission (2015). http://www.jpl.nasa.gov/ missions/europa-mission.
  10. Fitzgerald, J., Larsen, P. G., Mukherjee, P., Plat, N., and Verhoef, M. (2005). Validated Designs For Objectoriented Systems. Springer-Verlag TELOS, Santa Clara, CA, USA.
  11. Fortress (2015). https://projectfortress.java.net/.
  12. George, C., Haff, P., Havelund, K., Haxthausen, A., Milne, R., Nielsen, C. B., Prehn, S., and Wagner, K. R. (1992). The RAISE Specification Language . The BCS Practitioner Series, Prentice-Hall, Hemel Hampstead, England.
  13. Gurevich, Y., Rossman, B., and Schulte, W. (2005). Semantic essence of AsmL. Theoretical Computer Science, 343(3):370-412.
  14. Havelund, K. (2011). Closing the gap between specification and programming: VDM++ and Scala. In Korovina, M. and Voronkov, A., editors, HOWARD-60: HigherOrder Workshop on Automated Runtime Verification and Debugging, volume 1 of EasyChair Proceedings. Manchester, UK.
  15. Jackson, D. (2012). Software Abstractions: Logic, Language, and Analysis. The MIT Press.
  16. Jackson, E. K., Seifert, D., Dahlweid, M., Santen, T., Bjørner, N., and Schulte, W. (2009). Specifying and composing non-functional requirements in modelbased development. In Software Composition, pages 72-89. Springer.
  17. Jones, C. B. (1990). Systematic Software Development using VDM. Prentice Hall. ISBN 0-13-880733-7.
  18. Jones, C. B. and Shaw, R. C., editors (1990). Case Studies in Systematic Software Development. Prentice Hall International. ISBN 0-13-880733-7.
  19. Jones, S. L. P. (2003). Haskell 98 language and libraries: the revised report. Cambridge University Press.
  20. K (2015). http://www.theklanguage.com.
  21. Kim, S.-K., Burger, D., and Carrington, D. (2005). An mda approach towards integrating formal and informal modeling languages. In FM 2005: Formal Methods, pages 448-464. Springer.
  22. Lausdahl, K., Lintrup, H. K. A., and Larsen, P. G. (2009). Connecting uml and vdm++ with open tool support. In FM 2009: Formal Methods, pages 563-578. Springer.
  23. Leavens, G. T., Baker, A. L., and Ruby, C. (1998). Jml: a java modeling language. In Formal Underpinnings of Java Workshop (at OOPSLA'98), pages 404-420. Citeseer.
  24. Leino, R. (2010). Dafny: An automatic program verifier. In Clarke, E. M. and Voronkov, A., editors, 16th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning, LPAR 2010, Dakar, Senegal, April 25-May 1 , volume 6355 of LNCS. Springer.
  25. MagicDraw (2015). https://www.magicdraw.com/.
  26. Meyer, B. (1988). Eiffel: A language and environment for software engineering. Journal of Systems and Software, 8(3):199-246.
  27. Milner, R., Tofte, M., and Harper, R., editors (1997). The Definition of Standard ML . MIT Press. ISBN 0-262- 63181-4.
  28. Nipkow, T., Paulson, L. C., and Wenzel, M. (2002). Isabelle/HOL: a proof assistant for higher-order logic, volume 2283. Springer Science & Business Media.
  29. OCaml (2015). http://caml.inria.fr/ocaml/index.en.html.
  30. Odersky, M. (2010). Contracts for Scala. In Runtime Verification - First Int. Conference, RV'10, St. Julians, Malta, November 1-4, 2010. Proceedings, volume 6418 of LNCS, pages 51-57. Springer.
  31. OMG (2012). Systems Modeling Language (SysML). http://www.omg.org/spec/SysML/1.3/.
  32. OMG (2015). UML. http://www.omg.org/spec/UML/2.5/.
  33. Owre, S., Rushby, J. M., , and Shankar, N. (1992). PVS: A prototype verification system. In Kapur, D., editor, 11th International Conference on Automated Deduction (CADE), volume 607 of Lecture Notes in Artificial Intelligence , pages 748-752, Saratoga, NY. Springer-Verlag.
  34. PVS (2015). http://pvs.csl.sri.com.
  35. Python (2015). http://www.python.org.
  36. Scala (2015). http://www.scala-lang.org.
  37. SMT-LIB (2015). http://smtlib.cs.uiowa.edu.
  38. Spivey, J. M. (1988). Understanding Z: A Specification Language and Its Formal Semantics. Cambridge University Press, New York, NY, USA.

Paper Citation

in Harvard Style

Havelund K., Kumar R., Delp C. and Clement B. (2016). K: A Wide Spectrum Language for Modeling, Programming and Analysis . In Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-168-7, pages 111-122. DOI: 10.5220/0005741401110122

in Bibtex Style

author={Klaus Havelund and Rahul Kumar and Chris Delp and Bradley Clement},
title={K: A Wide Spectrum Language for Modeling, Programming and Analysis},
booktitle={Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},

in EndNote Style

JO - Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - K: A Wide Spectrum Language for Modeling, Programming and Analysis
SN - 978-989-758-168-7
AU - Havelund K.
AU - Kumar R.
AU - Delp C.
AU - Clement B.
PY - 2016
SP - 111
EP - 122
DO - 10.5220/0005741401110122