Kima: An automated error correction system for concurrent logic programs

Yasuhiro Ajiro, Kazunori Ueda

    Research output: Contribution to journalArticle

    9 Citations (Scopus)

    Abstract

    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.

    Original languageEnglish
    Pages (from-to)67-94
    Number of pages28
    JournalAutomated Software Engineering
    Volume9
    Issue number1
    DOIs
    Publication statusPublished - 2002 Jan

    Fingerprint

    Error correction
    Constraint satisfaction problems
    Network protocols
    Experiments

    Keywords

    • Concurrent logic programming
    • Constraint satisfaction
    • Debugging
    • Static analysis
    • Types

    ASJC Scopus subject areas

    • Software

    Cite this

    Kima : An automated error correction system for concurrent logic programs. / Ajiro, Yasuhiro; Ueda, Kazunori.

    In: Automated Software Engineering, Vol. 9, No. 1, 01.2002, p. 67-94.

    Research output: Contribution to journalArticle

    @article{9ad08f6c85f343ba8a6e3c211743cb92,
    title = "Kima: An automated error correction system for concurrent logic programs",
    abstract = "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.",
    keywords = "Concurrent logic programming, Constraint satisfaction, Debugging, Static analysis, Types",
    author = "Yasuhiro Ajiro and Kazunori Ueda",
    year = "2002",
    month = "1",
    doi = "10.1023/A:1013232219911",
    language = "English",
    volume = "9",
    pages = "67--94",
    journal = "Automated Software Engineering",
    issn = "0928-8910",
    publisher = "Springer Netherlands",
    number = "1",

    }

    TY - JOUR

    T1 - Kima

    T2 - An automated error correction system for concurrent logic programs

    AU - Ajiro, Yasuhiro

    AU - Ueda, Kazunori

    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

    VL - 9

    SP - 67

    EP - 94

    JO - Automated Software Engineering

    JF - Automated Software Engineering

    SN - 0928-8910

    IS - 1

    ER -