Skip to main content

Optimizing Smalltalk by selector code indexing can be practical

  • Conference paper
  • First Online:
ECOOP'97 — Object-Oriented Programming (ECOOP 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1241))

Included in the following conference series:

  • 171 Accesses

Abstract

Selector code indexing is a simple and effective way of optimizing method lookups. However, it has not been considered practically applicable in Smalltalk, because the space overhead is prohibitive. We propose a new technique called “dispatch caches indexed by selector codes” (CISCO), which maintains a small number of dispatch tables indexed by a small number of selector codes. The space overhead is thus a small constant, however many classes and selectors there are in a system, while it almost maintains the runtime efficiency of selector code indexing. The simulation results show that, when carefully applied, optimization by CISCO is very promising, with cache miss ratios of less than 1.0% in real programs.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Pascal Andre and Jean-Claude Royer. Optimizing Method Search with Lookup Caches and Incremental Coloring. OOPSLA '92 Conference Proceedings pp. 110–126.

    Google Scholar 

  2. Craig Chambers and David Ungar. Customization: Optimizing Compiler Technology for SELF, a Dynamically-Typed Object-Oriented Programming Language. Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation pp. 146–180.

    Google Scholar 

  3. Craig Chambers, Jeffrey Dean, and David Grove. A Framework for Selective Recompilation in the Presence of Complex Intermodule Dependencies. 17th International Conference on Software Engineering 1995.

    Google Scholar 

  4. Jeffrey Dean, Craig Chambers, and David Grove. Selective Specialization for Object-Oriented Languages. Proceedings of the SIGPLAN '95 Conference on Programming Language Design and Implementation pp. 93–102.

    Google Scholar 

  5. Jeffrey Dean, David Grove, and Craig Chambers. Optimization of Object-Oriented Programs Using Static Hierarchy Analysis. Proceeding of ECOOP '95

    Google Scholar 

  6. L. Peter Deutsch and Alan Schiffman. Efficient Implementation of the Smalltalk-80 System. Proceeding of the 11th Symposium on the Principles of Programming Languages 1984, pp. 297–302.

    Google Scholar 

  7. Karel Driesen. Selector Table Indexing & Sparse Arrays. OOPSLA '93 Conference Proceedings pp. 259–270.

    Google Scholar 

  8. Karel Driesen and Urs Hölzle. Minimizing Row Displacement Dispatch Tables. OOPSLA '95 Conference Proceedings pp. 141–155.

    Google Scholar 

  9. R. Dixon, T. McKee, P. Schweizer, and M. Vaughan. A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance. OOPSLA '89 Conference Proceedings pp. 211–214.

    Google Scholar 

  10. Patrick H. Dussud. TICLOS: An Implementation of CLOS for the Explore Family. OOPSLA '89 Conference Proceedings pp. 215–219.

    Google Scholar 

  11. Adele Goldberg and David Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, 1983.

    Google Scholar 

  12. David Grove, Jeffrey Dean, Charles Garrett, and Craig Chambers. Profile-Guided Receiver Class Prediction. OOPSLA '95 Conference Proceedings pp. 107–122.

    Google Scholar 

  13. Urs Hölzle, Craig Chambers, and David Ungar. Optimizing Dynamically Typed Object-Oriented languages With Polymorphic Inline Caches. ECOOP '91 Conference Proceedings

    Google Scholar 

  14. Urs Hölzle, Craig Chambers, and David Ungar. Debugging Optimized Code with Dynamic Deoptimization. Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation pp. 32–43.

    Google Scholar 

  15. Urs Hölzle and David Ungar. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. Proceedings of the SIGPLAN '94 Conference on Programming Language Design and Implementation pp. 146–180.

    Google Scholar 

  16. Next. Concepts: Objective-C Release 3.1. Next Computer Inc., 1993.

    Google Scholar 

  17. Ted Kaehler. Apple Research Labs Releases Prototype of “Squeak”. http://www.research.apple.com/research/proj/Learning-.Concepts/squeak/intro.html

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hiroaki Nakamura .

Editor information

Mehmet Akşit Satoshi Matsuoka

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Onodera, T., Nakamura, H. (1997). Optimizing Smalltalk by selector code indexing can be practical. In: Akşit, M., Matsuoka, S. (eds) ECOOP'97 — Object-Oriented Programming. ECOOP 1997. Lecture Notes in Computer Science, vol 1241. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053384

Download citation

  • DOI: https://doi.org/10.1007/BFb0053384

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63089-0

  • Online ISBN: 978-3-540-69127-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics