Using EventB to Create a Virtual Machine Instruction Set Architecture

  • Stephen Wright
Conference paper

DOI: 10.1007/978-3-540-87603-8_21

Part of the Lecture Notes in Computer Science book series (LNCS, volume 5238)
Cite this paper as:
Wright S. (2008) Using EventB to Create a Virtual Machine Instruction Set Architecture. In: Börger E., Butler M., Bowen J.P., Boca P. (eds) Abstract State Machines, B and Z. ABZ 2008. Lecture Notes in Computer Science, vol 5238. Springer, Berlin, Heidelberg


A Virtual Machine (VM) is a program running on a conventional microprocessor that emulates the binary instruction set, registers, and memory space of an idealized computing machine, a well-known example being the Java Virtual Machine (JVM). Despite there being many binary Instruction Set Architectures (ISA) in existence, all share a set of core properties which have been tailored to their particular applications. An abstract model may capture these generic properties and be subsequently refined to a particular machine, providing a reusable template for development of formally proven ISAs: this is a task to which the EventB [16,18] notation is well suited. This paper describes a project to use the RODIN tool-set [24] to perform such a process, ultimately producing the MIDAS (Microprocessor Instruction and Data Abstraction System) VM, capable of running binary executables compiled from high-level languages such as C [9]. The abstract model is incrementally refined to a model capable of automatic translation to C source code, and compilation for a hardware platform using a standard compiler. A second C compiler, targeted to the VM itself, allows C programs to be executed on it.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Stephen Wright
    • 1
  1. 1.Department of Computer ScienceUniversity of BristolUK

Personalised recommendations