An embeddable virtual machine for state space generation

  • Michael Weber


The semantics of modelling languages are not always specified in a precise and formal way, and their rather complex underlying models make it a non-trivial exercise to reuse them in newly developed tools. We report on experiments with a virtual machine-based approach for state space generation. The virtual machine’s (VM) byte-code language is straightforwardly implementable, facilitates reuse and makes it an adequate target for translation of higher-level languages like the SPIN model checker’s Promela, or even C. As added value, it provides efficiently executable operational semantics for modelling languages. Several tools have been built around the VM implementation we developed, to evaluate the benefits of the proposed approach.


State space generation Model checking Virtual machine Operational semantics Promela 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Barnat, J., Brim, L., Černá, I., Šimeček, P.: DiVinE the distributed verification environment. In: Leucker, M., van de Pol J. (eds.) 4th International Workshop on Parallel and Distributed Methods in verifiCation (PDMC’05). Lisbon, Portuga, July (2005)Google Scholar
  2. 2.
    Barnat, J., Brim, L., Rockai, P.: Scalable multi-core LTL model-checking. In: Bosnacki and Edelkamp [6], pp. 187–203 (2007)Google Scholar
  3. 3.
    Barnat J., Brim L., Simecek P., Weber M.: Revisiting resistance speeds up I/O-efficient LTL model checking. In: Ramakrishnan, C.R., Rehof, J. (eds) TACAS, vol. 4963 of Lecture Notes in Computer Science, pp. 48–62. Springer, Berlin (2008)Google Scholar
  4. 4.
    Bevier, W.: Towards an operational semantics of PROMELA in ACL2. In Proceedings of the 3rd International SPIN Workshop, April (1997)Google Scholar
  5. 5.
    Bolognesi T., Brinksma E.: Introduction to the ISO specification language LOTOS. In: van Eijk, P.H.J., Vissers, C.A., Diaz, M. (eds) The Formal Description Technique LOTOS, pp. 23–73. Elsevier Science, North-Holland (1989)Google Scholar
  6. 6.
    Bosnacki, D., Edelkamp, S., editors.: Model Checking Software, 14th International SPIN Workshop, Berlin, Germany, July 1–3, 2007, Proceedings, vol. 4595 of Lecture Notes in Computer Science. Springer, Berlin (2007)Google Scholar
  7. 7.
    Brat, G., Havelund, K., Park, S., Visser, W.: Java PathFinder—second generation of a Java model checker. In: Proceedings of the Workshop on Advances in Verification (2000)Google Scholar
  8. 8.
    Brim L.: Distributed verification: exploring the power of raw computing power. In: Brim, L., Haverkort, B., Leucker, M., van de Pol, J. (eds) Formal Methods: Applications and Technology, vol. 4346 of Lecture Notes in Computer Science, pp. 23–34. Springer, Berlin (2006)Google Scholar
  9. 9.
    de Villiers, P., Visser, W.: ESML—a validation language for concurrent systems. In: Bishop, J. (ed) 7-th Southern African Computer Symposium, pp 59–64. July (1992)Google Scholar
  10. 10.
    Dill, D., Drexler, A., Hu, A., Yang, C.: Protocol verification as a hardware design aid. In ICCD ’92: Proceedings of the 1991 IEEE International Conference on Computer Design on VLSI in Computer and Processors, pp 522–525. IEEE Computer Society, Washington, DC, USA (1992)Google Scholar
  11. 11.
    Emerson, E.A., Namjoshi, K.S., editors.: Verification, Model Checking, and Abstract Interpretation, 7th International Conference, VMCAI 2006, Charleston, SC, USA, January 8–10, 2006, Proceedings, volume 3855 of Lecture Notes in Computer Science. Springer, Berlin (2006)Google Scholar
  12. 12.
    Garavel H.: OPEN/CAESAR: an open software architecture for verification, simulation, and testing. Lecture Notes in Computer Science 1384, 68–84 (1998)CrossRefGoogle Scholar
  13. 13.
    Garavel H., Lang F., Mateescu R.: An overview of CADP 2001. EASST Newsl 4, 13–24 (2002)Google Scholar
  14. 14.
    Geldenhuys, J.: Efficiency issues in the design of a model checker. Msc. thesis, University of Stellenbosch, South Africa, November (1999)Google Scholar
  15. 15.
    Hammer M., Weber M.: “To Store or Not To Store” reloaded: reclaiming memory on demand. In: Brim, L., Haverkort, B., Leucker, M., van de Pol, J. (eds) Formal Methods: Applications and Technology, vol. 4346 of Lecture Notes in Computer Science, pp. 51–66. Springer, Berlin (2006)Google Scholar
  16. 16.
    Hoare C.A.R.: Communicating Sequential Processes. Prentice Hall, Englewood Cliffs (1985)zbMATHGoogle Scholar
  17. 17.
    Holzmann, G.J.: The engineering of a model checker: the GNU i-protocol case study revisited. In: Proceedings of the 6th Spin Workshop, vol. 1680 of Lecture Notes in Computer Science. Springer, Toulouse, France (1999)Google Scholar
  18. 18.
    Holzmann G.J.: The SPIN model checker: primer and reference manual. Addison-Wesley, Boston (2003)Google Scholar
  19. 19.
    Holzmann G.J., Bosnacki D.: The design of a multicore extension of the SPIN model checker. IEEE Trans. Softw. Eng. 33(10), 659–674 (2007)CrossRefGoogle Scholar
  20. 20.
    Holzmann G.J., Natarajan V.: Outline for an operational- semantics definition of PROMELA. Technical report, Bell Laboratories, Murray Hill (1996)Google Scholar
  21. 21.
    Kamel M., Leue S.: Formalization and validation of the general inter-ORB protocol (GIOP) using PROMELA and SPIN. STTT 2(4), 394–409 (2000)zbMATHGoogle Scholar
  22. 22.
    Leven P., Mehler T., Edelkamp S.: Directed error detection in c++ with the assembly-level model checker StEAM. In: Graf, S., Mounier, L. (eds) SPIN, volume 2989 of Lecture Notes in Computer Science, pp. 39–56. Springer, Berlin (2004)Google Scholar
  23. 23.
    Milner R.: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press, London (1999)zbMATHGoogle Scholar
  24. 24.
    Pelánek, R.: BEEM: Benchmarks for explicit model checkers. In: Bosnacki and Edelkamp [6], pp. 263–267Google Scholar
  25. 25.
    Qian, Z.: A formal specification of java virtual machine instructions for objects, methods and subrountines. In: Formal Syntax and Semantics of Java, pp 271–312 (1999)Google Scholar
  26. 26.
    Quirós, G.: Static byte-code analysis for state space reduction. Master thesis, RWTH Aachen University, March (2006)Google Scholar
  27. 27.
    Robby, Dwyer M.B., Hatcliff J.: Bogor: an extensible and highly-modular software model checking framework. SIGSOFT Softw. Eng. Notes 28(5), 267–276 (2003)CrossRefGoogle Scholar
  28. 28.
    Rosien, M.: Design and implementation of a systematic state explorer. Msc. thesis, University of Twente, The Netherlands, March (2001)Google Scholar
  29. 29.
    Schlich, B., Kowalewski, S.: Model checking C source code for embedded systems. In: Proceedings of the IEEE/NASA Workshop on Leveraging Applications of Formal Methods, Verification, and Validation (ISoLA 2005), September (2005)Google Scholar
  30. 30.
    Schlich, B., Rohrbach, M., Weber, M., Kowalewski, S.: Model checking software for microcontrollers. Technical Report AIB-2006-11, RWTH Aachen, August (2006)Google Scholar
  31. 31.
    Schürmans, S.: Ein Compiler und eine Virtuelle Maschine zur Zustandsraumgenerierung. Diploma thesis, RWTH Aachen University, October (2005)Google Scholar
  32. 32.
    Veldema, R.: Personal communication on the Tapir programming language. (2006)
  33. 33.
    Weise, C.: An incremental formal semantics for PROMELA. In: Proceedings of the 3rd International SPIN Workshop, April (1997)Google Scholar
  34. 34.
    Wibling, O., Parrow, J., Pears, A.: Automatized verification of ad hoc routing protocols. In: FORTE, volume 3235 of Lecture Notes in Computer Science, pp 343–358. Springer (2004)Google Scholar
  35. 35.
    Wirth N.: Pascal-S: a subset and its implementation. In: Barron, D.W. (eds) Pascal—The Language and its Implementation, pp. 199–259. Wiley, London (1981)Google Scholar

Copyright information

© Springer-Verlag 2010

Authors and Affiliations

  1. 1.Formal Methods and ToolsUniversity of TwenteEnschedeThe Netherlands

Personalised recommendations