Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
AMD Inc. 28-Bit SSE5 Instruction Set (2007)
Audsely, N.: Portable Code in Future Avionic Systems, IEE Colloquium on Real-Time Systems (Digest No. 1998/306) (1998)
Beer, I., Ben-David, S.: RuleBase: Model checking at IBM. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254. Springer, Heidelberg (1997)
Butler, M.: RODIN Deliverable D16 Prototype Plug-in Tools (2006), http://rodin.cs.ncl.ac.uk
Caset, L.: Formal Development of an Embedded Verifier for Java Card Byte Code. In: International Conference on Dependable Systems and Networks (2002)
Evans, N., Butler, M.: A Proposal for Records in Event-B Formal Methods 2006 (2006)
Hennessy, J., Patterson, D.: Computer Architecture, A Quantitive Approach. Morgan Kaufmann, San Francisco (2003)
Hitachi Ltd. SH7707 Hardware Manual (1998)
Kernighan, B., Ritchie, D.: The C Programming Language. Prentice Hall, Englewood Cliffs (1988)
Lapsley, P., Bier, J., Shoham, A., Lee, E.: DSP Processor Fundamentals. IEEE Press, Los Alamitos (1997)
Lee, E.: Programmable DSP Processors part I and II. IEEE ASSP Mag. (October 1988–January 1989)
Leuschel, M., Butler, M.: ProB: A Model Checker for B. In: FME 2003, SpringerLink (2003)
Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn (1999)
Lowry, H., Mitchell, B.: Mission computer replacement prototype for Special Operations Forces aircraft an application of commercial technology to avionics. In: Proceedings of The 19th Digital Avionics Systems Conference (2000)
Luke, J., Haldeman, D.: Replacement Strategy for Aging Avionics Computers. IEEE Aerospace and Electronic Systems Magazine 14(3) (1999)
Metayer, C., Abrial, J.-R., Voisin, L.: RODIN Deliverable 3.2 Event-B Language (2005), http://rodin.cs.ncl.ac.uk
Moore, J.: A Grand Challenge Proposal for Formal Methods A Verified Stack. In: Formal Methods at the Crossroads From Panacea to Foundational Support, SpringerLink (2003)
Schneider, S.: The B-Method An Introduction. Palgrave (2001)
Shavor, S., D’Anjou, J., Fairbrother, S.: The Java Developer’s Guide to Eclipse. Addison-Wesley, Reading (2003)
Sherridan, F.: Practical Testing of a C99 Compiler Using Output Comparison. Software: Practical and Experience 37(14) (2007)
Stallman, R.: Using and Porting the GNU Compiler Collection, Free Software Foundation (2001)
Stark, R., Schmid, J., Borger, E.: Java and the Java Virtual Machine. Springer, Heidelberg (2001)
Utting, M., Legeard, B.: Practical Model-Based Testing – A Tools Approach. Morgan Kaufmann, San Francisco (2007)
Voisin, L.: A Description of the RODIN Prototype (2006), http://rodin.cs.ncl.ac.uk
Wright, S.: MIDAS Design Document CSTR-06-014, Bristol University (2008), http://www.cs.bris.ac.uk/Publications/Papers/2000543.pdf
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
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. https://doi.org/10.1007/978-3-540-87603-8_21
Download citation
DOI: https://doi.org/10.1007/978-3-540-87603-8_21
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-87602-1
Online ISBN: 978-3-540-87603-8
eBook Packages: Computer ScienceComputer Science (R0)