Download:
by W. F. Wong, Department Of Computer Science
http://www.comp.nus.edu.sg/~wongwf/papers/cl.pdf
Add To MetaCart
Abstract:
It is well known that dynamic typing in languages like Lisp is costly in terms of performance. Besides the cost of tag checking, the other major source of ine ciency comes from the need to place and retrieve data from dynamically allocated objects, i.e. boxing and unboxing. This makes it unacceptable in general to write numerical code in Lisp. Such programs involve \tight " loops in which boxing, unboxing and tag checking will dominate the computation time. With advances in the compilation of Lisp programs, it has been suggested that type checking and inference can be used to alleviate the problem. In this paper we shall examine a sub-problem, namely using type inference to aid compilation of numerical intensive Lispcode. Atype inference algorithm for oating point operations will be described. This has been implemented in a Scheme compiler. Implementation issues and performance results on fairly large numerical code will also be reported. The results suggest that signi cant performance 1 gains can be obtained. It is our hope that as an augmentation to other general type inferencing scheme, it will contribute towards the realization of highly optimizing Scheme compilers.
Citations
|
719
|
Splash: Stanford parallel applications for shared-memory
– Singh, Weber, et al.
- 1992
|
|
208
|
ORBIT: An optimizing compiler for Scheme
– Kranz, Kelsey, et al.
- 1986
|
|
198
|
Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language
– Chambers, Ungar
- 1989
|
|
94
|
A practical soft type system for scheme
– Wright, Cartwright
- 1994
|
|
54
|
Global tagging optimization by type inference
– Henglein
- 1992
|
|
54
|
Polymorphic type inference and assignment
– Leroy, Weis
- 1991
|
|
49
|
Flow-directed Inlining
– Jagannathan, Wright
- 1996
|
|
29
|
A scheme for the automatic inference of variable types
– KAPLAN, ULLMAN
- 1980
|
|
28
|
Storage use analysis and its applications
– Serrano, Feeley
- 1996
|
|
21
|
A compilation strategy for numerical programs based on partial evaluation
– Berlin
- 1989
|
|
10
|
TICL---A type inference system for Common Lisp
– Ma, Kessler
- 1990
|
|
9
|
Binding time optimization in programming languages: Some thoughts toward the design of an ideal language
– Jones, Muchnick
- 1976
|
|
6
|
The Implementation of Tags and Run-Time Type Checking
– Steenkiste
- 1991
|
|
2
|
SCHEME->C: A Portable Scheme-to-C
– Bartlett
- 1989
|
|
2
|
Type Determination for very high level languages', Courant Inst. of Math. Sc. TR NSO-3. 1974. constants: bAh�T�E�Gi where is an integer constant Floating point constants: bAh�T�E�Gi where is an oating point constant Other constants: Variables: bAhx�T�E�G
– Tenebaum
- 1974
|
|
1
|
In nitary control ow analysis: a collecting semantics for closure analysis
– Nielson, Nielson
- 1997
|
|
1
|
Data- ow analysis and type recovery in Scheme
– Shivers
- 1991
|
|
1
|
Compilation issues in the Screme implementation for the 88000
– Pleban
- 1991
|
|
1
|
A Practical Approach toType Inference for EuLisp
– Kind, Friedrich
- 1993
|