Font Size: a A A

The Design And Implementation Of A Virtual Machine Based On Functional Programming

Posted on:2015-09-20Degree:MasterType:Thesis
Country:ChinaCandidate:Z W MaoFull Text:PDF
GTID:2308330452956827Subject:Software engineering
Abstract/Summary:PDF Full Text Request
From the1960s, many researchers have focused on the area of virtual machine andthe virtualization technology. While the technology of chip production is growing fast,there are more and more embedded devices coming out. But due to the closure ofhardware itself, it is very hard for developers to watch or capture the internal status oftheir devices. However, the virtualization technology would bring us a great convenience.Thought the virtualization, we can run different types of devices on a single PC which isbased on the Intel x86architecture. With the help of virtual machine, the cost of debugand verify on a specific hardware device is highly reduced. And one can even get rid ofthe dependency of real world hardware, but just using a virtual machine for development.Virtual machine itself is a kind of software product. The design and development of avirtual machine should also follow the steps of software engineering. From requirementsanalysis to feature design and implementation, and finally testing. Considering the highcoupling of devices, the certainty of hardware logic and the unknowable of I/O devices,virtual machine is spited into three parts, logic device, storage device and input/outputdevice. To design an easy-development and easy-debug virtual machine model, functionalprogramming model is introduced with the monad structure. The design is based on the8-bit NES system, using monad as its foundation. And implement the each part of thevirtual machine using Haskell, a functional programming language. The testing with manytest cases ensures the reliability and correctness of the virtual machine. And finally runsthe8-bit virtual machine on an Intel x86PC.In the real world, developers only need to change some specific part of the virtualmachine on some demand to fit their own requirements. This would help developers tobuild a robust virtual machine environment quickly and give them more convenience.
Keywords/Search Tags:Virtual machine, Simulator, Functional programming, Haskell
PDF Full Text Request
Related items