Smalltalk-80: bits of history, words of advice
Smalltalk-80: bits of history, words of advice
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
TS: an optimizing compiler for smalltalk
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Object-oriented type inference
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Optimizing dynamically-dispatched calls with run-time type feedback
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
A third-generation SELF implementation: reconciling responsiveness with performance
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Precise concrete type inference for object-oriented languages
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Obtaining sequential efficiency for concurrent object-oriented languages
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Profile-guided receiver class prediction
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Compilation and delayed evaluation in APL
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Making Type Inference Practical
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
ECOOP '93 Proceedings of the 7th 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
The Cartesian Product Algorithm: Simple and Precise Type Inference Of Parametric Polymorphism
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Compile-Time Analysis of Object-Oriented Programs
CC '92 Proceedings of the 4th International Conference on Compiler Construction
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Dynamic Incremental Compiler of APL\3000
APL '79 Proceedings of the international conference on APL: part 1
Type Feedback vs. Concrete Type Inference: A Comparison of Optimization Techniques for Object-Oriented Languages
The design and construction of flexible and efficient interactive programming systems
The design and construction of flexible and efficient interactive programming systems
Profile-guided receiver class prediction
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Optimizing ML with run-time code generation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Reconciling responsiveness with performance in pure object-oriented languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Vortex: an optimizing compiler for object-oriented languages
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Simple and effective analysis of statically-typed object-oriented programs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Interprocedural conditional branch elimination
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
The effectiveness of flow analysis for inlining
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Efficient dynamic dispatch without virtual function tables: the SmallEiffel compiler
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Polymorphic splitting: an effective polyvariant flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Load-reuse analysis: design and evaluation
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Profile-guided optimization across process boundaries
DYNAMO '00 Proceedings of the ACM SIGPLAN workshop on Dynamic and adaptive compilation and optimization
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A study of devirtualization techniques for a Java Just-In-Time compiler
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using types to analyze and optimize object-oriented programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A study of exception handling and its dynamic optimization in Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Inferring the Principal Type and the Schema Requirements of an OQL Query
BNCOD 18 Proceedings of the 18th British National Conference on Databases: Advances in Databases
The impact of interprocedural class analysis on optimization
CASCON '95 Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research
Sharpening global static analysis to cope with Java
CASCON '98 Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research
SOLAT - A Simple Object-Oriented Language Analyzing Tool
TOOLS '97 Proceedings of the Tools-23: Technology of Object-Oriented Languages and Systems
A brief history of just-in-time
ACM Computing Surveys (CSUR)
Quantifying and evaluating the space overhead for alternative C++ memory layouts
Software—Practice & Experience
Optimizing ML with run-time code generation
ACM SIGPLAN Notices - Best of PLDI 1979-1999
EDO: Exception-directed optimization in java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Compiler optimization of C++ virtual function calls
COOTS'96 Proceedings of the 2nd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 2
Static type inference for Ruby
Proceedings of the 2009 ACM symposium on Applied Computing
Implementing statically typed object-oriented programming languages
ACM Computing Surveys (CSUR)
The impact of optional type information on jit compilation of dynamically typed languages
Proceedings of the 7th symposium on Dynamic languages
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Selector: a language construct for developing dynamic applications
LCPC'02 Proceedings of the 15th international conference on Languages and Compilers for Parallel Computing
RATA: rapid atomic type analysis by abstract interpretation – application to javascript optimization
CC'10/ETAPS'10 Proceedings of the 19th joint European conference on Theory and Practice of Software, international conference on Compiler Construction
Fast and precise hybrid type inference for JavaScript
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Improved type specialization for dynamic scripting languages
Proceedings of the 9th symposium on Dynamic languages
Hi-index | 0.00 |
Two promising optimization techniques for object-oriented languages are type feedback (profile-based receiver class prediction) and concrete type inference (static analysis). We directly compare the two techniques, evaluating their effectiveness on a suite of 23 SELF programs while keeping other factors constant.Our results show that both systems inline over 95% of all sends and deliver similar overall performance with one exception: SELF's automatic coercion of machine integers to arbitrary-precision integers upon overflow confounds type inference and slows down arithmetic-intensive benchmarks.We discuss several other issues which, given the comparable run-time performance, may influence the choice between type feedback and type inference.