skip to main content
10.1145/73141.74831acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free Access

Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language

Published:21 June 1989Publication History

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.

References

  1. ASU86.Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, MA, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bob88.D.G. Bobrow et al. Common Lisp Object System Specification X3J13 Document 88-002R. In SiGPLAN Notices 23(9), September, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. Cur89.Pavel Curtis. Type inferencing in Smalltalk. Personal communication, March, 1989.Google ScholarGoogle Scholar
  8. Deu83.L. Peter Deutsch. The Dorado SmaUtalk-80 Implementation. Hardware Architecture's Impact on Software Architecture. In {Kra83}, pp. 113-126.Google ScholarGoogle Scholar
  9. Deu88.L. Peter Deutsch. Richards benchmark. Perserial communication, October, t988.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle Scholar
  12. GR83.Adele Goldberg and David Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Hen88.John Hennessy. Stanford integer benchmarks. Personal communication, June, 1988.Google ScholarGoogle Scholar
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. Kra83.Glenn Krasner, editor. Smalltalk-80: Bits of History, Words of Advice. Addison-Wesley, Reading, MA, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. Lee88.Elgin Lee. Object Storage and Inheritance for SELF, a Prototype-Based Object. Oriented Programming Language. Engineer's thesis, Stanford University, 1988.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. McC83.Kim McCall. The Smalltalk-80 Benchmarks. In {Kra83}, pp. 153-174.Google ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. PP88.ParcPlace Newsletter, Winter 1988, Vol. 1, No. 2. ParcPlace Systems, Pale Alto, CA, 1988.Google ScholarGoogle Scholar
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. Ste76.Guy Lewis Steele Jr. LAMBDA: The Ultimate Declarative. AI Memo 379, Mr/' Artificial InteUigence Laboratory, November, 1976.Google ScholarGoogle Scholar
  27. SS76.Guy Lewis Steele Jr. and Gerald Jay Sussman. LAMBDA: The Ultimate Imperative. Ai Memo 353, MIT Artificial Intelligence Laboratory, March, 1976.Google ScholarGoogle Scholar
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. Str86.Bjame Stroustmp. The C++ Programming Language. Addison-Wesley, Reading, MA, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Suz81.N. Suzuki. lnfemg Types in Smalltalk. In 8th Annual ACM Symposium on Principles of Prograrnming Languages, pp. 187-199, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          PLDI '89: Proceedings of the ACM SIGPLAN 1989 conference on Programming language design and implementation
          June 1989
          355 pages
          ISBN:089791306X
          DOI:10.1145/73141
          • cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 24, Issue 7
            Proceedings of the SIGPLAN '89 symposium on Interpreters and interpretive techniques
            July 1989
            355 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/74818
            Issue’s Table of Contents

          Copyright © 1989 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 21 June 1989

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          Overall Acceptance Rate406of2,067submissions,20%

          Upcoming Conference

          PLDI '24

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader