Logical Debugging

A methodology for reasoning about logic programs and their specifications is applied to program debugging as well as program synthesis. Specifications in the form of an executable model of the desired program are used to generate test cases, locate bugs, and guide bug correction. Both deductive and inductive inference techniques are employed for bug correction and synthesis. The behavior of the automated debugger is demonstrated through several examples.

[1]  Luís Moniz Pereira Rational Debugging in Logic Programming , 1986, ICLP.

[2]  Elliot Soloway,et al.  PROUST: Knowledge-Based Program Understanding , 1984, IEEE Transactions on Software Engineering.

[3]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[4]  Gerald Jay Sussman,et al.  A Computer Model of Skill Acquisition , 1975 .

[5]  Lee Naish Declarative Debugging of Lazy Functional Programs , 1992, LPE.

[6]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[7]  Henrik Nilsson,et al.  Algorithmic Debugging for Lazy Functional Languages , 1994, J. Funct. Program..

[8]  Luís Moniz Pereira,et al.  A Framework for Prolog Debugging , 1988, ICLP/SLP.

[9]  Scott Alexander Renner Logical error diagnosis , 1990 .

[10]  Nachum Dershowitz,et al.  An Implementation of Narrowing , 1989, J. Log. Program..

[11]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[12]  Paul Brna,et al.  A framework for the Principled Debugging of Prolog Programs: How to Debug Non-Terminating Programs , 1990, ALPUK.

[13]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[14]  Robert A. Kowalski,et al.  The Semantics of Predicate Logic as a Programming Language , 1976, JACM.

[15]  Donald W. Loveland,et al.  Automated theorem proving: a logical basis , 1978, Fundamental studies in computer science.

[16]  Nachum Dershowitz,et al.  Debugging logic programs using executable specifications , 1988 .

[17]  Laurent Fribourg,et al.  Test sets generation from algebraic specifications using logic programming , 1986, J. Syst. Softw..

[18]  쇼오지 오오가와,et al.  Automatic programming system , 1986 .

[19]  Zohar Manna,et al.  Logical analysis of programs , 1976, CACM.

[20]  William F. Clocksin,et al.  Programming in Prolog , 1987, Springer Berlin Heidelberg.

[21]  Gregory R. Ruth Intelligent Program Analysis , 1976, Artif. Intell..

[22]  William R. Murray,et al.  Automatic program debugging for intelligent tutoring systems , 1987, Comput. Intell..

[23]  Simin Nadjm-Tehrani,et al.  Algorithmic Debugging with Assertions , 1989, META.

[24]  Koichi Furukawa,et al.  The Role of Logic Programming in the Fifth Generation Computer Project , 1986, ICLP.

[25]  David A. Plaisted An Efficient Bug Location Algorithm , 1984, ICLP.

[26]  Jerome A. Feldman Automatic programming. , 1972 .

[27]  David R. Barstow,et al.  An automatic programming system to support an experimental science , 1982, ICSE '82.

[28]  Stuart C. Shapiro,et al.  Encyclopedia of artificial intelligence, vols. 1 and 2 (2nd ed.) , 1992 .

[29]  Christopher J. Hogger,et al.  Derivation of Logic Programs , 1981, JACM.

[30]  Jean-Pierre H. Laurent,et al.  LAURA, A System to Debug Student Programs , 1980, Artif. Intell..

[31]  Lawrence Yelowitz,et al.  Observations of Fallibility in Applications of Modern Programming Methodologies , 1976, IEEE Transactions on Software Engineering.

[32]  Krzysztof R. Apt,et al.  Contributions to the Theory of Logic Programming , 1982, JACM.

[33]  Karl N. Levitt,et al.  Reasoning about programs , 1973, Artif. Intell..

[34]  Alan W. Biermann,et al.  Approaches to Automatic Programming , 1976, Adv. Comput..

[35]  Douglas R. Smith Derived Preconditions and Their Use in Program Synthesis , 1982, CADE.

[36]  Robert A. Kowalski,et al.  Predicate Logic as Programming Language , 1974, IFIP Congress.

[37]  Nachum Dershowitz The evolution of programs , 1983, Progress in computer science.

[38]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[39]  Nachum Dershowitz,et al.  Synthetic Programming , 1985, Artificial Intelligence.

[40]  Mireille Ducassé Opium - An Advanced Debugging System , 1992, Logic Programming Summer School.

[41]  Nachum Dershowitz,et al.  An Implementation of Narrowing: The RITE Way , 1986, SLP.

[42]  R. Kowalski,et al.  The relation between logic programming and logic specification , 1984, Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences.

[43]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[44]  Gérard Ferrand Error Diagnosis in Logic Programming, an Adaption of E. Y. Shapiro's Method , 1987, J. Log. Program..

[45]  Ehud Shapiro,et al.  Inductive Inference of Theories from Facts , 1991, Computational Logic - Essays in Honor of Alan Robinson.

[46]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[47]  Stephen Muggleton,et al.  Efficient Induction of Logic Programs , 1990, ALT.

[48]  Zohar Manna,et al.  Towards automatic debugging of programs , 1975, Reliable Software.

[49]  José Meseguer,et al.  EQLOG: Equality, Types, and Generic Modules For Logic Programming , 1986, Logic Programming: Functions, Relations, and Equations.

[50]  John Darlington,et al.  The Unification of Functional and Logic Languages , 1986, Logic Programming: Functions, Relations, and Equations.

[51]  Rudolph E. Seviora Knowledge-Based Program Debugging Systems , 1987, IEEE Software.

[52]  Zohar Manna,et al.  A Deductive Approach to Program Synthesis , 1979, TOPL.

[53]  Matthew M. Huntbach An Improvised Version of Shapiro's Model Inference System , 1986, ICLP.