A practical soft type system for Scheme
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Shape analysis as a generalized path problem
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A practical soft type system for scheme
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interconvertbility of set constraints and context-free language reachability
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Undecidability of context-sensitive data-dependence analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
A cost-effective estimation of uncaught exceptions in standard ML programs
Theoretical Computer Science
A 3-Part Type Inference Engine
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
A versatile constraint-based type inference system
Nordic Journal of Computing
A Static Bug Detector for Uninitialized Field References in Java Programs
IEICE - Transactions on Information and Systems
Hi-index | 0.00 |
Reasoning about a program by treating program variables as sets of "values" leads to a simple, accurate and intuitively appealing notion of program approximation. This paper presents such an approach for the compile-time analysis of ML programs. To develop the core ideas of the analysis, we consider a simple untyped call-by-value functional language. Starting with an operational semantics for the language, we develop an approximate "set based" operational semantics which formalizes the intuition of treating program variables as sets. The key 3 result of the paper is an O(n ) algorithm for computing the set based approximation of a program. We then show how the analysis can be extended in a natural way to deal with arrays, arithmetic, exceptions and continuations. We also briefly describe results from an implementation of this analysis for ML programs.