Results 1  10
of
18
Locating Matches of Tree Patterns in Forests
 Foundations of Software Technology and Theoretical Computer Science, Lecture Notes in Computer Science
, 1998
"... . We deal with matching and locating of patterns in forests of variable arity. A pattern consists of a structural and a contextual condition for subtrees of a forest, both of which are given as tree or forest regular languages. We use the notation of constraint systems to uniformly specify both kind ..."
Abstract

Cited by 53 (5 self)
 Add to MetaCart
. We deal with matching and locating of patterns in forests of variable arity. A pattern consists of a structural and a contextual condition for subtrees of a forest, both of which are given as tree or forest regular languages. We use the notation of constraint systems to uniformly specify both kinds of conditions. In order to implement pattern matching we introduce the class of pushdown forest automata. We identify a special class of contexts such that not only pattern matching but also locating all of a forest's subtrees matching in context can be performed in a single traversal. We also give a method for computing the reachable states of an automaton in order to minimize the size of transition tables. 1 Introduction In Standard Generalized Markup Language (SGML) [Gol90] documents are represented as trees. A node in a document tree may have arbitrarily many children, independent of the symbol at that node. A sequence of documents or subdocuments is called a forest. A main task in do...
Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation
, 1993
"... Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation* vincent englebert, baudouin le charlier and didier roland University of Namur, 21 rue Grandgagnage, B5000 Namur, Belgium pascal van hentenryck+ Brown University, Box 1910, Providence, RI 02912 ..."
Abstract

Cited by 41 (14 self)
 Add to MetaCart
Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation* vincent englebert, baudouin le charlier and didier roland University of Namur, 21 rue Grandgagnage, B5000 Namur, Belgium pascal van hentenryck+ Brown University, Box 1910, Providence, RI 02912, U.S.A.
Propagating Differences: An Efficient New Fixpoint Algorithm for Distributive Constraint Systems
, 1998
"... Integrating seminaive fixpoint iteration from deductive data bases [3, 2, 4] as well as continuations into worklistbased solvers, we derive a new application independent local fixpoint algorithm for distributive constraint systems. Seemingly different efficient algorithms for abstract interpre ..."
Abstract

Cited by 27 (10 self)
 Add to MetaCart
Integrating seminaive fixpoint iteration from deductive data bases [3, 2, 4] as well as continuations into worklistbased solvers, we derive a new application independent local fixpoint algorithm for distributive constraint systems. Seemingly different efficient algorithms for abstract interpretation like those for linear constant propagation for imperative languages [17] as well as for controlflow analysis for functional languages [13] turn out to be instances of our scheme. Besides this systematizing contribution we also derive a new efficient algorithm for abstract OLDTresolution as considered in [15, 16, 25] for Prolog.
A policy iteration algorithm for computing fixed points in static analysis of programs
 IN CAV
, 2005
"... ..."
Type Analysis of Prolog Using Type Graphs
 JOURNAL OF LOGIC PROGRAMMING
, 1993
"... Type analyis of Prolog is of primary importance for highperformance compilers, since type information may lead to better indexing and to sophisticated specializations of unification and builtin predicates to name a few. However, these optimizations often require a sophisticated type inference syst ..."
Abstract

Cited by 23 (0 self)
 Add to MetaCart
Type analyis of Prolog is of primary importance for highperformance compilers, since type information may lead to better indexing and to sophisticated specializations of unification and builtin predicates to name a few. However, these optimizations often require a sophisticated type inference system capable of inferring disjunctive and recursive types and hence expensive in computation time. The purpose of this paper is to describe a type analysis system for Prolog based on abstract interpretation and type graphs (i.e. disjunctive rational trees) with this functionality. The system (about 15,000 lines of C) consists of the combination of a generic fixpoint algorithm, a generic pattern domain, and a type graph domain. The main contribution of the paper is to show that this approach can be engineered to be practical for mediumsized programs without sacrificing accuracy. The main technical contributions to achieve this result are (1) a novel widening operator for type graphs which app...
A Faster Solver for General Systems of Equations
 Science of Computer Programming
, 1999
"... Interpretation of Logic Programs As an example application for our implementations of solvers W, TD, WRT and WDFS the rst author integrated the four solvers into a tool (GENA) [11,12] for generating Prolog analyzers from specications. The generated analyzers are based on the principle of abstract i ..."
Abstract

Cited by 22 (5 self)
 Add to MetaCart
