Foundations of logic programming
Foundations of logic programming
Logic programming: functions, relations, and equations
Logic programming: functions, relations, and equations
Error diagnosis in logic programming, an adaptation of E.Y. Shapiro's method
Journal of Logic Programming
Theoretical Computer Science - International Joint Conference on Theory and Practice of Software Development, P
Equivalences of logic programs
Foundations of deductive databases and logic programming
Declarative modeling of the operational behavior of logic languages
Theoretical Computer Science
New Generation Computing - Selected papers from the international workshop on algorithmic learning theory,1990
Kernel-LEAF: a logic plus functional language
Journal of Computer and System Sciences
Logic programming with functions and predicates: the language Babel
Journal of Logic Programming
Deductive and inductive synthesis of equational programs
Journal of Symbolic Computation - Special issue on automatic programming
A model-theoretic reconstruction of the operational semantics of logic programs
Information and Computation
Moded flat GHC and its message-oriented implementation technique
New Generation Computing
A compositional semantic basis for the analysis of equational Horn programs
ALP Proceedings of the fourth international conference on Algebraic and logic programming
ACM SIGPLAN Notices
Term rewriting and all that
Partial evaluation of functional logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automated Theorem-Proving for Theories with Simplifiers Commutativity, and Associativity
Journal of the ACM (JACM)
Termination of term rewriting using dependency pairs
Theoretical Computer Science - Trees in algebra and programming
Journal of the ACM (JACM)
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Algorithmic Program DeBugging
Kima: An Automated Error Correction System for Concurrent Logic Programs
Automated Software Engineering
ELAN from a rewriting logic point of view
Theoretical Computer Science - Rewriting logic and its applications
Design and Implementation of a Generic, Logic and Functional Programming Language
ESOP '86 Proceedings of the European Symposium on Programming
On the Operational Semantics of the Algebraic and Logic Programming Language LPG
Selected papers from the 10th Workshop on Specification of Abstract Data Types Joint with the 5th COMPASS Workshop on Recent Trends in Data Type Specification
AMAST '96 Proceedings of the 5th International Conference on Algebraic Methodology and Software Technology
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
Theoretical Foundations for the Declarative Debugging of Lazy Functional Logic Programs
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
Incremental Learning of Functional Logic Programs
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
Compiling Logic Programs with Equality
PLILP '90 Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming
A Debugging Model for Functional Logic Programs
PLILP '93 Proceedings of the 5th International Symposium on Programming Language Implementation and Logic Programming
On Narrowing Strategies for Partial Non-Strict Functions
TAPSOFT '91 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 2: Advances in Distributed Computing (ADC) and Colloquium on Combining Paradigms for Software Developmemnt (CCPSD)
Denotational Abstract Interpretation of Functional Logic Programs
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
TOY: A Multiparadigm Declarative System
RtA '99 Proceedings of the 10th International Conference on Rewriting Techniques and Applications
Program Specialization via Program Slicing
Selected Papers from the Internaltional Seminar on Partial Evaluation
CP '98 Proceedings of the 4th International Conference on Principles and Practice of Constraint Programming
Multiparadigm Logic Programming
Proceedings of the Third International Conference on Algebraic and Logic Programming
Proceedings of the Third International Conference on Algebraic and Logic Programming
Counterexamples to Completeness Results for Basic Narrowing (Extended Abstract)
Proceedings of the Third International Conference on Algebraic and Logic Programming
Proceedings of the Third International Conference on Algebraic and Logic Programming
A Strong Complete Schmema for Inductive Functional Logic Programming
ILP '99 Proceedings of the 9th International Workshop on Inductive Logic Programming
Canonical Forms and Unification
Proceedings of the 5th Conference on Automated Deduction
On Comleteness of Narrowing Strategies
CAAP '88 Proceedings of the 13th Colloquium on Trees in Algebra and Programming
Sufficient Conditions for Modular Termination of Conditional Term Rewriting Systems
CTRS '92 Proceedings of the Third International Workshop on Conditional Term Rewriting Systems
LSE Narrowing for Decreasing Conditional Term Rewrite Systems
CTRS '94 Proceedings of the 4th International Workshop on Conditional and Typed Rewriting Systems
Analyses of Inconsistency for Incremental Equational Logic Programming
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
ViMer: a visual debugger for mercury
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Higher-order narrowing with definitional trees
Journal of Functional Programming
Rules + strategies for transforming lazy functional logic programs
Theoretical Computer Science
Higher-Order and Symbolic Computation
A lightweight interactive debugger for haskell
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Call pattern analysis for functional logic programs
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Effectively Checking the Finite Variant Property
RTA '08 Proceedings of the 19th international conference on Rewriting Techniques and Applications
Termination of Narrowing Using Dependency Pairs
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Analysis of Rewrite-Based Access Control Policies
Electronic Notes in Theoretical Computer Science (ENTCS)
A Declarative Debugger for Maude Functional Modules
Electronic Notes in Theoretical Computer Science (ENTCS)
Variant Narrowing and Equational Unification
Electronic Notes in Theoretical Computer Science (ENTCS)
Unification and Narrowing in Maude 2.4
RTA '09 Proceedings of the 20th International Conference on Rewriting Techniques and Applications
Electronic Notes in Theoretical Computer Science (ENTCS)
Communications of the ACM
Abstract diagnosis of functional programs
LOPSTR'02 Proceedings of the 12th international conference on Logic based program synthesis and transformation
Correction of functional logic programs
ESOP'03 Proceedings of the 12th European conference on Programming
Multi-paradigm declarative languages
ICLP'07 Proceedings of the 23rd international conference on Logic programming
Declarative diagnosis of missing answers in constraint functional-logic programming
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
All about maude - a high-performance logical framework: how to specify, program and verify systems in rewriting logic
A compact fixpoint semantics for term rewriting systems
Theoretical Computer Science
Transformation and debugging of functional logic programs
A 25-year perspective on logic programming
Abstract diagnosis of first order functional logic programs
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
Abstract diagnosis of first order functional logic programs
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
A survey on algorithmic debugging strategies
Advances in Engineering Software
Hi-index | 5.23 |
We present a generic scheme for the declarative debugging of programs that are written in rewriting-based languages that are equipped with narrowing. Our aim is to provide an integrated development environment in which it is possible to debug a program and then correct it automatically. Our methodology is based on the combination (in a single framework) of a semantics-based diagnoser that identifies those parts of the code that contain errors and an inductive learner that tries to repair them, once the bugs have been located in the program. We develop our methodology in several steps. First, we associate with our programs a semantics that is based on a (continuous) immediate consequence operator, T"R, which models the answers computed by narrowing and is parametric w.r.t. the evaluation strategy, which can be eager or lazy. Then, we show that, given the intended specification of a program R, it is possible to check the correctness of R by a single step of T"R. In order to develop an effective debugging method, we approximate the computed answers semantics of R and derive a finitely terminating bottom-up abstract diagnosis method, which can be used statically. Finally, a bug-correction program synthesis methodology attempts to correct the erroneous components of the wrong code. We propose a hybrid, top-down (unfolding-based) as well as bottom-up (induction-based), correction approach that is driven by a set of evidence examples which are automatically produced as an outcome by the diagnoser. The resulting program is proven to be correct and complete w.r.t. the considered example sets. Our debugging framework does not require the user to provide error symptoms in advance or to answer difficult questions concerning program correctness. An implementation of our debugging system has been undertaken which demonstrates the workability of our approach.