Results 1  10
of
55
Solving systems of set constraints
 In Symposium on Logic in Computer Science
, 1992
"... Systems of set constraints are a natural formalism for many problems in program analysis. Set constraints are also a generalization of tree automata. We present an algorithm for solving systems of set constraints built from free variables, constructors, and the set operations of intersection, uni ..."
Abstract

Cited by 80 (12 self)
 Add to MetaCart
(Show Context)
Systems of set constraints are a natural formalism for many problems in program analysis. Set constraints are also a generalization of tree automata. We present an algorithm for solving systems of set constraints built from free variables, constructors, and the set operations of intersection, union, and complement. Furthermore, we show that all solutions of such systems can be nitely represented. 1 1
On the Complexity Analysis of Static Analyses
 Journal of the ACM
, 1999
"... . This paper argues that for many algorithms, and static analysis ..."
Abstract

Cited by 68 (3 self)
 Add to MetaCart
(Show Context)
. This paper argues that for many algorithms, and static analysis
The complexity of set constraints
, 1993
"... Set constraints are relations between sets of terms. They have been used extensively in various applications in program analysis and type inference. We present several results on the computational complexity of solving systems of set constraints. The systems we study form a natural complexity hierar ..."
Abstract

Cited by 67 (11 self)
 Add to MetaCart
(Show Context)
Set constraints are relations between sets of terms. They have been used extensively in various applications in program analysis and type inference. We present several results on the computational complexity of solving systems of set constraints. The systems we study form a natural complexity hierarchy depending on the form of the constraint language.
Polymorphic versus monomorphic flowinsensitive pointsto analysis for C
 IN STATIC ANALYSIS SYMPOSIUM
, 2000
"... We carry out an experimental analysis for two of the design dimensions of flowinsensitive pointsto analysis for C: polymorphic versus monomorphic and equalitybased versus inclusionbased. Holding other analysis parameters fixed, we measure the precision of the four design points on a suite of be ..."
Abstract

Cited by 66 (3 self)
 Add to MetaCart
We carry out an experimental analysis for two of the design dimensions of flowinsensitive pointsto analysis for C: polymorphic versus monomorphic and equalitybased versus inclusionbased. Holding other analysis parameters fixed, we measure the precision of the four design points on a suite of benchmarks of up to 90,000 abstract syntax tree nodes. Our experiments show that the benefit of polymorphism varies significantly with the underlying monomorphic analysis. For our equalitybased analysis, adding polymorphism greatly increases precision, while for our inclusionbased analysis, adding polymorphism hardly makes any difference. We also gain some insight into the nature of polymorphism in pointsto analysis of C. In particular, we find considerable polymorphism available in function parameters, but little or no polymorphism in function results, and we show how this observation explains our results.
Disunification: a Survey
 Computational Logic: Essays in Honor of Alan
, 1991
"... Solving an equation in an algebra of terms is known as unification. Solving more complex formulas combining equations and involving in particular negation is called disunification. With such a broad definition, many works fall into the scope of disunification. The goal of this paper is to survey the ..."
Abstract

Cited by 55 (8 self)
 Add to MetaCart
