ACM Home Page
Please provide us with feedback. Feedback
Dynamic native optimization of interpreters
Full text PdfPdf (150 KB)
Source Interpreters, Virtual Machines And Emulators archive
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators table of contents
San Diego, California
Pages: 50 - 57  
Year of Publication: 2003
ISBN:1-58113-655-2
Authors
Gregory T. Sullivan  Massachusetts Institute of Technology, Cambridge, MA
Derek L. Bruening  Massachusetts Institute of Technology, Cambridge, MA
Iris Baron  Massachusetts Institute of Technology, Cambridge, MA
Timothy Garnett  Massachusetts Institute of Technology, Cambridge, MA
Saman Amarasinghe  Massachusetts Institute of Technology, Cambridge, MA
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 50,   Citation Count: 11
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/858570.858576
What is a DOI?

ABSTRACT

For domain specific languages, "scripting languages", dynamic languages, and for virtual machine-based languages, the most straightforward implementation strategy is to write an interpreter. A simple interpreter consists of a loop that fetches the next bytecode, dispatches to the routine handling that bytecode, then loops. There are many ways to improve upon this simple mechanism, but as long as the execution of the program is driven by a representation of the program other than as a stream of native instructions, there will be some "interpretive overhead".There is a long history of approaches to removing interpretive overhead from programming language implementations. In practice, what often happens is that, once an interpreted language becomes popular, pressure builds to improve performance until eventually a project is undertaken to implement a native Just In Time (JIT) compiler for the language. Implementing a JIT is usually a large effort, affects a significant part of the existing language implementation, and adds a significant amount of code and complexity to the overall code base.In this paper, we present an innovative approach that dynamically removes much of the interpreted overhead from language implementations, with minimal instrumentation of the original interpreter. While it does not give the performance improvements of hand-crafted native compilers, our system provides an appealing point on the language implementation spectrum.


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
D. Bruening, E. Duesterwald, and S. Amarasinghe. Design and implementation of a dynamic optimization framework for Windows. In 4th ACM Workshop on Feedback-Directed and Dynamic Optimization (FDDO-4), Dec. 2001.
 
6
 
7
W.-K. Chen, S. Lerner, R. Chaiken, and D. M. Gillies. Mojo: A dynamic optimization system. In 3rd ACM Workshop on Feedback-Directed and Dynamic Optimization (FDDO-3), Dec. 2000.
 
8
9
 
10
11
 
12
D. Deaver, R. Gorton, and N. Rubin. Wiggins/Restone: An on-line program specializer. In Proceedings of Hot Chips 11, Aug. 1999.
13
14
15
 
16
E. Feigin. A Case for Automatic Run-Time Code Optimization. Senior thesis, Harvard College, Division of Engineering and Applied Sciences, Apr. 1999.
17
 
18
J. Hollingsworth, B. Miller, and J. Cargille. Dynamic program instrumentation for scalable performance tools. In Proceedings of the 1994 Scalable High-Performance Computing Conference, May 1994.
 
19
U. Hölzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. PhD thesis, Stanford University, 1994.
 
20
The Java HotSpot performance engine architecture.
 
21
 
22
A. Klaiber. The technology behind Crusoe processors. Transmeta Corporation, Jan. 2000.
 
23
C. Krintz, D. Grove, V. Sarkar, and B. Calder. Reducing the overhead of dynamic compilation. Software: Practice and Experience, 31(8), Mar. 2001.
24
 
25
M. Leone and R. K. Dybvig. Dynamo: A staged compiler architecture for dynamic program optimization. Technical Report 490, Department of Computer Science, Indiana University, Sept. 1997.
 
26
 
27
C. H. Moore and G. C. Leach. Forth --- a language for interactive computing. Technical report, Mohasco Industries, Inc., Amsterdam, NY, 1970.
 
28
29
 
30
A. Robinson. Why dynamic translation? Transitive Technologies Ltd., May 2001.
 
31
 
32
A. Srivastava, A. Edwards, and H. Vo. Vulcan: Binary transformation in a distributed environment. Technical Report MSR-TR-2001-50, Microsoft Research, Apr. 2001.
33

CITED BY  11

Collaborative Colleagues:
Gregory T. Sullivan: colleagues
Derek L. Bruening: colleagues
Iris Baron: colleagues
Timothy Garnett: colleagues
Saman Amarasinghe: colleagues