Havm

From LRDE

Revision as of 16:49, 11 September 2013 by Daniela Becker (talk | contribs) (Created page with "---++ Introduction <!-- this text is included in other pages of the Web site. --> <!-- HAVMINTROSTART --> HAVM is a virtual machine designed to execute simple register based...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

---++ Introduction

HAVM is a virtual machine designed to execute simple register based high level intermediate code. It is based on the intermediate representations ("canonicalized" or not) defined by [[1][Andrew Appel]] in his _[[2][Modern Compiler Implementation]]_ books. It is nevertheless generic enough so that any (student) compiler could target its intermediate language to HAVM's language.

Its features are:

  * two object types, integers and pointers
  * tree-like source language (two way conditional jumps, arbitrarily nested subroutines calls, etc.)
  * threaded source language (one way conditional jumps, etc.)
  * a runtime library comparable to SPIM's
  * a debugging mode displaying the instructions being executed 

<script type="text/javascript" src="http://www.ohloh.net/p/480615/widgets/project_thin_badge.js"></script>

It was written by Robert Anisko as an LRDE member, so that EPITA students could exercise their [[Tiger.WebHome][Tiger]] compiler projects before the final jump to assembly code. It is implemented in Haskell, a pure non strict functional language very well suited for this kind of symbolic processing. HAVM was coined on both Haskell and VM, standing for Virtual Machine.

---++ Downloads

  * Version 0.25: http://www.lrde.epita.fr/~akim/download/havm-0.25.tar.bz2

---++ Git Repository

  * The Git repository is located at =git://git.lrde.epita.fr/havm=.
  * You can browse it online via [[3][GitWeb]].

---++ Documentation

  * See HAVM's documentation at http://www.lrde.epita.fr/~akim/ccmp/doc/havm.html.

---++ Additional Resources

This page is to be completed. In the meanwhile, see http://www.lrde.epita.fr/~akim/download and http://www.lrde.epita.fr/~akim/ccmp/doc/havm.html.

---++ Contact

Send any questions or comments to projects⁠@⁠lrde⁠.⁠org.


-- %roland% - 10 Aug 2013