Type systems for programming languages
Handbook of theoretical computer science (vol. B)
Types as abstract interpretations
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The functional approach to programming
The functional approach to programming
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
An Experiment in Type Inference and Verification by Abstract Interpretation
VMCAI '02 Revised Papers from the Third International Workshop on Verification, Model Checking, and Abstract Interpretation
Polymorphic Typing by Abstract Interpretation
Proceedings of the 12th Conference on Foundations of Software Technology and Theoretical Computer Science
Polymorphic Types and Widening Operators
WSA '93 Proceedings of the Third International Workshop on Static Analysis
Polymorphic Type Schemes and Recursive Definitions
Proceedings of the 6th Colloquium on International Symposium on Programming
Rank 2 Intersection for Recursive Definitions
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
On Polymorphic Recursion, Type Systems, and Abstract Interpretation
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Rank-2 intersection and polymorphic recursion
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Rank 2 Intersection for Recursive Definitions
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
Hi-index | 0.01 |
In a previous paper [7], we have developed a type abstract interpreter which was shown to be more precise then the classical ML type inference algorithm in inferring monomorphic types, represented as Herbrand terms with variables 脿 la Hindley. In order to deal with recursive functions, we introduce a new abstract fixpoint operator which generalizes the one used in the Hindley and ML inference algorithms by performing k fixpoint computation steps (as done in [11] in the case of polymorphic types). Our abstract interpreter has many interesting properties. It is possible to reconstruct the ML result by just one fixpoint computation step (k = 1) and to show that for every k 1, either we reach the least fixpoint (which is in general more precise than the ML result), or we get exactly the same result as ML. One important result is that our type interpreter turns out to correspond to a type system, which lies between monomorphism and polymorphic recursion.