An Embeddable Virtual Machine for State Space Generation

  • Michael Weber
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4595)

Abstract

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 on top of the VM implementation we developed, to evaluate the benefits of the proposed approach.

Keywords

Virtual Machine Model Check Operational Semantic Java Virtual Machine Model Check Algorithm 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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 2005), Lisbon, Portuga (July 2005)Google Scholar
  2. 2.
    Bevier, W.: Towards an operational semantics of PROMELA in ACL2. In: Proceedings of the 3rd International SPIN Workshop (April 1997)Google Scholar
  3. 3.
    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 Publishers, North-Holland (1989)Google Scholar
  4. 4.
    Brim, L.: Distributed verification: Exploring the power of raw computing power. In: Brim, L., Haverkort, B., Leucker, M., van de Pol, J. (eds.) FMICS 2006 and PDMC 2006. LNCS, vol. 4346, pp. 23–34. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  5. 5.
    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
  6. 6.
    Dill, D., Drexler, A., Hu, A., Yang, C.: Protocol verification as a hardware design aid. In: ICCD 1992: Proceedings of the 1991 IEEE International Conference on Computer Design on VLSI in Computer & Processors, Washington, DC, USA, pp. 522–525, IEEE Computer Society (1992)Google Scholar
  7. 7.
    Garavel, H.: OPEN/CAESAR: An open software architecture for verification, simulation, and testing. In: LNCS, vol. 1384, pp. 68–84 (1998)Google Scholar
  8. 8.
    Garavel, H., Lang, F., Mateescu, R.: An overview of CADP 2001. EASST Newsletter 4, 13–24 (2002)Google Scholar
  9. 9.
    Geldenhuys, J.: Efficiency issues in the design of a model checker. Msc. thesis, University of Stellenbosch, South Africa (November 1999)Google Scholar
  10. 10.
    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.) FMICS 2006 and PDMC 2006. LNCS, vol. 4346, pp. 51–66. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  11. 11.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs (1985)MATHGoogle Scholar
  12. 12.
    Holzmann, G.J.: The engineering of a model checker: the gnu i-protocol case study revisited. In: Dams, D.R., Gerth, R., Leue, S., Massink, M. (eds.) Theoretical and Practical Aspects of SPIN Model Checking. LNCS, vol. 1680, Springer, Heidelberg (1999)Google Scholar
  13. 13.
    Holzmann, G.J., Natarajan, V.: Outline for an operational-semantics definition of PROMELA. Technical report, Bell Laboratories (July 1996)Google Scholar
  14. 14.
    Milner, R.: The polyadic π-calculus: a tutorial. Technical Report ECS–LFCS–91–180, Laboratory for Foundations of Computer Science, Department of Computer Science, University of Edinburgh, UK, Oct. 1993. In: Bauer, F.L., Brauer, W., Schwichtenberg, H. (ed.): Logic and Algebra of Specification, Springer, Heidelberg (1993)Google Scholar
  15. 15.
    Qian, Z.: A formal specification of java virtual machine instructions for objects, methods and subrountines. Formal Syntax and Semantics of Java, 271–312 (1999)Google Scholar
  16. 16.
    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
  17. 17.
    Rosien, M.: Design and implementation of a systematic state explorer. Msc. thesis, University of Twente, The Netherlands (March 2001)Google Scholar
  18. 18.
    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
  19. 19.
    Schlich, B., Rohrbach, M., Weber, M., Kowalewski, S.: Model checking software for microcontrollers. Technical Report AIB-2006-11, RWTH Aachen (August 2006)Google Scholar
  20. 20.
    Schürmans, S.: Ein Compiler und eine Virtuelle Maschine zur Zustandsraumgenerierung. Diplomarbeit, RWTH Aachen University (October 2005)Google Scholar
  21. 21.
    Veldema, R.: Personal communication on the Tapir programming language (2006), http://www2.informatik.uni-erlangen.de/Forschung/Projekte/Tapir/
  22. 22.
    Weise, C.: An incremental formal semantics for PROMELA. In: Proceedings of the 3rd International SPIN Workshop (April 1997)Google Scholar
  23. 23.
    Wibling, O., Parrow, J., Pears, A.: Automatized verification of ad hoc routing protocols. In: de Frutos-Escrig, D., Núñez, M. (eds.) FORTE 2004. LNCS, vol. 3235, pp. 343–358. Springer, Heidelberg (2004)Google Scholar
  24. 24.
    Wirth, N.: Pascal-s: A subset and its implementation. In: Barron, D.W. (ed.) Pascal - The Language and its Implementation, pp. 199–259. John Wiley, New York (1981)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Michael Weber
    • 1
  1. 1.Department of Software Engineering, CWI, AmsterdamThe Netherlands

Personalised recommendations