TY - JOUR
T1 - Kima
T2 - An automated error correction system for concurrent logic programs
AU - Ajiro, Yasuhiro
AU - Ueda, Kazunori
N1 - Copyright:
Copyright 2008 Elsevier B.V., All rights reserved.
PY - 2002/1
Y1 - 2002/1
N2 - 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.
AB - 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.
KW - Concurrent logic programming
KW - Constraint satisfaction
KW - Debugging
KW - Static analysis
KW - Types
UR - http://www.scopus.com/inward/record.url?scp=0036167063&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0036167063&partnerID=8YFLogxK
U2 - 10.1023/A:1013232219911
DO - 10.1023/A:1013232219911
M3 - Article
AN - SCOPUS:0036167063
SN - 0928-8910
VL - 9
SP - 67
EP - 94
JO - Automated Software Engineering
JF - Automated Software Engineering
IS - 1
ER -