| G. Ferrand (1987). Error diagnosis in logic programming, an adaption of E.Y. Shapiro's method, J. Logic Programming, 177--198. |
....However, current debugging tools do not enforce program correctness adequately as they do not provide means to finding bugs in the source code w.r.t. the intended program semantics. In pure logic programming, 24,23] defined a declarative framework for debugging which extends the methodology in [29,47], based on using the immediate consequences operator T P to identify program bugs, to diagnosis w.r.t. computed answers. The framework is goal independent actually it is driven by a set of most general atomic goals and does not require the determination of symptoms in advance. In this paper, ....
G. Ferrand. Error Diagnosis in Logic Programming, and Adaptation of E.Y.Shapiro's Method. Journal of Logic Programming, 4(3):177--198, 1987.
....However, current debugging tools do not enforce program correctness adequately as they do not provide means to finding bugs in the source code w.r.t. the intended program semantics. In pure logic programming, 23,22] de fined a declarative framework for debugging which extends the methodology in [28,46], based on using the immediate consequences operator Tp to identify program bugs, to diagnosis w.r.t. computed answers. The framework is goal independent actually it is driven by a set of most general atomic goals and does not require the determination of symptoms in advance. In this paper, one ....
G. Ferrand. Error Diagnosis in Logic Programming, and Adaptation of E.Y.Shapiro's Method. Journal of Logic Programming, 4(3):177-198, 1987.
....idea behind declarative error diagnosis is to collect information about what the program is intended to do, and compare this with what it actually does. Declarative debugging of logic programs can diagnose both wrong and missing computed answers, and it has been proved logically sound and complete [10, 16, 21]. Declarative debuggers have recently been de ned for several other programming paradigms [7, 19, 1] Declarative programming is supported both by functional and logic programming. However, each of these programming styles has di erent advantages w.r.t. practical applications. Functional ....
....The methodology in [7] includes a formalization of computation trees precise enough to prove the logical correctness for the debugger. In the case of pure logic programming, 9] has de ned a declarative framework for debugging which extends to diagnosis w.r.t. computed answers the methodology in [10, 21]. The framework does not require to determine the symptoms in advance and is goal independent it is driven by a set of most general atomic goals. It is based on using the immediate consequences operator T P to identify program bugs and has the advantage to give a symptom independent diagnosis ....
G. Ferrand. Error Diagnosis in Logic Programming, and Adaptation of E.Y.Shapiro's Method. Journal of Logic Programming, 4(3):177-198, 1987.
....a semiautomatic technique which allows to detect bugs on the basis of the intended meaning of the source program, disregarding operational concerns. Declarative debugging of logic programs can diagnose both wrong and missing computed answers, and it has been proved logically sound and complete [2, 7]. Work partially supported by the Spanish CICYT (project CICYT TIC98 0445 C0302 97 TREND ) Declarative debugging has been adapted to other programming paradigms, including lazy functional programming [14, 15, 10, 13, 18] and combined functional logic programming [12, 11] A common feature ....
....trees that relate computed answers to the declarative semantics of programs. More precisely, we formalize a procedure for building proof trees from successful computations. This allows us to prove the logical correctness of the debugger, extending older results from the field of logic programming [2, 7] to a substantially more difficult context. Moreover, our work is intended as a guideline for a future prototype implementation of a working debugger for the functional logic programming system T OY [9] The paper is organized as follows. Section 2 presents the general debugging scheme from [11] ....
[Article contains additional citation context not shown here]
G. Ferrand. Error diagnosis in Logic Programming, an adaptation of E.Y. Shapiro's method. The Journal of Logic Programming, 1987. 4(3):177-198
....However, current debugging tools do not enforce program correctness adequately as they do not provide means to nding bugs in the source code w.r.t. the intended program semantics. In pure logic programming, 14, 13] de ned a declarative framework for debugging which extends the methodology in [20, 34], based on using the immediate consequences operator TP to identify program bugs, to diagnosis w.r.t. computed answers. The framework is goal independent, it is driven by a set of most general atomic goals, and does not require the determination of symptoms in advance. This work has been ....
G. Ferrand. Error Diagnosis in Logic Programming, and Adaptation of E.Y.Shapiro's Method. Journal of Logic Programming, 4(3):177-198, 1987.
....includes a formalization of computation trees which is precise enough to prove the logical correctness for the debugger and which also helps simplify oracle questions. In the case of pure logic programming, 17] has de ned a declarative framework for debugging which extends the methodology in [25, 43] to diagnosis w.r.t. computed answers. The framework does not require the determination the symptoms in advance and is goal independent it is driven by a set of most general atomic goals. It is based on using the immediate consequences operator TP to identify program bugs and has the advantage of ....
G. Ferrand. Error Diagnosis in Logic Programming, and Adaptation of E.Y.Shapiro's Method. Journal of Logic Programming, 4(3):177-198, 1987.
....of computation trees precise enough to proof the logical correctness for the debugger and which also helps simplify oracle questions. In the case of pure logic programming, 16] has defined a declarative framework for debugging which extends to diagnosis w.r.t. computed answers the methodology in [24, 42]. The framework does not require to determine the symptoms in advance and is goal independent it is driven by a set of most general atomic goals. It is based on using the immediate consequences operator TP to identify program bugs and has the advantage to give a symptom independent diagnosis ....
G. Ferrand. Error Diagnosis in Logic Programming, and Adaptation of E.Y.Shapiro's Method. Journal of Logic Programming, 4(3):177--198, 1987.
....complete with respect to I, or in the detection of incorrectness and or incompleteness symptoms, which would flag the existence of errors in P , and in which case a process of diagnosis should be started to locate such errors. There are many ways in which the validation task can be performed [3,4,17,23,44]. In general, direct application of the previous definitions is not practical for different reasons. First, providing the entire and exact intended semantics I may be a tedious task. Also, the actual semantics [ P ] of P may be an infinite object and it is often more convenient to use ....
G. Ferrand. Error diagnosis in logic programming. J. Logic Programming, 4:177--198, 1987.
.... this end, it can be useful the least xpoint characterization of NGFFP in [10] The same xpoint characterization can be used to extend to nite failure the theory of declarative diagnosis (or debugging) developed for the success set [12] for the set of atomic logical consequences (c semantics) [5] and for the computed answers semantics (s semantics) 4] Other denotations were proved to be recursive for speci c classes of programs, as for example the class of acceptable programs [2] This was shown for the least Herbrand model in [1] and for the c semantics and s semantics in [11] We are ....
G. Ferrand. Error Diagnosis in Logic Programming, an Adaptation of E. Y. Shapiro's Method. Journal of Logic Programming, 4:177-198, 1987.
....of the negation as failure rule, not( call(A) succeeds if P j= 9A, i.e. if there is a finitely failed SLD tree. Instead, the intended use of not( call(A) is to prove P j= 8A, i.e. that A is not a logical consequence of P . A form of completeness has been shown for Ferrand s debugger [7], 8, Debugger F.1] which is obtained from Program 1 by removing the literals not( call(A) and call(A) As an example, the uncovered atom q(b) of Program 2 is detected by Ferrand s debugger. However, Ferrand s approach differs from ours in the fact that it considers impossible atoms instead of ....
G. Ferrand. Error Diagnosis in Logic Programming, an Adaption of E. Y. Shapiro's Method. Journal of Logic Programming, 4(3):177--198, 1987.
....without actually computing the xpoint is F(I) I. In the case of logic programs, this is the approach taken by declarative debugging (diagnosis) 21, 22] where the semantics is the least Herbrand model. The approach has been extended to model other observable properties such as correct answers [12], computed answers and their abstractions [7] In [23, 17] this technique has been recently related to other techniques used in logic program veri cation by showing that all the existing methods [4, 11, 2] can be reconstructed as instances of a general veri cation technique based on the above de ....
G. Ferrand. Error Diagnosis in Logic Programming, an Adaptation of E. Y. Shapiro's Method. Journal of Logic Programming, 4:177-198, 1987.
....accurately and ef ciently, for realistic programs. Thus, we would like to take advantage of standard program analysis tools, rather than developing new abstract procedures, such as concrete [4, 13, 14] or abstract [9, 10] diagnosers and debuggers, or using traditional proof based methods [2, 3, 12, 15, 30]. Figure 1 presents the general architecture of the type of debugging environment that we propose. Hexagons represent the di erent tools involved and arrows indicate the communication paths among such tools. Most of such communication is performed in terms of assertions. More details on the ....
G. Ferrand. Error diagnosis in logic programming. J. Logic Programming, 4:177-198, 1987.
....this has tended to remain in this field. Exceptions to this are [36] and [40] which concentrate on debugging lazy functional languages and [25] which concentrates on debugging Pascal. Since Shapiro s original theoretical treatment, several other alternatives have been proposed, for example [17], 29] 51] and [3] Ferrand [17] presents a treatment for definite programs 6 Background 7 and Lloyd [29] extends this to full first order logic syntax via the Lloyd Topor transformations [30] Lloyd and Ferrand both present variations of the top down approach where the search follows the ....
....this field. Exceptions to this are [36] and [40] which concentrate on debugging lazy functional languages and [25] which concentrates on debugging Pascal. Since Shapiro s original theoretical treatment, several other alternatives have been proposed, for example [17] 29] 51] and [3] Ferrand [17] presents a treatment for definite programs 6 Background 7 and Lloyd [29] extends this to full first order logic syntax via the Lloyd Topor transformations [30] Lloyd and Ferrand both present variations of the top down approach where the search follows the subprocedures of a procedure, asking ....
[Article contains additional citation context not shown here]
G Ferrand. Error diagnosis in logic programming, an adaption of E. Y. Shapiro's method. The Journal of Logic Programming, 4(3):177--198, September 1987.
....No information about error symptoms is used. The algorithm reuses an abstract immediate consequence function from a type analysis system. The user does not have to provide whole specifications, their fragments can be submitted in an on demand way. 1 Introduction Declarative debugging [12, 11, 8] is a technique which, given a program P and a specification I of the intended declarative semantics of P , allows one to localize program bugs, when the actual semantics M(P ) and the specification I are different. Declarative debugging algorithms are based on a theory which requires I to be ....
G. Ferrand. Error Diagnosis in Logic Programming, an Adaptation of E. Y. Shapiro's Method. Journal of Logic Programming, 4:177--198, 1987.
....produce a correct result, or loop and so on. This paper is concerned with the first two kinds of bug symptom. Many declarative diagnosers for logic programs have been developed. Shapiro [17, 18] developed the algorithmic debugging method 1 and exemplified the method through pure Prolog. Ferrand [5] adapted the algorithmic debugging method for definite logic programs. Lloyd [8, 9] presented a declarative diagnoser for arbitrary logic programs. The diagnoser is a meta program which makes it easy to improve its performance by adding control information as meta calls. Lloyd [8, 9] obtained 1 ....
....0 unify with mgu , W is unsatisfiable in I. An atom A is an incompletely covered atom (of P w.r.t. I) if an instance of A is an uncovered atom (of P w.r.t. I) If there is an inconsistency or insufficiency symptom then there is an inconsistent clause instance or an incompletely covered atom [9, 8, 5, 19]. Therefore, given an inconsistency or insufficiency symptom, a declarative diagnoser for logic programs is to search for an inconsistent clause instance or an incompletely covered atom. 2.2 Execution Trees We now establish the relation between a bug symptom and a bug by means of a tree that ....
G. Ferrand. Error diagnosis in logic programming, an adaptation of E.Y. Shapiro's method. Journal of Logic Programming, 4(3):177--198, 1987.
....process whereby a declarative diagnoser obtains the intended interpretation of the program from an oracle, usually the programmer, and compares the intended interpretation with the actual interpretation of the program. There has been much research into declarative logic program diagnosis [4, 8, 11, 13, 18, 19, 22]. A buggy logic program may exhibit many kinds of bug symptom. It may produce a wrong answer, fail to produce a correct answer, fall into looping, call procedures with wrong types of arguments, or violate the safe rule of negation as failure, etc. This paper is concerned with the first two kinds ....
....in I. An atom A is an incompletely covered atom of P w.r.t. I if an instance of A is an uncovered atom of P w.r.t. I. If there is an inconsistency or insufficiency symptom of P w.r.t. I then there is an inconsistent clause instance of P w.r.t. I or an incompletely covered atom of P w.r.t. I [8, 12, 13, 22]. Therefore, given an inconsistency or insufficiency symptom of P w.r.t. I, a declarative diagnoser for logic programs searches for an inconsistent clause instance of P w.r.t. I or an incompletely covered atom of P w.r.t. I. Many declarative diagnosers for logic programs have been developed. ....
[Article contains additional citation context not shown here]
G. Ferrand. Error Diagnosis in Logic Programming, an Adaptation of E.Y. Shapiro 's method. The Journal of Logic Programming, 4(3):177--198, 1987.
....and or complete w.r.t. I , or in the detection of incorrectness and or incompleteness symptoms, which would flag the existance of errors in P , and in which case a process of diagnosis should be started to locate such errors. There are many ways in which the validation task can be performed [3, 4, 16, 19, 38]. In general, direct application of the previous definitions is not practical for different reasons. First, providing the entire and exact intended semantics I may be a tedious task. Also, the actual semantics [ P ] of P may be an infinite object and it is often more convenient to use ....
G. Ferrand. Error diagnosis in logic programming. J. Logic Programming, 4:177--198, 1987.
....L P 0 logical consequences of a program P for any extension L P 0 of L P . This is the key property which makes this semantics adequate to model the correspondence between a program and its metainterpreted version. Note that the same property does not hold for other variable based semantics [8,15]. Theorem 2.6 Let P be a definite program and MS P be its L P S semantics. Then, for every extension L P 0 of L P , its L P 0 S semantics is equal to MS P . We can formalize the above property by introducing the notion of Sindependence, which is a straightforward adaptation of the property ....
G. Ferrand. Error Diagnosis in Logic Programming, an Adaptation of E.Y. Shapiro's Method. Journal of Logic Programming, 4:177--198, 1987.
....model operational properties. Examples are resultants, proof trees, finite failures, computed answer substitutions, partial answers, call patterns, types and groundness dependencies. Several ad hoc semantics modeling various observables have been defined. These include correct answer substitutions [8, 22], computed answer substitutions [21] partial answers [20] OR compositional correct answers [28] OR compositional computed answers [6] call patterns [27] proof trees [33, 34] and resultants [26] In addition there are several semantics specifically designed for static program analysis, which ....
G. Ferrand. Error Diagnosis in Logic Programming, an Adaptation of E. Y. Shapiro's Method. Journal of Logic Programming, 4:177--198, 1987.
....derived for most of them do not conform to the user intentions. We would like to point out that the diagnosis engine does not require performing any test computations of the diagnosed program. In contrast to the usual debugging techniques, like tracing or even declarative debugging [Sha82, Llo87, Fer87] it is not driven by error symptoms appearing in test computations. The diagnoser has only the access to the diagnosed program and to its specification constructed interactively by the user with the help of the results of static analysis. For finding the error it uses partial correctness proof ....
G. Ferrand. Error Diagnosis in Logic Programming, an Adaptation of E. Y. Shapiro's Method. Journal of Logic Programming, 4:177--198, 1987.
....When trying to understand the meaning of programs, when analyzing and transforming programs, this semantics cannot be taken as the reference semantics. This is the reason why the need for a different formal semantics was recognized by many authors, giving rise to several new definitions [30, 49, 113, 42]. The need for better semantics was also recognized in the case of semantics based abstract interpretation [94] and transformation [76] 1.4 Compositionality In addition to the problem related to modeling the computed answers observational equivalences, there exists another problem with the ....
....be affected. Therefore, let us denote by O L (P ) the denotation for a given language L. If LP is the language underlying program P , the following theorem shows the language independence property. Note that the same property does not hold for other variable based semantics, such as those in [30, 49]. Theorem 3.11 [85] If P is a positive program, then O LP (P ) O L 0 (P ) for any extension L 0 of LP . As we will show in section 7.4, this is the key property which makes the s semantics adequate to formalize metaprogramming with the non ground metalevel representation of object ....
[Article contains additional citation context not shown here]
G. Ferrand. Error Diagnosis in Logic Programming, an Adaptation of E.Y. Shapiro's Method. Journal of Logic Programming, 4:177--198, 1987.
....of programs (acceptable programs) We finally show that the same property can be proved for any program P , if the observable belongs to a suitable class of observables. 1 Introduction Abstract debugging [8] is a combination of three known techniques, i.e. algorithmic (declarative) debugging [21, 15, 19, 12], the s semantics approach to the definition of program denotations modeling various observable behaviors [13, 14, 16, 4, 3] and abstract interpretation [9, 10, 11] The debugging problem can formally be defined as follows. Let P be a program, P ] ff be the behavior of P w.r.t. the observable ....
....[ P ] ff . Declarative debugging is concerned with model theoretic properties rather than with the operational behavior. The specification is therefore the intended declarative semantics of the program, which is the least Herbrand model in [21, 19] and the set of atomic logical consequences in [15]. Abstract debugging is a generalization of declarative debugging, where we consider operational properties. An observable is any property which can be extracted from a goal computation, i.e. observables are abstractions of SLD trees . Examples of useful observables are computed answers , finite ....
[Article contains additional citation context not shown here]
G. Ferrand. Error Diagnosis in Logic Programming, an Adaptation of E. Y. Shapiro's Method. Journal of Logic Programming, 4:177--198, 1987.
....accurately and efficiently, for realistic programs. Thus, we would like to take advantage of standard program analysis tools, rather than developing new abstract procedures, such as concrete [4, 12, 13] or abstract [8, 9] diagnosers and debuggers, or using traditional proof based methods [2, 3, 11, 14, 26]. Figure 1 presents the general architecture of the type of debugging environment that we propose. 1 Hexagons represent the different tools involved and arrows indicate the communication paths among such tools. It is a design decision of the framework implementation that most of such ....
G. Ferrand. Error diagnosis in logic programming. J. Logic Programming, 4:177--198, 1987.
....a superset of the programmer s intention; it does not require that the lists are sorted. 3 Validation and Diagnosis in a Set Theoretic Framework This section summarizes well known notions related to program validation (see, e.g. Der93] diagnosis by proof, and declarative diagnosis [Sha82, Fer87] The problems found in these disciplines are summarized and discussed in a set theoretic framework for clarity. They can also be formulated in a lattice theoretic setting, but the set theoretic presentation simplifies the discussion. 3.1 Validation Validation aims at proving certain properties ....
G. Ferrand. Error diagnosis in logic programming. J. Logic Programming, 4:177--198, 1987.
....debug constraint logic programs is an important practical problem. Due to the complexity of the operational semantics of such programs, the information obtained by tracing the execution is difficult to understand. The alternative idea of declarative diagnosis, proposed for logic programs (see e.g. [19, 14, 17]) is applicable also in the case of constraint programs [16, 20] However, the declarative diagnosis algorithms assume that the user is able to answer queries whether or not certain intermediate results of the computation correspond to her expectations. In practice, such questions may be very ....
G. Ferrand. Error Diagnosis in Logic Programming. JLP vol. 4, 177--198, 1987.
....verified by users. This approach is suitable for debugging programs that can be well represented as a computation tree. Logic programs, such as those written in Prolog, are the best candidates. A few enhanced debugging systems for Prolog programs have been developed based on this approach. Per86, Fer87] Renner tried to apply this approach to locating faults in Pascal programs. Ren82] In order to verify the results of intermediate procedure calls mentioned above, an oracle is implemented to ask users the correctness of the return values of procedures in Pascal. Afterwards, the debugging system ....
G. Ferrand. Error diagnosis in logic programming, an adaptation of E. Y. Shapiro's method. Journal of Logic Programming, 4(3):177--198, September 1987.
....ff. The diagnosis consists of comparing [ P ] and I and determining the errors and the program components which are sources of errors, when [ P ] 6= I. The formulation is parametric w.r.t. the property considered in the specification I and in the actual behavior [ P ] Declarative diagnosis [13, 12, 10, 8] is concerned with model theoretic properties. The specification is the intended declarative semantics (the least Herbrand model in [13] and the set of atomic logical consequences in [8] Abstract diagnosis [4, 5] is a generalization of declarative diagnosis, where we consider operational ....
....considered in the specification I and in the actual behavior [ P ] Declarative diagnosis [13, 12, 10, 8] is concerned with model theoretic properties. The specification is the intended declarative semantics (the least Herbrand model in [13] and the set of atomic logical consequences in [8]) Abstract diagnosis [4, 5] is a generalization of declarative diagnosis, where we consider operational properties, i.e. observables (an observable is any property which can be extracted from a goal computation, i.e. observables are abstractions of SLDtrees) An example of a useful observable ....
[Article contains additional citation context not shown here]
G. Ferrand. Error Diagnosis in Logic Programming, an Adaptation of E. Y. Shapiro's Method. Journal of Logic Programming, 4:177--198, 1987.
....of partial automating of the oracle by means of assertions. The paper also includes extensions of the approach for some Prolog features. Implementation issues and preliminary experimental results are reported in Drabent et al. 1988b) Logical foundations of algorithmic debugging can be found in Ferrand (1987) and Lloyd (1987) Our basic notions, though slightly different, have been strongly influenced by these papers. For discussion of the differences see Section 6) 2 Drabent, Nadjm Tehrani and Ma luszy nski Every (pure) logic program P has a model (see e.g. Lloyd 1987) P is often considered to ....
....the insufficiency diagnoser is finite. Hence the whole computation is finite. 25.6 Comparisons with related work The types of assertions introduced originate from the analysis of the logical nature of answers given by the oracles of Shapiro. They also have their counterparts in the algorithms of Ferrand (1987) and Lloyd (1987) where the oracles are represented by the predicates valid and unsatisfiable (and to a certain extent impossible (Ferrand 1987) But the oracles have complete knowledge of the intended model while the assertions only approximate it. For example the assertions true and false ....
[Article contains additional citation context not shown here]
Ferrand, G., Error Diagnosis in Logic Programming, an Adaptation E.Y. Shapiro's Method, Journal of Logic Programming 1987(4): 177-198.
....intention; it does not require that the lists are sorted. 3 Validation and Diagnosis in a Set Theoretic Framework This section summarizes and reformulates in a uniform way well known notions related to program validation (see, e.g. 9,10] diagnosis by proof, and declarative diagnosis [19,12]. The problems found in these disciplines are summarized and discussed in a set theoretic framework for clarity. They can also be formulated in a lattice theoretic setting, but the set theoretic presentation simplifies the discussion. 4 Property Definition P is partially correct w.r.t. I [ P ] ....
G. Ferrand. Error diagnosis in logic programming. J. Logic Programming, 4:177--198, 1987.
No context found.
G. Ferrand (1987). Error diagnosis in logic programming, an adaption of E.Y. Shapiro's method, J. Logic Programming, 177--198.
No context found.
G. Ferrand. Error diagnosis in logic programming. J. Logic Programming, 4:177{ 198, 1987.
No context found.
Ferrand, G. Error diagnosis in logic programming, an adaptation of E.Y.Shapiro's method, Rapport de Recherche 375, INRIA, Rocquencourt, 78153 Le Chesnay, France
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