A Haskell to Java Virtual Machine code compiler
For some time now, we have been interested in using Haskell to program inexpensive embedded processors, such as those in SUN's new Java family. This paper describes our first attempt to produce a Haskell to Java Virtual Machine code compiler, based on a mapping between the G-machine and the Java Virtual Machine. Although this mapping looks good, it is not perfect, and our first results suggest that the compiled Java Virtual Machine code may be rather larger and slower than one might hope.
KeywordsVirtual Machine Garbage Collection Reduction Rule Graph Node Java Virtual Machine
Unable to display preview. Download preview PDF.
- L. Augustsson and T. Johnsson. Parallel Graph Reduction with the 〈ν,g〉-machine. In Proceedings of the 1989 Conference on Functional Programming Languages and Computer Architecture, pages 202–213. ACM Press, 1989.Google Scholar
- S. L. Peyton Jones. Implementing Lazy Functional Languages on Stock Hardware: the Spineless Tagless G-machine. Journal of Functional Programming, pages 127–202, April 1992.Google Scholar
- T. Lindholm and F. Yellin. The Java Virtual Machine. Addison-Wesley, September 1996.Google Scholar
- M. Odersky and P. Wadler. Pizza into Java: Translating Theory into Practice. In Proceedings of the 1997 ACM Symposium on the Principles of Programming Languages, pages 146–149, January 1997.Google Scholar
- S. L. Peyton Jones. The Implementation of Functional Programming Languages. Prentice-Hall, 1987.Google Scholar
- G. L. Steele. Rabbit: A Compiler for Scheme. Technical Report AI-TR-474, MIT Laboratory for Computer Science, 1978.Google Scholar
- SUN Microsystems Inc. PicoJava I Microprocessor Core Architecture. Technical Report WPR-0014-01, SUN Microsystems, 1997.Google Scholar
- D. Wakeling. A Throw-away Compiler for a Lazy Functional Language. In M. Takeichi and T. Ida, editors, Fuji International Workshop on Functional and Logic Programming, pages 287–300. World Scientific, July 1995.Google Scholar