| Englebert, V., Le Charlier, B., Roland, D. & Van Hentenryck, P. (1993), `Generic abstract interpretation algorithms for Prolog: Two optimization techniques and their experimental evaluation', Software Practice and Experience 23(4), 419--459. |
....contribution we also derive a new efficient algorithm for abstract OLDT resolution as considered in [15, 16, 25] for Prolog. 1 Introduction Efficient application independent local solvers for general classes of constraint systems have been successfully used in program analyzers like GAIA [9, 6], PLAIA [20] or GENA [10, 11] for Prolog and PAG [1] for imperative languages. The advantages of application independence are obvious: the algorithmic ideas can be pointed out more clearly and are not superseded by application specific aspects. Correctness can therefore be proven more easily. Once ....
....lookups, explicit. So far, continuations have not been used in connection with worklist based solver algorithms. Only for topdown solver TD of Le Charlier and Van Hentenryck [5, 12] a related technique has been suggested and practically applied to the analysis of Prolog, by Englebert et al. in [9]. In case, however, computation on larger values is much more expensive than on smaller ones, continuation based worklist solvers can be further improved by calling continuations not with the complete new value of the modified variable but just its increment. This concept clearly is an instance ....
[Article contains additional citation context not shown here]
V. Englebert, B. Le Charlier, D. Roland, and P. Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation. SPE, 23(4):419--459, 1993.
....of large tabling operations. Also abstract uni cation and normalization are computationally demanding. We shall come back to this analysis in Section 6 where we directly compare the implementation of this domain in XSB and in BIMprolog. 3. 3 An optimization: tabling the abstract operations In [26], the authors propose a technique termed Caching of Operations : remembering previous calls answers to the abstract operations. The speedup obtained by this technique depends on the domain: for Pos it does not make sense, but for domains where the abstract operations are the most time consuming ....
....abstract normalize 2. This illustrates the advantage of using a exible general purpose logic programming language in which tabling can be easily switched on and o allowing experimentation on the right operations to table. We also note that the clause pre x dependency optimization mentioned in [26], which amounts to reconsidering only clauses with goals for which a new answer has been derived, follows naturally from XSB s strategy for performing answer resolution. 3.4 Performance of the type analyses Table 2 shows the timings of performing monomorphic directed type analyses based on the ....
V. Englebert, B. Le Charlier, D. Roland, and P. Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation. Software Practice and Experience, 23(4):419-459, Apr. 1993.
....In the second stage, a system of (in )equations is selected which (more or less precisely) characterizes the property to be analyzed. In the last stage, a standard solver is applied to compute a (least) solution of the system of (in )equations. Such solvers have systematically been studied in [6,20,8,22,23]. Therefore, we concentrate here on the second stage, that is, the design decisions for an analysis once the abstract operational semantics of a program is fixed. The main contributions of our paper are: ffl By giving a unified framework applicable to imperative as well as logic languages we hope ....
.... variables and reference parameters as in Pascal [2] Extensions including procedure parameters are considered in [4] First order functional languages (with tail call optimization) are considered by Debray and Proebsting in [18] One further instance of this meta language is normalized Prolog [8,20]. 3 Prolog A normalized (pure) Prolog program consists of a set Pred of predicates, a main predicate main 2 Pred together with a set Clause of clauses. Each clause 5 is of the form p(X 1 ; X k ) ff where p is a predicate, and ff consists of a sequence of goals. A goal in ff either is ....
[Article contains additional citation context not shown here]
Vincent Englebert, Baudouin Le Charlier, Didier Roland, and Pascal Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation. Software -- Practice and Experience, 23(4):419--459, 1993.
....contribution we also derive a new efficient algorithm for abstract OLDT resolution as considered in [14, 15, 24] for Prolog. 1. Introduction Efficient application independent local solvers for general classes of constraint systems have been successfully used in program analyzers like GAIA [8, 6], PLAIA [19] or GENA [9, 10] for Prolog or PAG [1] for imperative languages. The advantages of application independence are obvious: the algorithmic ideas can be pointed out more clearly and are not superseded by application specific aspects. Correctness for the solver can therefore be proven more ....
....look ups, explicit. So far, continuations have not been used in connection with worklist based solver algorithms. Only for the topdown solver TD of Charlier and Hentenryck [5, 11] a related technique has been suggested and practically applied to the analysis of Prolog, by Englebert et al. in [8]. In case, however, computation on larger values is much more expensive than on smaller ones, continuation based worklist solvers can be further improved by calling continuations not with the complete new value of the modified variable but just its increment. This concept clearly is an instance ....
[Article contains additional citation context not shown here]
Vincent Englebert, Baudouin Le Charlier, Didier Roland, and Pascal Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation. Software -- Practice and Experience, 23(4):419--459, 1993.
....contribution we also derive a new efficient algorithm for abstract OLDT resolution as considered in [16, 17, 25] for Prolog. 1 Introduction Efficient application independent local solvers for general classes of constraint systems have not only been successfully used in program analyzers like GAIA [10, 7], PLAIA [21] or GENA [11, 12] for Prolog or PAG [1] for imperative languages, they also offer further promising possibilities in other application areas [6, 13] The advantages of application independence are obvious: the algorithmic ideas can be pointed out more clearly and are not superseded by ....
....i.e. remaining parts of computations after returns from variable look ups, explicit. The use of continuations in itself is not new. For TD based solver algorithms [6, 13] applied to the analysis of Prolog, a related technique has been suggested and practically evaluated by Englebert et al. in [10]. Here, we give an application independent outline of the method in the context of local worklist solvers (an analogous exposition for TD based application independent solvers is possible as well) In case, however, computation on larger values is much more expensive than on smaller ones, ....
[Article contains additional citation context not shown here]
Vincent Englebert, Baudouin Le Charlier, Didier Roland, and Pascal Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation. Software -- Practice and Experience, 23(4):419--459, 1993.
....and understood the companion technical report [SE92] and the theoretical framework of Marriott, S ndergaard and Jones [MSJ93] Some of the ideas used in the implementation have been adapted from an engine implemented by the University of Namur and Brown University. For this reason familiarity with [LMV91, LMV90, LV91, ELRV91] is recommended. Finally, a working knowledge of Standard ML is assumed. A good ML text is Paulson s ML for the Working Programmer [Pau91] In the section which follows we derive the algorithm which forms the heart of the engine. This includes a method for computing first order fixpoints. The ....
Vincent Englebert, Baudouin Le Charlier, Didier Roland, and Pascal Van Hentenryck. Generic abstract interpretation algorithms for Prolog: Two optimization techniques and their experimental evaluation. Technical Report CS--91--67, Computer Science Department, Brown University, December 1991.
....global variables and reference parameters are allowed [2] It turns out that the operational semantics of (the pure subset of) Prolog with SLD resolution can be described by pda s as well. 4 A Small Step Operational Semantics for Logic Programs A normalized logic program in the sense of [7, 12] 2 consists of a set Pred of predicates together with a set Clause of predicate definitions and a main predicate main 2 Pred. A predicate definition for predicate p can be denoted by p(X 1 ; X k ) e where e consists of a sequence of goals. Goal g may either be a call like p(X i 1 ; ....
....Functions proc and next are defined by: proc[h ff:gfi] p if g j p(X i 1 ; X i n ) next [h ff:gfi] h ffg:fi] It remains to define the behavior of M . Let D denote a set of values. The semantics of normalized logic programs is specified through the following four functions [7, 12]: Basic D D meaning of basic goals restrG : Goal D D parameter passing into predicate extC : Clause D D initialization of selected clause restrC : Clause D D parameter passing back into predicate extG : Goal D 2 D effect of call [ assigns a meaning to basic ....
Vincent Englebert, Baudouin Le Charlier, Didier Roland, and Pascal Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation. Software -- Practice and Experience, 23(4):419--459, 1993.
.... two efficient application independent solvers have attracted attention, namely topdown solver TD of Le Charlier and Van Hentenryck [1] and an enhanced version W of Kildall s worklist algorithm [12, 11, 17] The first one has been successfully used to implement analyzers for logic languages [8, 2] and behaves extremely well in this application area although a better worstcase complexity can be proven for the second one. In this paper we present a new application independent solver WRT which has the same worstcase complexity as W but whose instantiation as an analyzer of logic programs ....
....y) in if oe(x) 6= new then oe(x) new ; W : W [ infl(x) infl(x) fi end od; return oe end Fig. 1. Algorithm W. 6 The Topdown Solver TD Algorithm TD (cf. Fig. 2) originally was proposed by Le Charlier and Van Hentenryck [1] and applied by them to the analysis of logic programs [2, 8]. According to its name, solver TD proceeds in a topdown fashion. The basic idea is as follows: If variable y is accessed during the evaluation of a right hand side, the value of y is not just returned as in algorithm W. Instead, TD first tries to compute an as good approximation for y as ....
[Article contains additional citation context not shown here]
V. Englebert, B. Le Charlier, D. Roland, and P. Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation. Software --- Practice and Experience, 23(4):419--459, 1993.
....of large tabling operations. Also abstract unification and normalization are computationally demanding. We shall come back to this analysis in Section 6 where we directly compare the implementation of this domain in XSB and in BIMprolog. 3. 3 An optimization: tabling the abstract operations In [23], the authors propose a technique termed Caching of Operations : remembering previous calls answers to the abstract operations. The speedup obtained by this technique depends on the domain: for POS it does not make sense, but for domains where the abstract operations are the most time consuming ....
....abstract normalize 2. This illustrates the advantage of using a flexible general purpose logic programming language in which tabling can be easily switched on and off allowing experimentation on the right operations to table. We also note that the clause prefix dependency optimization mentioned in [23], which amounts to reconsidering only clauses with goals for which a new answer has been derived, follows naturally from XSB s strategy for performing answer resolution. 3.4 Performance of the type analyses Table 2 shows the timings of performing directed monomorphic type analyses based on the ....
V. Englebert, B. Le Charlier, D. Roland, and P. Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation. Software Practice and Experience, 23(4):419--459, April 1993.
....a consequence, the algorithm generalizes and abstracts numerous existing algorithms, removes many restrictions, and provides a versatile alternative to bottom up algorithms. The algorithm has proven useful to derive several abstract interpretation algorithms for Prolog, based on various semantics [14, 15, 16, 9]. These algorithms (to our knowledge, the fastest available) are practical both in terms of efficiency and accuracy. The rest of the paper is organized as follows. Section 2 presents some mathematical preliminaries. Section 3 presents the universal top down fixpoint algorithm. Section 4 outlines ....
V. Englebert, B. Le Charlier, D. Roland, and P. Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and Their Experimental Evaluation. In Fourth International Symposium on Programming Language Implementation and Logic Programming (PLILP-92), Leuven (Belgium), August 1992.
....approach depends upon the choices made in the abstract domain. The purpose of this paper is to describe the design and implementation of a type system based on the second approach. The system is best described as GAIA(Pat(Type) where GAIA is a generic top down fixpoint algorithm for Prolog [12, 6] 2 , Pat is a generic pattern domain for structural information [3] and Type is a type graph domain. The main contribution of the system (about 15,000 lines of C) is to show that type analysis based on abstract interpretation and type graphs can be engineered to be practical, at least for ....
....and the ordering relation on the abstract domain. It has many similarities with PLAI [18] and can be seen either as an implementation of Bruynooghe s framework [1] or as an instance of a general fixpoint algorithm [13] In the experimental results, we use the prefix version of the algorithm [6]. 5 The Generic Pattern Domain In this section, we briefly recall the basic notions behind the generic abstract domain Pat(R) The main significance of Pat(R) for type analysis is the reduction in the size of the type graphs by factoring out sure structural information and, more importantly, by ....
V. Englebert, B. Le Charlier, D. Roland, and P. Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and Their Experimental Evaluation. Software Practice and Experience, 23(4), April 1993.
....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 implementation (about 6000 lines of C) has been evaluated systematically and its efficiency and accuracy has been compared with two other abstract ....
....of the language which makes it more amenable to static analysis. Considerable progress has been realised in this area in terms of the frameworks (e.g. 1, 3, 2, 7, 20, 21, 23, 30] the algorithms (e.g. 2, 6, 15, 16, 26] the abstract domains (e.g. 4, 14, 25] and the implementations (e.g. [13, 18, 12, 29]) An abstract domain which has raised much interest in recent years is the domain Prop proposed by Marriott and Sondergaard [22] The domain is intended to compute groundness information in Prolog programs. It is conceptually simple and elegant since abstract substitutions are represented by ....
[Article contains additional citation context not shown here]
V. Englebert, B. Le Charlier, D. Roland, and P. Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and Their Experimental Evaluation. In Fourth International Symposium on Programming Language Implementation and Logic Programming (PLILP-92), Leuven (Belgium), August 1992.
No context found.
Englebert, V., Le Charlier, B., Roland, D. & Van Hentenryck, P. (1993), `Generic abstract interpretation algorithms for Prolog: Two optimization techniques and their experimental evaluation', Software Practice and Experience 23(4), 419--459.
No context found.
V. Englebert, B. Le Charlier, D. Roland, P. Van Hentenryck, Generic abstract interpretation algorithms for prolog: two optimization techniques and their experimental evaluation, Software Practice Experience 23 (4) (1993) 419--459.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC