| F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag. |
....for the domain operations for BDD based Pos, which were written in C by Schachte [23] and compiled with O2 level of optimisation. The analysers were run on a 296MHz Sun UltraSPARC II with 1GByte of RAM running Solaris 7. Programs are abstracted following the elegant (two program) scheme of [4] to guarantee correctness. Programs containing disjunctions are normalised to de nite clauses. Timeouts were set at two minutes. Table 1 presents the experimental results for the larger programs in the benchmark suite. The columns detail the following information, le: the program name; size: ....
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, volume 1058 of Lecture Notes in Computer Science, pages 108-124. Springer-Verlag, 1996.
....procedures, and avoid the generation of the useless ones. A second problem is the too absorbant e ect of the notion of top currently used in the alias information. Once top is encountered, it propagates all throughout the remainder of the code. Instead of top, we could use topmost substitutions [4]: e.g. generating all possible combinations of aliases between the arguments of a called predicate, based on the types of these arguments, either explicitly or in a more compact form (using type selectors or keeping sets of variables, stating that these variables might be aliased to each other in ....
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag.
....concentrated on the design of abstract domains and their operations, rather than issues of how builtins such as meta calls and dynamic predicates should be handled. Many realistic programs contain such builtins, however, and so this is an important issue to address when constructing an analyser [2 4,6,7]. This note details how builtins are handled in a groundness analyser developed at the University of Kent in collaboration with the Universities of Ben Gurion and Leeds. This analyser is composed to two core modules: an abstracter module which takes, as input, a program and produces, as output, an ....
....safely abstracted by true. Precision could be improved, however, if we can infer that I is ground when the goal assert(data(I) is called because then retract(data(O) must ground O. To resolve the meta call problem (and much of the assert problem) we follow the elegant analysis model set out in [3,4] in which there are assumed to be two versions of the program: one (virgin) program that is unanalysed; and another (renamed) version that is completely analysed. The idea is for the renamed version to only express information about the calls that the analysis is able to trace. The renamed program ....
[Article contains additional citation context not shown here]
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, pages 108-124. Springer-Verlag, 1996. LNCS 1058.
....0.14 0.55 0.59 687 687 0 essln.pl 565 0.36 0.21 0.58 0.58 163 163 0 chat 80.pl 888 0.92 1.31 1.89 2.27 855 855 0 aqua c.pl 4009 2. 48 11.29 104.99 897.10 1288 1288 0 The abstracter deals with meta calls, asserts and retracts following the elegant (two program) scheme detailed by Bueno et al. [6]. The fixpoint columns give the time, in seconds, to compute the fixpoint for each of the three analysers (Def NG and Def BDD denote respectively the non ground and BDD based Def analyser) The precision columns give the total number of ground arguments in the call and answer patterns (and ....
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, volume 1058 of Lecture Notes in Computer Science, pages 108--124. Springer, 1996.
....each primitive operation u of the language (uni cation being a notable example) is abstracted to an operation u 0 over the abstract domain. Soundness of the analysis requires that each concrete operation u be related to 1 Our implementation supports essentially all the builtins of ISO Prolog [5]. However, for simplicity we avoid their discussion except in cases where it may be especially relevant. This includes for example programs which have if then else s in the body of clauses, such as those generated by automatic parallelization, as will be seen in Section 5.2. This construct poses ....
....patterns may simply be the names of the predicates which can appear in user queries. In order to increase the precision of the analysis, it is often possible to include a description of the set of abstract (or concrete) substitutions allowable for each predicate by means of entry declarations [5]. For simplicity, in the presentation only one calling pattern for analysis is given. A calling pattern for an abstract domain D consists of a predicate symbol p together with a restriction of the run time bindings of p expressed as an abstract substitution 2 D . Extending the framework to ....
[Article contains additional citation context not shown here]
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag.
....use for debugging of imperative programs has been studied by Bourdoncle [Bou93] and for debugging of logic programs by Comini et al. CLMV96b] Both approaches focus on some specific semantics and specific programming languages. It has also been used in abstract assertion checking proposed in [BCHP96] This section outlines the use of abstract interpretation for verification and diagnosis in a general setting of arbitrary fixpoint (set) semantics. For the time being, we assume that specifications are written as I ff (i.e. the abstract domain is used as the language to write specifications) ....
....in assertions are again those introduced in Section 4, i.e. f ; Gamma; g. In practice, assertions can be used to describe not only the intended semantics but also the actual semantics of the program (an example of the latter is the use of assertions to express the result of program analysis in [BCHP96] We now consider several possible choices for the language of assertions. Notice that different kind of semantics may be used for validation and for debugging, thus the choices discussed below are parameterized by the semantic domain used. Note that semantic values in our setting are sets. ....
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
No context found.
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag.
No context found.
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag.
No context found.
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
No context found.
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag.
No context found.
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
No context found.
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
No context found.
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
....from a static symptom may then use algorithms related to those of declarative debugging in order to identify the program construct responsible for the symptom. Development of a tool based on this idea would require: ffl The study of the theoretical aspects involved (starting from [BDD 97] BCHP96] and the work on abstract debugging [CLMV96] ffl Developing a method for localising the program fragment responsible for the discrepancy between the desired property and the result of the analysis. The don t know failure of the proof provides no information about existence (or ....
....analysis tools A generic tool for assertion generation based on abstract interpretation (AI) techniques. This tool takes as input a program and generates a set of assertions derived from the program. It will be implemented by: ffl Designing the overall language of assertions (using ideas from [BCHP96] and [BDM96] ffl Designing a sub language of assertions which includes special properties suitable for static inference through abstract interpretation. ffl Modifying the CIAO analyser to produce output in this form. ffl Integrating the assertion generation module into the public domain CIAO ....
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
.... additional information to the analyzer, which it can use both to increase the precision of the information it infers and or to perform additional optimizations during code generation [24, 22, 17, 16] An example are assertions which state some (but not all) types in a type inferencing system [3]. Also, assertions can be used to represent analysis output in source form and to communicate different modules of the compiler which deal with analysis information [3] In this context, assertions again do not express properties which should hold for the program, but rather properties which do ....
.... code generation [24, 22, 17, 16] An example are assertions which state some (but not all) types in a type inferencing system [3] Also, assertions can be used to represent analysis output in source form and to communicate different modules of the compiler which deal with analysis information [3]. In this context, assertions again do not express properties which should hold for the program, but rather properties which do hold Technical University of Madrid (UPM) fgerman,bueno,hermeg fi.upm.es 1 for the program at hand. Note that if the program is not correct, the properties which hold ....
[Article contains additional citation context not shown here]
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
....predicates as concurrent by using a concurrent 1 declaration. The implication is that these predicates can be updated concurrently and atomically by di erent threads. We also assume for simplicity that these predicates will only contain facts, i.e. they are data 1 predicates in the sense of [7] and Ciao (this makes them faster and helps global analysis) Finally, we assume that if a concurrent predicate is called and no matching fact exists at that time in the database, then the calling thread suspends and is resumed only when such a matching fact appears (i.e. is asserted by a ....
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag.
.... visualizers (see, for example, 1,22,21] for a more comprehensive discussion of tools and possible debugging scenarios) In this paper we concentrate our attention on the particular issue of program validation and debugging via direct static and or dynamic checking of user provided assertions [18,19,8,6,36,2]. Classical examples of assertions are the type declarations used in languages such as Godel [30] or Mercury [42] and in traditional functional languages) But here, and encouraged by the capabilities of the currently available abstract interpreters, we depart in several ways from the traditional ....
.... of powerful and mature static analyzers for (constraint) logic programs, generally based on abstract interpretation [15] These analyzers have proved quite effective in statically inferring a wide range of program properties accurately and efficiently, for realistic programs (see, e.g. [29,34,12,24,25,31,8,9] and their references) Such properties can range from types and modes to determinacy, non failure, computational cost, independence, or termination, to name a few. Traditionally the results of static analyses have been applied primarily to program optimization: parallelization, partial ....
[Article contains additional citation context not shown here]
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
....built, an increased need arises for advanced development and debugging environments. Assertions are linguistic constructions which allow expressing properties of programs. Classical examples of assertions are type declarations. However, herein we are interested in supporting a more general setting [3, 1] in which, on one hand assertions can be of a more general nature, including properties which are statically undecidable, and, on the other, only a small number of assertions may be present in the program, i.e. the assertions are optional. In particular, we do not wish to limit the programming ....
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag.
....paper should apply to such module systems, or, at least, to their subset which is strict. 2 However, it is useful in our discussion that some of the particular choices in the design of the Ciao module system were made keeping the task of global analysis in mind. This paper builds primarily on [BCHP96] in which many techniques were proposed for dealing with dicult features of practical languages (in particular, full ISO Prolog) in the context of analysis. Herein we concentrate on the issue of modular analysis, which was only sketched at the end of [BCHP96] We also extend the techniques to ....
....This paper builds primarily on [BCHP96] in which many techniques were proposed for dealing with dicult features of practical languages (in particular, full ISO Prolog) in the context of analysis. Herein we concentrate on the issue of modular analysis, which was only sketched at the end of [BCHP96] We also extend the techniques to another application: specialization. 1.1 An Example of a Modular Program Figure 1 shows the code of a module which implements the well known quicksort algorithm. The declaration : module(qsort, qsort 2] states that the module name is qsort and that it ....
[Article contains additional citation context not shown here]
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag.
....user can add annotations regarding this properties. Such annotations can optionally be checked by the compiler or trusted, i.e. used to guide the analysis (for example, when stating the interface of a module) The analyzer communicates the results of analysis in the same assertion language [BCHP96, PBH97, Gro97, BDD 97, HtCG97] ffl Support for ISO Prolog: The system provides support for ISO Prolog. However, this is not done directly but rather via a library. The basic language (when this library is not loaded) can be seen as constructed by first eliminating unnecessary impure ....
....domain independent. This allows plugging in different abstract domains, provided suitable interfacing functions are defined. PLAI also incorporates incremental analysis [HPMS95] in order to deal with large programs and is capable of analyzing full languages (in particular, full standard Prolog [BCHP96, CRV94] A modification of the PLAI framework capable of analyzing dynamically scheduled programs is also provided in order to support the concurrent models. Note that, thanks to the transformational approach, only two frameworks are used (one for simple, left to right execution and another for ....
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
.... additional information to the analyzer, which it can use both to increase the precision of the information it infers and or to perform additional optimizations during code generation [24, 22, 17, 16] An example are assertions which state some (but not all) types in a type inferencing system [3]. Also, assertions can be used to represent analysis output in source form and to communicate di erent modules of the compiler which deal with analysis information [3] In this context, assertions again do not express properties which should hold for the program, but rather properties which do ....
.... code generation [24, 22, 17, 16] An example are assertions which state some (but not all) types in a type inferencing system [3] Also, assertions can be used to represent analysis output in source form and to communicate di erent modules of the compiler which deal with analysis information [3]. In this context, assertions again do not express properties which should hold for the program, but rather properties which do hold Technical University of Madrid (UPM) fgerman,bueno,hermeg fi.upm.es 1 for the program at hand. Note that if the program is not correct, the properties which ....
[Article contains additional citation context not shown here]
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag.
....scenarios) In this paper we concentrate our attention on the particular issue of program validation and debugging via direct static and or dynamic checking of user provided assertions. We assume that a (partial) speci cation is available with the program and written in terms of assertions [5, 4, 13, 14, 23, 25]. Classical examples of assertions are the type declarations used in languages such as G odel [21] or Mercury [29] and in functional languages) However, herein we are interested in supporting a more general setting in which, on one hand assertions can be of a more general nature, including ....
....(i.e. runtime) checking of assertions. In particular, run time checks will be generated for assertions which cannot be statically determined to hold or not. Our approach is strongly motivated by the availability of powerful and mature static analyzers for (constraint) logic programs (see, e.g. [5, 8, 16, 17, 24] and their references) generally based on abstract interpretation [11] These systems can statically infer a wide range of properties (from types to determinacy or termination) accurately and ef ciently, for realistic programs. Thus, we would like to take advantage of standard program analysis ....
[Article contains additional citation context not shown here]
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag.
....non failure, bounds on term sizes, and bounds on computational cost. Ciaopp implements several techniques for dealing with di cult language features (such as side e ects, meta programming, higher order, etc. and as a result can for example deal safely with arbitrary ISO Prolog programs [1]. A uni ed language of assertions [1, 19] is used to express the results of analysis, to provide input to the analyzer, and, as we will see later, to provide program speci cations for debugging and validation. Modular Static Analysis Basics: Ciaopp takes advantage of modular program structure to ....
....sizes, and bounds on computational cost. Ciaopp implements several techniques for dealing with di cult language features (such as side e ects, meta programming, higher order, etc. and as a result can for example deal safely with arbitrary ISO Prolog programs [1] A uni ed language of assertions [1, 19] is used to express the results of analysis, to provide input to the analyzer, and, as we will see later, to provide program speci cations for debugging and validation. Modular Static Analysis Basics: Ciaopp takes advantage of modular program structure to perform more precise and e cient, ....
[Article contains additional citation context not shown here]
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108-124, Sweden, April 1996. Springer-Verlag.
.... execution visualizers (see, for example, 1] for a more comprehensive discussion of tools and possible debugging scenarios) In this paper we concentrate our attention on the particular issue of program validation and debugging via direct static and or dynamic checking of user provided assertions [17, 18, 8, 6, 30, 2]. Classical examples of assertions are the type declarations used in languages such as Godel [24] or Mercury [36] and in functional languages) But here, and encouraged by the capabilities of the currently available abstract interpreters, we depart in several ways from the traditional approaches. ....
.... of powerful and mature static analyzers for (constraint) logic programs, generally based on abstract interpretation [14] These analyzers have proved quite effective in statically inferring a wide range of program properties accurately and efficiently, for realistic programs (see, e.g. [23, 28, 11, 20, 21, 25, 8, 9] and their references) Such properties can range from types and modes to determinacy, non failure, computational cost, independence, or termination, to name a few. Traditionally the results of static analyses have been applied primarily to program optimization: parallelization, partial ....
[Article contains additional citation context not shown here]
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
....scenarios) In this paper we concentrate our attention on the particular issue of program validation and debugging via direct static and or dynamic checking of user provided assertions. We assume that a (partial) specification is available with the program and written in terms of assertions [5, 4, 12, 13, 22]. Classical examples of assertions are the type declarations used in languages such as Godel [18] or Mercury [25] and in functional languages) However, herein we are interested in supporting a more general setting in which, on one hand assertions can be of a more general nature, including ....
....run time) checking of assertions. In particular, run time checks will be generated for assertions which cannot be determined to be true or false statically. Our approach is strongly motivated by the availability of powerful and mature static analyzers for (constraint) logic programs (see, e.g. [5, 7, 15, 16, 21] and their references) generally based on abstract interpretation [10] These systems can statically infer a wide range of properties (from types to determinacy or termination) accurately and efficiently, for realistic programs. Thus, we would like to take advantage of standard program analysis ....
[Article contains additional citation context not shown here]
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
....allow in assertions are those introduced in Section 4, i.e. f ; Gamma; g. In practice, assertions can be used to describe not only the intended semantics but also the actual semantics of the program (an example of the latter is the use of assertions to express the result of program analysis in [4]) We now consider several possible choices for the language of assertions. Note that different kinds of semantics may be used for validation and for debugging, thus the choices discussed below are parameterized by the semantic domain used. Since the semantic values in our (simplified) setting are ....
....includes also other techniques, such as traditional procedural debugging and visualization, which are however beyond the scope of the work presented in this paper. 7 Note that the user may optionally provide additional information to the analyzer by means of entry and trust assertions [4,18]. 8 If the language for assertions is the underlying programming language or an abstract domain different from that used internally by the tool, an assertion translator is in charge of transforming the intended semantics into the abstract domain to be used by the analyzer. An intelligent ....
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108--124, Sweden, April 1996. Springer-Verlag.
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