You are here:
(27 Nov 2007,
---++++ [[Students.NielsVanDerVelden][Niels van der Velden]] and Nuno Constantino Castro ---++ Assignment description Implementation of the LVM (Lazy Virtual Machine, as a backend for Helium as well as UHC) in Java. ---++ LVM project log ---++++ Topics done: * 26/10 * Instalation of Java and Helium in our machines. * Basic understanding how things work. * Reading chapter 6 of Daan's thesis. * 27/10 * Finish reading chapter 6 of Daan's thesis. * Starting to implement the LVM in Java. Check out our repository. * 28/10 * Decided upon a design for the interpreter * begin implementing the design * 29/10 til 31/10 * continue with implementing * added some instructions (see below), but won't compile because the main machine is still being developed * apointment being scheduled with Daan ---++++ First conclusions: * In general lines, LVM is a virtual machine similar to JVM, defining an instruction set and file format, suited to execute non-strict languages. * Helium is a functional programming language and a compiler designing especially for learning Haskell. The language is a subset of Haskell. The compiler translates the source language into an enriched lambda calculus, which is translated into LVM lambda calculus and then mapped into LVM instructions, which are executed. Our job is to implement this LVM in Java, as said. ---++++ First problems * The .lvm files produced by the Helium compiler are binary. We can't find a way in the compiler to produce text .lvm files. These are needed because .lvm files will be the "kind of" input to our Java implementation. ---++++ Instructions developed * ==Enter== - Which enters any kind of value that resides in the top of the stack (still only defined to work on some cases) * ==PushCode(f)== - Which pushes a pointer to the top level value (top of the stack) * ==PushVar(ofs)== - Which pushes * ==Slide(n,m)== - Which slides out of the stack unused values * ==ArgChk(n)== - Which checks the number of arguments that reside in the stack ---++ Repository [[https://svn.cs.uu.nl:12443/repos/JVM_JAVA/][Our repository URL]] ---++ Literature * Daan Leijen. <nop>PhD Thesis, __The λ Abroad – A Functional Approach to Software Components__, November 2003. -- [[Students.NielsVanDerVelden][Niels van der Velden]] -- Nuno Jose Constantino Castro - 31 Oct 2004
ore topic actions
Topic revision: r5 - 27 Nov 2007,
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding UUCS?