(Show Context)
Solving an equation in an algebra of terms is known as unification. Solving more complex formulas combining equations and involving in particular negation is called disunification. With such a broad definition, many works fall into the scope of disunification. The goal of this paper is to survey these works and bring them together in a same framework. R'esum'e On appelle habituellement (algorithme d') unification un algorithme de r'esolution d'une 'equation dans une alg`ebre de termes. La r'esolution de formules plus complexes, comportant en particulier des n'egations, est appel'ee ici disunification. Avec une d'efinition aussi 'etendue, de nombreux travaux peuvent etre consid'er'es comme portant sur la disunification. L'objet de cet article de synth`ese est de rassembler tous ces travaux dans un meme formalisme. Laboratoire de Recherche en Informatique, Bat. 490, Universit'e de ParisSud, 91405 ORSAY cedex, France. Email: comon@lri.lri.fr i Contents 1 Syntax 5 1.1 Basic Defini...
Decidability of Systems of Set Constraints with Negative Constraints
 INFORMATION AND COMPUTATION
, 1994
"... Set constraints are relations between sets of terms. They have been used extensively in various applications in program analysis and type inference. Recently, several algorithms for solving general systems of positive set constraints have appeared. In this paper we consider systems of mixed posi ..."
Abstract

Cited by 52 (10 self)
 Add to MetaCart
(Show Context)
Set constraints are relations between sets of terms. They have been used extensively in various applications in program analysis and type inference. Recently, several algorithms for solving general systems of positive set constraints have appeared. In this paper we consider systems of mixed positive and negative constraints, which are considerably more expressive than positive constraints alone. We show that it is decidable whether a given such system has a solution. The proof involves a reduction to a numbertheoretic decision problem that may be of independent interest.
Conjunto: Constraint Logic Programming with Finite Set Domains
 Logic Programming  Proceedings of the 1994 International Symposium, pages 339358, Massachusetts Institute of Technology
, 1994
"... Combinatorial problems involving sets and relations are currently tackled by integer programming and expressed with vectors or matrices of 01 variables. This is efficient but not flexible and unnatural in problem formulation. Toward a natural programming of combinatorial problems based on sets, gra ..."
Abstract

Cited by 50 (3 self)
 Add to MetaCart
(Show Context)
Combinatorial problems involving sets and relations are currently tackled by integer programming and expressed with vectors or matrices of 01 variables. This is efficient but not flexible and unnatural in problem formulation. Toward a natural programming of combinatorial problems based on sets, graphs or relations, we define a new CLP language with set constraints. This language Conjunto 1 aims at combining the declarative aspect of Prolog with the efficiency of constraint solving techniques. We propose to constrain a set variable to range over finite set domains specified by lower and upper bounds for set inclusion. Conjunto is based on the inclusion and disjointness constraints applied to set expressions which comprise the union, intersection and difference symbols. The main contribution herein is the constraint handler which performs constraint propagation by applying consistency techniques over set constraints. 1 Introduction Various systems of set constraints have been define...
Directional Type Checking of Logic Programs
 In Proceedings of the 1st International Static Analysis Symposium
, 1994
"... We present an algorithm for automatic type checking of logic programs with respect to directional types that describe both the structure of terms and the directionality of predicates. The type checking problem is reduced to a decidable problem on systems of inclusion constraints over set expressio ..."
Abstract

Cited by 44 (1 self)
 Add to MetaCart
We present an algorithm for automatic type checking of logic programs with respect to directional types that describe both the structure of terms and the directionality of predicates. The type checking problem is reduced to a decidable problem on systems of inclusion constraints over set expressions. We discuss some properties of the reduction algorithm, complexity, and present a proof of correctness. 1 1 Introduction Most logic programming languages are untyped. In Prolog, for example, it is considered meaningful to apply any nary predicate to any ntuple of terms. However, it is generally accepted that static type checking has great advantages in detecting programming errors early and for generating efficient executable code. Motivated at least in part by the success of type systems for procedural and functional languages, there is currently considerable interest in finding appropriate definitions of type and welltyping for logic languages. This paper explores the type checki...
A Costeffective Estimation of Uncaught Exceptions in Standard ML Programs
, 2000
"... We present a static analysis that detects potential runtime exceptions that are raised and never handled inside Standard ML(SML) programs. This analysis will predict abrupt termination of SML programs, which is SML's only one "safety hole." Even though SML program's control flow ..."
Abstract

Cited by 33 (9 self)
 Add to MetaCart
We present a static analysis that detects potential runtime exceptions that are raised and never handled inside Standard ML(SML) programs. This analysis will predict abrupt termination of SML programs, which is SML's only one "safety hole." Even though SML program's control flow and exception flow are in general mutually dependent, analyzing the two flows are safely decoupled. Program's controlflow is firstly estimated by simple case analysis of call expressions. Using this callgraph information, program's exception flow is derived as setconstraints, whose least model is our analysis result. Both of these two analyses are proven safe and the reasons behind each design decision are discussed. Our implementation of this analysis has been applied to realistic SML programs and shows a promising costaccuracy performance. For the MLLex program, for example, the analysis takes 1.36 seconds and it reports 3 mayuncaught exceptions, which are exactly the exceptions that can really escape. ...
Negative Set Constraints With Equality
 In Ninth Annual IEEE Symposium on Logic in Computer Science
, 1994
"... Systems of set constraints describe relations between sets of ground terms. They have been successfully used in program analysis and type inference. So far two proofs of decidability of mixed set constraints have been given: by R. Gilleron, S. Tison and M. Tommasi [12] and A. Aiken, D. Kozen, and E. ..."
Abstract

Cited by 33 (10 self)
 Add to MetaCart
(Show Context)
Systems of set constraints describe relations between sets of ground terms. They have been successfully used in program analysis and type inference. So far two proofs of decidability of mixed set constraints have been given: by R. Gilleron, S. Tison and M. Tommasi [12] and A. Aiken, D. Kozen, and E.L. Wimmers [3]. However, both these proofs are long, involved and do not seem to extend to more general set constraints. Our approach is based on a reduction of set constraints to the monadic class given in a recent paper by L. Bachmair, H. Ganzinger, and U. Waldmann [7]. We first give a new proof of decidability of systems of mixed positive and negative set constraints. We explicitely describe a very simple algorithm working in NEXPTIME and we give in all detail a relatively easy proof of its correctness. Then, we sketch how our technique can be applied to get various extensions of this result. In particular we prove that the problem of consistency of mixed set constraints with restricted p...