CommonLoops: merging Lisp and object-oriented programming
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lisp and Symbolic Computation
Lisp and Symbolic Computation
Making pure object-oriented languages practical
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Object-oriented type inference
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Multi-way versus one-way constraints in user interfaces: experience with the DeltaBlue algorithm
Software—Practice & Experience
Optimizing dynamically-dispatched calls with run-time type feedback
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
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
A fast algorithm for computing longest common subsequences
Communications of the ACM
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Making Type Inference Practical
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Object-Oriented Multi-Methods in Cecil
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Compile-Time Analysis of Object-Oriented Programs
CC '92 Proceedings of the 4th International Conference on Compiler Construction
Type checking and type inference for object-oriented programming languages
Type checking and type inference for object-oriented programming languages
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Vortex: an optimizing compiler for object-oriented languages
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Automatic inheritance hierarchy restructuring and method refactoring
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Compiler technology for object-oriented languages
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
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
Call graph construction in object-oriented languages
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
From polyvariant flow information to intersection and union types
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Fast interprocedural class analysis
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient multiple and predicated dispatching
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Practical virtual method call resolution for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Incrementalized pointer and escape analysis
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Complexity of Points-To Analysis of Java in the Presence of Exceptions
IEEE Transactions on Software Engineering
Extending and evaluating flow-insenstitive and context-insensitive points-to analyses for Java
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
A framework for call graph construction algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
Functioning without closure: type-safe customized function representations for standard ML
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Lisaac: the power of simplicity at work for operating system
CRPIT '02 Proceedings of the Fortieth International Conference on Tools Pacific: Objects for internet, mobile and embedded applications
Parameterized object sensitivity for points-to and side-effect analyses for Java
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Access rights analysis for Java
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Interprocedural compatibility analysis for static object preallocation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Polyvariant Flow Analysis with Constrained Types
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Faithful Translations between Polyvariant Flows and Polymorphic Types
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Precise Constraint-Based Type Inference for Java
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Modular Control Flow Analysis for Libraries
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
Program Representation Size in an Intermediate Language with Intersection and Union Types
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
A Framework for Persistence-Enabled Optimization of Java Object Stores
POS-9 Revised Papers from the 9th International Workshop on Persistent Object Systems
Compiler-Cooperative Memory Management in Java
PSI '02 Revised Papers from the 4th International Andrei Ershov Memorial Conference on Perspectives of System Informatics: Akademgorodok, Novosibirsk, Russia
Fragment class analysis for testing of polymorphism in Java software
Proceedings of the 25th International Conference on Software Engineering
The impact of interprocedural class analysis on optimization
CASCON '95 Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research
A comparison of algorithms for interprocedural class analysis
CASCON '96 Proceedings of the 1996 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
Incremental Call Graph Reanalysis for Object-Oriented Software Maintenance
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
A calculus with polymorphic and polyvariant flow types
Journal of Functional Programming
From Polyvariant flow information to intersection and union types
Journal of Functional Programming
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Fragment Class Analysis for Testing of Polymorphism in Java Software
IEEE Transactions on Software Engineering
Alias analysis in Java with reference-set representation for high-performance computing
International Journal of Parallel Programming
Validating structural properties of nested objects
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Converting Java classes to use generics
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Converting java programs to use generic libraries
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Parameterized object sensitivity for points-to analysis for Java
ACM Transactions on Software Engineering and Methodology (TOSEM)
Dynamic inference of abstract types
Proceedings of the 2006 international symposium on Software testing and analysis
Dynamic data polyvariance using source-tagged classes
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Improving flow analyses via ΓCFA: abstract garbage collection and counting
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A flow-based approach for variant parametric types
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Static analysis for dynamic coupling measures
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
Logic-flow analysis of higher-order programs
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Precise static type analysis for object oriented programs
ACM SIGPLAN Notices
Improving usability of information flow security in java
Proceedings of the 2007 workshop on Programming languages and analysis for security
Composition inference for UML class diagrams
Automated Software Engineering
Typeless programming in Java 5.0 with wildcards
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Evaluating the benefits of context-sensitive points-to analysis using a BDD-based implementation
ACM Transactions on Software Engineering and Methodology (TOSEM)
Efficient local type inference
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
A Posteriori Soundness for Non-deterministic Abstract Interpretations
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Exploiting reachability and cardinality in higher-order flow analysis
Journal of Functional Programming
Proceedings of the 11th International Workshop on Formal Techniques for Java-like Programs
Type Inference by Coinductive Logic Programming
Types for Proofs and Programs
Coinductive Type Systems for Object-Oriented Languages
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Fast type reconstruction for dynamically typed programming languages
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Optimal interprocedural program optimization: a new framework and its application
Optimal interprocedural program optimization: a new framework and its application
Static reduction analysis for imperative object oriented languages
LPAR'00 Proceedings of the 7th international conference on Logic for programming and automated reasoning
Dimensions of precision in reference analysis of object-oriented programming languages
CC'03 Proceedings of the 12th international conference on Compiler construction
Precise set sharing analysis for Java-style programs
VMCAI'08 Proceedings of the 9th international conference on Verification, model checking, and abstract interpretation
Complete coinductive subtyping for abstract compilation of object-oriented languages
Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs
Pick your contexts well: understanding object-sensitivity
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
HappyJIT: a tracing JIT compiler for PHP
Proceedings of the 7th symposium on Dynamic languages
Polymorphic type inference for scripting languages with object extensions
Proceedings of the 7th symposium on Dynamic languages
Shape analysis in the absence of pointers and structure
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Efficiently refactoring java applications to use generic libraries
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Interprocedural analysis for privileged code placement and tainted variable detection
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Towards type inference for javascript
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
CFA2: a context-free approach to control-flow analysis
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Context-Sensitive points-to analysis: is it worth it?
CC'06 Proceedings of the 15th international conference on Compiler Construction
Control-flow analysis of functional programs
ACM Computing Surveys (CSUR)
Language design and analyzability: a retrospective
Software—Practice & Experience
Correlation tracking for points-to analysis of javascript
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Program analysis scenarios in rascal
WRLA'12 Proceedings of the 9th international conference on Rewriting Logic and Its Applications
Efficient construction of approximate call graphs for JavaScript IDE services
Proceedings of the 2013 International Conference on Software Engineering
Inference rules for generic code migration of aspect-oriented programs
Science of Computer Programming
Alias analysis for object-oriented programs
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
Concrete types and abstract types are different and serve different purposes. Concrete types, the focus of this paper, are essential to support compilation, application delivery, and debugging in object-oriented environments. Concrete types should not be obtained from explicit type declarations because their presence limits polymorphism unacceptably. This leaves us with type inference. Unfortunately, while polymorphism demands the use of type inference, it has also been the hardest challenge for type inference.We review previous type inference algorithms that analyze code with parametric polymorphism and then present a new one: the cartesian product algorithm. It improves precision and efficiency over previous algorithms and deals directly with inheritance, rather than relying on a preprocessor to expand it away. Last, but not least, it is conceptually simple.The cartesian product algorithm has been used in the Self system since late 1993. We present measurements to document its performance and compare it against several previous algorithms.