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 around the VM implementation we developed, to evaluate the benefits of the proposed approach.
Similar content being viewed by others
References
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)
Barnat, J., Brim, L., Rockai, P.: Scalable multi-core LTL model-checking. In: Bosnacki and Edelkamp [6], pp. 187–203 (2007)
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)
Bevier, W.: Towards an operational semantics of PROMELA in ACL2. In Proceedings of the 3rd International SPIN Workshop, April (1997)
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)
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)
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)
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)
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)
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)
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)
Garavel H.: OPEN/CAESAR: an open software architecture for verification, simulation, and testing. Lecture Notes in Computer Science 1384, 68–84 (1998)
Garavel H., Lang F., Mateescu R.: An overview of CADP 2001. EASST Newsl 4, 13–24 (2002)
Geldenhuys, J.: Efficiency issues in the design of a model checker. Msc. thesis, University of Stellenbosch, South Africa, November (1999)
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)
Hoare C.A.R.: Communicating Sequential Processes. Prentice Hall, Englewood Cliffs (1985)
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)
Holzmann G.J.: The SPIN model checker: primer and reference manual. Addison-Wesley, Boston (2003)
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)
Holzmann G.J., Natarajan V.: Outline for an operational- semantics definition of PROMELA. Technical report, Bell Laboratories, Murray Hill (1996)
Kamel M., Leue S.: Formalization and validation of the general inter-ORB protocol (GIOP) using PROMELA and SPIN. STTT 2(4), 394–409 (2000)
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)
Milner R.: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press, London (1999)
Pelánek, R.: BEEM: Benchmarks for explicit model checkers. In: Bosnacki and Edelkamp [6], pp. 263–267
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)
Quirós, G.: Static byte-code analysis for state space reduction. Master thesis, RWTH Aachen University, March (2006)
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)
Rosien, M.: Design and implementation of a systematic state explorer. Msc. thesis, University of Twente, The Netherlands, March (2001)
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)
Schlich, B., Rohrbach, M., Weber, M., Kowalewski, S.: Model checking software for microcontrollers. Technical Report AIB-2006-11, RWTH Aachen, August (2006)
Schürmans, S.: Ein Compiler und eine Virtuelle Maschine zur Zustandsraumgenerierung. Diploma thesis, RWTH Aachen University, October (2005)
Veldema, R.: Personal communication on the Tapir programming language. http://www2.informatik.uni-erlangen.de/Forschung/Projekte/Tapir/ (2006)
Weise, C.: An incremental formal semantics for PROMELA. In: Proceedings of the 3rd International SPIN Workshop, April (1997)
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)
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)
Author information
Authors and Affiliations
Corresponding author
Additional information
This research has been partially funded by the Netherlands Organization for Scientific Research (NWO) under FOCUS/BRICKS grant number 642.000.05N09.
Rights and permissions
About this article
Cite this article
Weber, M. An embeddable virtual machine for state space generation. Int J Softw Tools Technol Transfer 12, 97–111 (2010). https://doi.org/10.1007/s10009-010-0141-2
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-010-0141-2