Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
An accidental translator from Smalltalk to ANSI C
ACM SIGPLAN OOPS Messenger
Strongtalk: typechecking Smalltalk in a production environment
OOPSLA '93 Proceedings of the eighth annual conference 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
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Type inference of SELF: analysis of objects with dynamic and multiple inheritance
Software—Practice & Experience
Back to the future: the story of Squeak, a practical Smalltalk written in itself
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Information Retrieval
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Why Programs Fail: A Guide to Systematic Debugging
Why Programs Fail: A Guide to Systematic Debugging
Maintaining mental models: a study of developer work habits
Proceedings of the 28th international conference on Software engineering
PyPy's approach to virtual machine construction
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Practical, pluggable types for a dynamic language
Computer Languages, Systems and Structures
Exploiting Runtime Information in the IDE
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Static type inference for Ruby
Proceedings of the 2009 ACM symposium on Applied Computing
Profile-guided static typing for dynamic scripting languages
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Fast type reconstruction for dynamically typed programming languages
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Electronic Notes in Theoretical Computer Science (ENTCS)
Enhancing static source code search with dynamic data
Proceedings of 2010 ICSE Workshop on Search-driven Development: Users, Infrastructure, Tools and Evaluation
The SOM family: virtual machines for teaching and research
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
Hi-index | 0.00 |
Dynamically typed programming languages are powerful tools for rapid software development. However, there are scenarios that would benefit from actual type information being available---e. g., code generation and optimisation as well as program comprehension. Since code written in such languages usually makes little or no explicit assumptions about types, type inference is not particularly well suited to obtain the desired information. This paper introduces type harvesting, a practical approach to obtaining type information. It is based on stepwise code execution of the code in question, closely observing the types of entities in question. Type harvesting allows for exploiting unit tests to automatically obtain type information for a code base. The approach has been implemented in Squeak/Smalltalk. Its evaluation, using several complex applications, shows that type harvesting yields excellent results with high precision.