|
ABSTRACT
Recent advances in compiler technology have demonstrated the benefits of using strongly typed intermediate languages to compile richly typed source languages (e.g., ML). A type-preserving compiler can use types to guide advanced optimizations and to help generate provably secure mobile code. Types, unfortunately, are very hard to represent and manipulate efficiently; a naive implementation can easily add exponential overhead to the compilation and execution of a program. This paper describes our experience with implementing the FLINT typed intermediate language in the SML/NJ production compiler. We observe that a type-preserving compiler will not scale to handle large types unless all of its type-preserving stages preserve the asymptotic time and space usage in representing and manipulating types. We present a series of novel techniques for achieving this property and give empirical evidence of their effectiveness.
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
|
A. W. Appel and D. B. MacQueen. Standard ML of New Jersey. In M. Wirsing, editor, Third lnt'l Syrup. on Prog. Lang. Implementation and Logic Programming, pages 1-13, New York, August 1991. Springer-Verlag.
|
| |
4
|
M. Blume. A compilation manager for SML/NJ. as part of SML/NJ User's Guide, 1995.
|
 |
5
|
|
 |
6
|
|
| |
7
|
N. de Bruijn. A survey of the project AUTOMATH. In To H. B. Curry: Essays on Combinator~l Logic, Larnbda Calculus and Formalism, pages 579-606. Edited by J. P. Seldin and J. R. Hindley, Academic Press, 1980.
|
 |
8
|
Allyn Dimock , Robert Muller , Franklyn Turbak , J. B. Wells, Strongly typed flow-directed representation transformations (extended abstract), Proceedings of the second ACM SIGPLAN international conference on Functional programming, p.11-24, June 09-11, 1997, Amsterdam, The Netherlands
|
 |
9
|
|
 |
10
|
Cormac Flanagan , Amr Sabry , Bruce F. Duba , Matthias Felleisen, The essence of compiling with continuations, Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation, p.237-247, June 21-25, 1993, Albuquerque, New Mexico, United States
|
| |
11
|
|
| |
12
|
J. Y. Girard. Interpretation Fonctionnelle et Elimination des Coupures dans l'Arithmetique d'Ordre Superieur. PhD thesis, University of Paris Vii, 1972.
|
| |
13
|
|
 |
14
|
|
| |
15
|
|
 |
16
|
|
 |
17
|
|
| |
18
|
J.-J. Levy. Optimal reductions in the lambda calculus. In To H. B. Curtal: Essays on Uornbinator~t Logic, Lambda Calculus and Formalism. Edited by J. P. Seldin and J. R. Hindley, Academic Press, 1980.
|
| |
19
|
|
 |
20
|
|
| |
21
|
|
| |
22
|
G. Morrisett. Compiling with Types. PhD thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, December 1995. Tech Report CMU-CS-95-226.
|
 |
23
|
Greg Morrisett , David Walker , Karl Crary , Neal Glew, From system F to typed assembly language, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.85-97, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268954]
|
| |
24
|
|
 |
25
|
|
 |
26
|
|
| |
27
|
S. Peyton Jones. Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine. Journal of Functional Programming, 2(2):127-202, April 1992.
|
| |
28
|
|
 |
29
|
Simon Peyton Jones , Mark Shields , John Launchbury , Andrew Tolmach, Bridging the gulf: a common intermediate language for ML and Haskell, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.49-61, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268951]
|
| |
30
|
S. Peyton Jones and E. Meijer. Henk: a typed intermediate language. In Proc. 1997 A CM SIGPLAN Workshop on Types in Compilation, June 1997.
|
| |
31
|
J. H. Reppy and E. R. Gansner. The eXene library manual. Cornell Univ. Dept. of Computer Science, March 1991.
|
| |
32
|
|
| |
33
|
|
 |
34
|
|
| |
35
|
Z. Shao. An overview of the FLiNT/ML compiler. In Proc. 1997 A CM SIGPLAN Workshop on Types in Compilation, June 1997.
|
| |
36
|
Z. Shao. Typed common intermediate format. In Proc. 1997 USENIX Conference on Domain Specific Languages, pages 89-102, October 1997.
|
 |
37
|
|
 |
38
|
|
 |
39
|
|
| |
40
|
D. Tarditi. Design and Implementation of Code Optimizations for a 7~ype-Directed Compiler for Standard ML. PhD thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, December 1996. Tech Report CMU- CS-97-108.
|
 |
41
|
D. Tarditi , G. Morrisett , P. Cheng , C. Stone , R. Harper , P. Lee, TIL: a type-directed optimizing compiler for ML, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.181-192, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
| |
42
|
M. Torte. Region-based memory management (invited talk). In Proc. 1998 International Workshop on Types in Compilation, March 1998.
|
 |
43
|
|
|