Interpretation of Logic Programs As an example application for our implementations of solvers W, TD, WRT and WDFS the rst author integrated the four solvers into a tool (GENA) [11,12] for generating Prolog analyzers from specications. The generated analyzers are based on the principle of abstract interpretation [9,19,6]. More specically, the analyzers are based on the generic abstract interpretation framework for logic programs of Le Charlier and Van Hentenryck [6]. This framework assumes logic programs to be normalized. The set of normalized goals is inductively dened by the following rules: G ::= true j X i = t X i 62 vars(t) j p(X i 1 ; : : : ; X i n ) i 1 ; : : : ; i n are distinct indices j G 1 ; G 2 where X 1 ; X 2 ; : : : are program variables, t ranges over terms built up from program variables by formal applications of function symbols, and p denotes predicate symbols (of arities n). A normalized program is a set of normalized clauses p(X 1 ; : : : ; X n ) G. If a c...
An Even Faster Solver for General Systems of Equations
, 1996
"... We present a new algorithm which computes a partial approximate solution for a system of equations. It is local in that it considers as few variables as necessary in order to compute the values of those variables we are interested in, it is generic in that it makes no assumptions on the applicat ..."
Abstract

Cited by 20 (7 self)
 Add to MetaCart
We present a new algorithm which computes a partial approximate solution for a system of equations. It is local in that it considers as few variables as necessary in order to compute the values of those variables we are interested in, it is generic in that it makes no assumptions on the application domain, and it is general in that the algorithm does not depend on any specific properties of righthand sides of equations. For instance, monotonicity is not required. However, in case the righthand sides satisfy some weak monotonicity property, our algorithm returns the (uniquely defined) least solution. The algorithm meets the best known theoretical worstcase complexity of similar algorithms. For the application of analyzing logic languages, it also gives the best practical results on most of our real world benchmark programs.
Groundness Analysis for Prolog: Implementation and Evaluation of the Domain Prop
 IN PROCEEDINGS OF THE ACM SIGPLAN SYMPOSIUM ON PARTIAL EVALUATION AND SEMANTICSBASED PROGRAM MANIPULATION
, 1992
"... The domain Prop [22, 8] is a conceptually simple and elegant abstract domain to compute groundness information for Prolog programs. In particular, abstract substitutions are represented by Boolean functions built using the logical connectives ,;;. Prop has raised much theoretical interest recently b ..."
Abstract

Cited by 17 (2 self)
 Add to MetaCart
The domain Prop [22, 8] is a conceptually simple and elegant abstract domain to compute groundness information for Prolog programs. In particular, abstract substitutions are represented by Boolean functions built using the logical connectives ,;;. Prop has raised much theoretical interest recently but little is known about the practical accuracy and efficiency of this domain. Experimental evaluation of Prop is particularly important since Prop theoretically needs to solve a coNPComplete problem. However, this complexity issue may not matter much in practice because the size of the abstract substitutions is bounded since Prop would only work on the clause variables in many frameworks. In this paper, we describe an implementation of the domain Prop and we use it to instantiate a generic abstract interpretation algorithm [16, 12, 18]. A key feature of the implementation is the use of ordered binary decision graphs to provide a compact representation of many Boolean functions. The implem...
EVALUATION OF THE DOMAIN PROP
, 1995
"... The domain Prop [11, 30] is a conceptually simple and elegant abstract domain to compute groundness information for Prolog programs, where abstract substitutions are represented by Boolean functions. Prop has raised much theoretical interest recently, but little is known about the practical accur ..."
Abstract

Cited by 14 (2 self)
 Add to MetaCart
The domain Prop [11, 30] is a conceptually simple and elegant abstract domain to compute groundness information for Prolog programs, where abstract substitutions are represented by Boolean functions. Prop has raised much theoretical interest recently, but little is known about the practical accuracy and efficiency of this domain. Experimental evaluation of Prop is particularly important since Prop theoretically needs to solve a coNPComplete problem. However, this complexity issue may not matter much in practice because the size of the abstract substitutions is bounded since Prop would only work on the clause variables in many frameworks. The purpose of this paper is to study the performance of domain Prop. Its first contribution is to describe an implementation of the domain Prop and to use it to instantiate a generic abstract interpretation algorithm [17, 23, 27]. A key feature of the implementation is the use of ordered binary decision graphs to provide a compact representation of many Boolean functions. Its second contribution is to describe the design and implementation of a new domain, Pat (Prop), combining the domain Prop with structural information about the subterms. This new domain may significantly improve the accuracy of the domain Prop on programs manipulating differencelists. Both implementations (resp. 6000 and 12,000 lines of C) have been evaluated systematically, and their efficiency and accuracy for groundness inference have been compared with several other abstract domains. The interest of Pat (Prop) and Prop for online analysis is also investigated.
Succinct Solvers
, 2001
"... We develop a solver algorithm which allows to eciently compute the optimal model of a very expressive fragment of predicate logic. The succinct formulation of the algorithm is due to the disciplined use of continuations and memoisation. This facilitates giving a precise characterisation of the behav ..."
Abstract

Cited by 6 (5 self)
 Add to MetaCart
We develop a solver algorithm which allows to eciently compute the optimal model of a very expressive fragment of predicate logic. The succinct formulation of the algorithm is due to the disciplined use of continuations and memoisation. This facilitates giving a precise characterisation of the behaviour of the solver and to develop a complexity calculation which allows to obtain its formal complexity. Practical evaluations on a controlflow analysis of the ambient calculus shows a good match between theory and practice.