Smalltalk-80: bits of history, words of advice
Smalltalk-80: bits of history, words of advice
Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Computer
REKURSIV: object-oriented computer architecture
REKURSIV: object-oriented computer architecture
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Advances in object-oriented software engineering
Advances in object-oriented software engineering
The design and evolution of C++
The design and evolution of C++
Architectural and scheduler support for object-oriented programs
Architectural and scheduler support for object-oriented programs
Vortex: an optimizing compiler for object-oriented languages
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The direct cost of virtual function calls in C++
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Taming Message Passing: Efficient Method Look-Up for Dynamically Typed Languages
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Message Dispatch on Pipelined Processors
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Architecture of SOAR: Smalltalk on a RISC
ISCA '84 Proceedings of the 11th annual international symposium on Computer architecture
ACM SIGPLAN Notices
Counting messages as a proxy for average execution time in pharo
Proceedings of the 25th European conference on Object-oriented programming
Hi-index | 0.00 |
Dynamic type checking and method binding slows pure object-oriented programs such as those written in Smalltalk. Dynamic method lookup is needed to support method overriding and type-method conformance. We have developed a platform independent technique that implements method overriding efficiently for pure object-oriented languages. The technique involves binding non-overridden method calls at compile time. The overridden method calls are also resolved (and bound) statically using simple inferences. Overridden method bindings are corrected dynamically using an Overridden Method Dictionary. Using simulations, we demonstrate that this technique offers 35%-70% reduction in the average method lookup delay over the Berkeley Smalltalk implementation. This technique has very low compile time overhead, memory overhead, does not need specialized hardware and allows shared code pages in concurrent programs. For programs which may be re-used, it is proper to have a follow-up compilation to generate efficient code after the program development is complete.