Type inference in the presence of overloading, subtyping and recursive types
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Inductive definitions, semantics and abstract interpretations
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Principal type schemes for functional programs with overloading and subtyping
TAPSOFT '93 Selected papers of the colloquium on Formal approaches of software engineering
Sound polymorphic type inference for objects
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Simplifying subtyping constraints
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Componential set-based analysis
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Minimal typings in atomic subtyping
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Program analysis via graph reachability
ILPS '97 Proceedings of the 1997 international symposium on Logic programming
Interconvertibility of a class of set constraints and context-free-language reachability
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
Type-base flow analysis: from polymorphic subtyping to CFL-reachability
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimal Representations of Polymorphic Types with Subtyping (Extended Abstract)
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
Polymorphic Subtype Inference: Closing the Theory-Practice Gap
TAPSOFT '89 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 2: Advanced Seminar on Foundations of Innovative Software Development II and Colloquium on Current Issues in Programming Languages
SAS '95 Proceedings of the Second International Symposium on Static Analysis
Optimizing Lazy Functional Programs Using Flow Inference
SAS '95 Proceedings of the Second International Symposium on Static Analysis
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Polymorphic versus Monomorphic Flow-Insensitive Points-to Analysis for C
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
Boolean Constraints for Binding-Time Analysis
PADO '01 Proceedings of the Second Symposium on Programs as Data Objects
A Usage Analysis with Bounded Usage Polymorphism and Subtyping
IFL '00 Selected Papers from the 12th International Workshop on Implementation of Functional Languages
Polyvariant flow analysis with higher-ranked polymorphic types and higher-order effect operators
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Automatically refining partial specifications for program verification
FM'11 Proceedings of the 17th international conference on Formal methods
Polymorphism, subtyping, whole program analysis and accurate data types in usage analysis
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Control-flow analysis of functional programs
ACM Computing Surveys (CSUR)
Dual analysis for proving safety and finding bugs
Science of Computer Programming
Automatically refining partial specifications for heap-manipulating programs
Science of Computer Programming
Hi-index | 0.00 |
Many type based program analyses with subtyping, such as flow analysis, are based on inequality constraints over a lattice. When inequality constraints are combined with polymorphism it is often hard to scale the analysis up to large programs. A major source of inefficiency in conventional implementations stems from computing substitution instances of constraints. In this paper we extend the constraint language with constraint abstractions so that instantiation can be expressed directly in the constraint language and we give a cubic-time algorithm for constraint solving. As an application, we illustrate how a flow analysis with flow subtyping, flow polymorphism and flow-polymorphic recursion can be implemented in O(n3) time where n is the size of the explicitly typed program.