Dynamic typing in a statically-typed language
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Global tagging optimization by type inference
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
A type system equivalent to flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
A modular, polyvariant and type-based closure analysis
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Types as abstract interpretations
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From polyvariant flow information to intersection and union types
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Principles of Program Analysis
Principles of Program Analysis
Type Inference with Partial Types
ICALP '88 Proceedings of the 15th International Colloquium on Automata, Languages and Programming
Polyvariance, Polymorphism and Flow Analysis
Selected papers from the 5th LOMAPS Workshop on Analysis and Verification of Multiple-Agent Languages
Polymorphic Types and Widening Operators
WSA '93 Proceedings of the Third International Workshop on Static Analysis
Control-Flow Analysis and Type Systems
SAS '95 Proceedings of the Second International Symposium on Static Analysis
Nordic Journal of Computing
From Flow Logic to static type systems for coordination languages
Science of Computer Programming
From flow logic to static type systems for coordination languages
COORDINATION'08 Proceedings of the 10th international conference on Coordination models and languages
Hi-index | 0.00 |
Control flow analysis is a powerful method for analysing which functions are applied to which arguments. However, many users find the information more understandable if the information is presented in the form of types rather than sets of function abstractions. We therefore show how to translate the result of the control flow analysis into the syntax of types (to be called observed types). To compare our approach with the more traditional approach using type systems (to be called inferred types) we develop the subtyping relations in both approaches; in particular we show that covariant subtyping is the appropriate choice for observed types whereas contravariant subtyping is appropriate choice for inferred types. This serves as a technical underpinning of our main thesis that observed types should merely record how the entity has been used in the program at hand whereas inferred types should indicate how the entity can be used in all possible contexts.