Login: A logic programming language with built-in inheritance
Journal of Logic Programming
A theory of diagnosis from first principles
Artificial Intelligence
A new implementation technique for flat GHC
Logic programming
A modification support system—automatic correction of side—effects caused by type modifications
CSC '90 Proceedings of the 1990 ACM annual conference on Cooperation
Design of the kernel language for the parallel inference machine
The Computer Journal - On concurrent logic programming
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Explaining type errors in polymorphic languages
ACM Letters on Programming Languages and Systems (LOPLAS)
Soft typing with conditional types
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Moded flat GHC and its message-oriented implementation technique
New Generation Computing
Science of Computer Programming
Finding the source of type errors
POPL '86 Proceedings of the 13th 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
Set Constraints and Set-Based Analysis
PPCP '94 Proceedings of the Second International Workshop on Principles and Practice of Constraint Programming
Experiences with Strong Moding in Concurrent Logic/Constraint Programming
PSLS '95 Proceedings of the International Workshop on Parallel Symbolic Languages and Systems
A Portable and Efficient Implementation of KL1
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Combined Static and Dynamic Assertion-Based Debugging of Constraint Logic Programs
LOPSTR'99 Selected papers from the 9th International Workshop on Logic Programming Synthesis and Transformation
Towards Declarative Debugging of Concurrent Constraint Programs
AADEBUG '93 Proceedings of the First International Workshop on Automated and Algorithmic Debugging
Generalising Techniques for Type Debugging
SFP '99 Selected papers from the 1st Scottish Functional Programming Workshop (SFP99)
A visualisation of polymorphic type checking
Journal of Functional Programming
Kima: An Automated Error Correction System for Concurrent Logic Programs
Automated Software Engineering
Resource-Passing Concurrent Programming
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
An integrated framework for the diagnosis and correction of rule-based programs
Theoretical Computer Science
Transformation and debugging of functional logic programs
A 25-year perspective on logic programming
Hi-index | 0.01 |
We have implemented Kima, an automated error correction system for concurrent logic programs. Kima corrects near-misses such as wrong variable occurrences in the absence of explicit declarations of program properties.Strong moding/typing and constraint-based analysis are turning out to play fundamental roles in debugging concurrent logic programs as well as in establishing the consistency of communication protocols and data types. Mode/type analysis of Moded Flat GHC is a constraint satisfaction problem with many simple mode/type constraints, and can be solved efficiently. We proposed a simple and efficient technique which, given a non-well-moded/typed program, diagnoses the “reasons” of inconsistency by finding minimal inconsistent subsets of mode/type constraints. Since each constraint keeps track of the symbol occurrence in the program, a minimal subset also tells possible sources of program errors.Kima realizes automated correction by replacing symbol occurrences around the possible sources and recalculating modes and types of the rewritten programs systematically. As long as bugs are near-misses, Kima proposes a rather small number of alternatives that include an intended program. Search space is kept small because the minimal subset confines possible sources of errors in advance. This paper presents the basic algorithm and various optimization techniques implemented in Kima, and then discusses its effectiveness based on quantitative experiments.