ABSTRACT
Dynamically-typed object-oriented languages please programmers, but their lack of static type information penalizes performance. Our new implementation techniques extract static type information from declaration-free programs. Our system compiles several copies of a given procedure, each customized for one receiver type, so that the type of the receiver is bound at compile time. The compiler predicts types that are statically unknown but likely, and inserts run-time type tests to verify its predictions. It splits calls, compiling a copy on each control path, optimized to the specific types on that path. Coupling these new techniques with compile-time message lookup, aggressive procedure inlining, and traditional optimizations has doubled the performance of dynamically-typed object-oriented languages.
- ASU86.Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, MA, 1986. Google ScholarDigital Library
- Atk86.Robert G. Atkinson. Hurricane: An Optimizing Compiler for Smalltalk. In OOPSLA '86 Conference Proceedings, pp. 151-158, Portland, OR, 1986. Published as SIGPLAN Notices 21(12), November, 1986. Google ScholarDigital Library
- BI82.A.H. Boming and D. H. H. Ingatls. A type declaration and inference system for Smalltalk. In Conference Record of the Ninth Annual $ympo. sium on Foundations of Computer Science, pp. 133- 139, 1982. Google ScholarDigital Library
- BMW86.Mark B. Ballard, David Maier, and Allen Wiffs-Brock. QUICKTALK: A SmaUtalk-80 Dialect for Defining Primitive Methods. in OOPSLA '86 Conference Proceedings, pp. 140-150, Portland, OR, 1986. Published as SIGPLAN Notices 21(11), November, 1986. Google ScholarDigital Library
- Bob88.D.G. Bobrow et al. Common Lisp Object System Specification X3J13 Document 88-002R. In SiGPLAN Notices 23(9), September, 1988. Google ScholarDigital Library
- Bor86.A.H. Boming. Classes Versus Prototypes in Object-Oriented Languages. In Proceedings of the ACM/IEEE Fall Joint Computer Conference, pp. 36- 40, Dallas, TX, 1986. Google ScholarDigital Library
- Cur89.Pavel Curtis. Type inferencing in Smalltalk. Personal communication, March, 1989.Google Scholar
- Deu83.L. Peter Deutsch. The Dorado SmaUtalk-80 Implementation. Hardware Architecture's Impact on Software Architecture. In {Kra83}, pp. 113-126.Google Scholar
- Deu88.L. Peter Deutsch. Richards benchmark. Perserial communication, October, t988.Google Scholar
- DS84.L. Peter Deutsch and Allan M. Schiffman. Efficient implementation of the Smalltalk-80 System. In Proceedings of the 1 l th Annual ACM Symposium on the Principles of Programming Languages, pp. 297-302, Salt Lake City, UT, 1984. Google ScholarDigital Library
- Gar88.Robert B. Garner et al. The Scalable Processor Architecture (SPARC). In Proceedings of the Thirty-Second iEEEComputer Society International Conference (Spring CompCon), pp. 278-283, San Francisco, CA, 1988.Google Scholar
- GR83.Adele Goldberg and David Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA, 1983. Google ScholarDigital Library
- Hen88.John Hennessy. Stanford integer benchmarks. Personal communication, June, 1988.Google Scholar
- Joh88.Ralph E. Johnson, Justin O. Graver, and Lawrence W. Zurawski. TS: An Optimizing Compiler for Smalltallc In OOPSLA '~8 Conference Proceedings, pp. 18-26, San Diego, CA, 1988. Published as $IGPLAN Notices 23(21), November, 1988. Google ScholarDigital Library
- Kra83.Glenn Krasner, editor. Smalltalk-80: Bits of History, Words of Advice. Addison-Wesley, Reading, MA, 1983. Google ScholarDigital Library
- Kra86.David Kranz et al. ORBIT: An Optimizing Compiler for Scheme. In SiGPLAN '86 Symposium on Compiler Construction, pp. 219-233, Pale Alto, CA, 1986. Published as SIGPZAN Notices 21(7), July, 1986. Google ScholarDigital Library
- Lee88.Elgin Lee. Object Storage and Inheritance for SELF, a Prototype-Based Object. Oriented Programming Language. Engineer's thesis, Stanford University, 1988.Google Scholar
- Lie86.Henry Lieberman. Using Prototypical Objeets to Implement Shared Behavior in Object-Oriented Systems. In OOPSLA '86 Conference Proceedings, pp. 214-223, Portland, OR, 1986. Published as SIGP. LAN Notices 21(11), November, 1986. Google ScholarDigital Library
- LTP86.Wilf R. LaLonde, Dave A. Thomas, and John R. Pugh. An Exemplar Based Smalltallc In OOPSLA'86 Conference Proceedings, pp. 322-330, Portland, OR, 1986. Published as SIGPLAN Notices 21 (11), November, 1986. Google ScholarDigital Library
- McC83.Kim McCall. The Smalltalk-80 Benchmarks. In {Kra83}, pp. 153-174.Google Scholar
- Mey86.Bertrand Meyer. Oenericity versus Inheritante. In OOPSLA '86 Conference Proceedings, pp. 391-405, Portland, OR, 1986. Published as SIGPLAN Notices 21 (1 }), November, 1986. Google ScholarDigital Library
- Moo86.David A. Moon. Object-Oriented Programruing with Flavors. In OOPSLA '86 Conference Proceedings, pp. 391-405, Portland, OR, 1986. Published as SIGPLAN Notices 21 (11), November, 1986. Google ScholarDigital Library
- PP88.ParcPlace Newsletter, Winter 1988, Vol. 1, No. 2. ParcPlace Systems, Pale Alto, CA, 1988.Google Scholar
- Ros88.John R. Rose. Fast Dispatch Mechanisms for Stock Hardware. In OOPSLA '88 Conference Proceedings, pp. 27-35, San Diego, CA, 1988. Published as SIGPLAN Notices 23(11), November, 1988. Google ScholarDigital Library
- Sch86.Craig Schaffert et al. An Introduction to Trellis/Owl. In OOPSLA '86 Conference Proceedings, pp. 9-16, Portland, OR, 1986. Published as SlG- PLAN Notices 21(11), November, 1986. Google ScholarDigital Library
- Ste76.Guy Lewis Steele Jr. LAMBDA: The Ultimate Declarative. AI Memo 379, Mr/' Artificial InteUigence Laboratory, November, 1976.Google Scholar
- SS76.Guy Lewis Steele Jr. and Gerald Jay Sussman. LAMBDA: The Ultimate Imperative. Ai Memo 353, MIT Artificial Intelligence Laboratory, March, 1976.Google Scholar
- Ste87.Lynn Andrea Stein. Delegation Is Inheritmace. In OOPSLA '87 Conference Proceedings, pp. 138-146, Orlando, FL, 1987. Published as SIGPLAN Notices 22(12), December, 1987. Google ScholarDigital Library
- Str86.Bjame Stroustmp. The C++ Programming Language. Addison-Wesley, Reading, MA, 1986. Google ScholarDigital Library
- Suz81.N. Suzuki. lnfemg Types in Smalltalk. In 8th Annual ACM Symposium on Principles of Prograrnming Languages, pp. 187-199, 1981. Google ScholarDigital Library
- Ung86.David Michael Ungax. The Design and Evaluation of a High-Performance Smalltalk System. Ph.D. dissertation, the University of California at Berkeley, February, 1986. Published by the MIT Press, Cambridge, MA, 1987. Google ScholarDigital Library
- US87.David Ungax and Randall B. Smith. SELF: The Power of Simplicity. In OOPSLA '87 Conference Proceedings, pp. 227-241, Orlando, FL, 1987. Published as SIGPLAN Notices 22(12), December, 1987. Google ScholarDigital Library
- Weg87.Peter Wegrer. Dimensions of Object-Based Language Design. In OOPSLA '87 Conference Proceedings, pp. 168-182, Orlando, FL, 1987. Published as SIGPLAN Notices 22(22), December, 1987. Google ScholarDigital Library
Index Terms
- Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language
Recommendations
Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language
Proceedings of the SIGPLAN '89 symposium on Interpreters and interpretive techniquesDynamically-typed object-oriented languages please programmers, but their lack of static type information penalizes performance. Our new implementation techniques extract static type information from declaration-free programs. Our system compiles ...
Inferable object-oriented typed assembly language
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationA certifying compiler preserves type information through compilation to assembly language programs, producing typed assembly language (TAL) programs that can be verified for safety independently so that the compiler does not need to be trusted. There ...
Inferable object-oriented typed assembly language
PLDI '10A certifying compiler preserves type information through compilation to assembly language programs, producing typed assembly language (TAL) programs that can be verified for safety independently so that the compiler does not need to be trusted. There ...
Comments