|
ABSTRACT
We have added a Java virtual machine (henceforth JVM) bytecode generator to the optimizing Scheme-to-C compiler Bigloo. We named this new compiler BiglooJVM. We have used this new compiler to evaluate how suitable the JVM bytecode is as a target for compiling strict functional languages such as Scheme. In this paper, we focus on the performance issue. We have measured the execution time of many Scheme programs when compiled to C and when compiled to JVM. We found that for each benchmark, at least one of our hardware platforms ran the BiglooJVM version in less than twice the time taken by the Bigloo version. In order to deliver fast programs the generated JVM bytecode must be carefully crafted in order to benefit from the speedup of just-in-time compilers.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Ali-Reza Adl-Tabatabai , Michał Cierniak , Guei-Yuan Lueh , Vishesh M. Parikh , James M. Stichnoth, Fast, effective code generation in a just-in-time Java compiler, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.280-290, June 17-19, 1998, Montreal, Quebec, Canada
|
| |
2
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
 |
3
|
Matthew Arnold , Stephen Fink , David Grove , Michael Hind , Peter F. Sweeney, Adaptive optimization in the Jalapeño JVM, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.47-65, October 2000, Minneapolis, Minnesota, United States
|
 |
4
|
|
 |
5
|
Nick Benton , Andrew Kennedy , George Russell, Compiling standard ML to Java bytecodes, Proceedings of the third ACM SIGPLAN international conference on Functional programming, p.129-140, September 26-29, 1998, Baltimore, Maryland, United States
|
| |
6
|
|
| |
7
|
P. Botner. Kawa: Compiling Scheme to Java. In Lisp users conference, Berkeley, California, USA, November 1998.
|
| |
8
|
|
| |
9
|
M. DePristo. SINTL: A Strongly-Typed Generic Intermediate Language for Scheme. Northwestern University, Computer Science Honors Thesis, 2000.
|
| |
10
|
P. H. Hartel et al. Pseudoknot: a Float-Intensive Benchmark for Functional Compilers. Journal of Functional Programming, 6(4):621--655, 1996.
|
| |
11
|
M. Feeley, J. Miller, G. Rozas, and J. Wilson. Compiling Higher-Order Languages into Fully Tail-Recursive Portable C. Technical Report Rapport technique 1078, Université de Montréal, Département d'informatique et r.o., August 1997.
|
| |
12
|
E. Gagnon and L. Hendren. SableVM: A Research Framework for the Efficient Execution of Java Bytecode. Technical Report 2000-3, McGill University, School of Computer Science, November 2000.
|
| |
13
|
D. Gudeman. Representing Type Information in Dynamically Typed Languages. Technical report, University of Arizona, Departement of Computer Science, Gould-Simpson Building, The University of Arizona, Tucson, AZ 85721, April 1993.
|
| |
14
|
U. Hölzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. PhD thesis, Stanford University, August 1994.
|
 |
15
|
|
| |
16
|
M. Honeyford. Weighing in on Java native compilation. Technical Report developerWorks, IBM, January 2002.
|
| |
17
|
|
| |
18
|
H. Abelson , R. K. Dybvig , C. T. Haynes , G. J. Rozas , N. I. Adams Iv , D. P. Friedman , E. Kohlbecker , G. L. Steele, Jr. , D. H. Bartley , R. Halstead , D. Oxley , G. J. Sussman , G. Brooks , C. Hanson , K. M. Pitman , M. Wand, Revised Report on the Algorithmic Language Scheme, Higher-Order and Symbolic Computation, v.11 n.1, p.7-105, August 1998
[doi> 10.1023/A:1010051815785]
|
| |
19
|
|
 |
20
|
|
| |
21
|
|
| |
22
|
O. Pinali Doederlein. The Java Performance Report -- Part IIA. http://www.javalobby.org/features/jpr, August 2000.
|
 |
23
|
|
| |
24
|
M. Schinz and M. Odersky. Tail call elimination of the Java Virtual Machine. In Proceedings of Babel'01, Florence, Italy, September 2001.
|
| |
25
|
N. Séniak. Théorie et pratique de Sqil: un langage intermédiaire pour la compilation des langages fonctionnels. PhD thesis, Universitée Pierre et Marie Curie (Paris VI), November 1991.
|
 |
26
|
|
| |
27
|
|
 |
28
|
|
| |
29
|
|
 |
30
|
|
| |
31
|
T. Suganuma , T. Ogasawara , M. Takeuchi , T. Yasue , M. Kawahito , K. Ishizaki , H. Komatsu , T. Nakatani, Overview of the IBM Java just-in-time compiler, IBM Systems Journal, v.39 n.1, p.175-193, January 2000
|
| |
32
|
Sun Microsystems. The Java HotSpot Performance Engine, April 1999.
|
 |
33
|
|
| |
34
|
Tolksdorf. Compiling to JVM. http://grunge.cs.tu-berlin.de/-tolk, 2000.
|
| |
35
|
T. VanDrunen, A. Hosking, and J. Palsberg. Reducing loads and stores in stack architectures, 2000.
|
| |
36
|
|
|