ACM Home Page
Please provide us with feedback. Feedback
Compiling scheme to JVM bytecode:: a performance study
Full text PdfPdf (299 KB)
Source International Conference on Functional Programming archive
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming table of contents
Pittsburgh, PA, USA
Pages: 259 - 270  
Year of Publication: 2002
ISBN:1-58113-487-8
Also published in ...
Authors
Bernard Paul Serpette  Inria Sophia-Antipolis, Sophia-Antipolis, Cedex, France
Manuel Serrano  Inria Sophia-Antipolis, Sophia-Antipolis, Cedex, France
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 58,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/581478.581503
What is a DOI?

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
 
2
3
4
5
 
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
 
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
 
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


Collaborative Colleagues:
Bernard Paul Serpette: colleagues
Manuel Serrano: colleagues