Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Stepwise debugging of answer-set programs
Technische Universität Wien, Institut für Informationssysteme 184/3, Vienna, Austria.ORCID iD: 0000-0002-9902-7662
Universität Leipzig, Institut für Informatik, Leipzig, Germany.
Technische Universität Wien, Institut für Informationssysteme 184/3, Vienna, Austria.
2018 (English)In: Theory and Practice of Logic Programming, ISSN 1471-0684, E-ISSN 1475-3081, Vol. 18, no 1, p. 30-80Article in journal (Refereed) Published
Abstract [en]

We introduce a stepping methodology for answer-set programming (ASP) that allows for debugging answer-set programs and is based on the stepwise application of rules. Similar to debugging in imperative languages, where the behaviour of a program is observed during a step-by-step execution, stepping for ASP allows for observing the effects that rule applications have in the computation of an answer set. While the approach is inspired from debugging in imperative programming, it is conceptually different to stepping in other paradigms due to non-determinism and declarativity that are inherent to ASP. In particular, unlike statements in an imperative program that are executed following a strict control flow, there is no predetermined order in which to consider rules in ASP during a computation. In our approach, the user is free to decide which rule to consider active in the next step following his or her intuition. This way, one can focus on interesting parts of the debugging search space. Bugs are detected during stepping by revealing differences between the actual semantics of the program and the expectations of the user. As a solid formal basis for stepping, we develop a framework of computations for answer-set programs. For fully supporting different solver languages, we build our framework on an abstract ASP language that is sufficiently general to capture different solver languages. To this end, we make use of abstract constraints as an established abstraction for popular language constructs such as aggregates. Stepping has been implemented in SeaLion, an integrated development environment for ASP. We illustrate stepping using an example scenario and discuss the stepping plugin of SeaLion. Moreover, we elaborate on methodological aspects and the embedding of stepping in the ASP development process.

Place, publisher, year, edition, pages
Cambridge University Press, 2018. Vol. 18, no 1, p. 30-80
Keywords [en]
answer-set programming, debugging, program analysis, stepping, Application programs, Computer debugging, Knowledge representation, Logic programming, Semantics, Answer set programming, Imperative languages, Imperative programming, Integrated development environment, Language constructs, Methodological aspects, Program debugging
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:hj:diva-63563DOI: 10.1017/S1471068417000217ISI: 000423765600002Scopus ID: 2-s2.0-85032199819OAI: oai:DiVA.org:hj-63563DiVA, id: diva2:1838524
Available from: 2024-02-16 Created: 2024-02-16 Last updated: 2024-02-16Bibliographically approved

Open Access in DiVA

No full text in DiVA

Other links

Publisher's full textScopus

Authority records

Oetsch, Johannes

Search in DiVA

By author/editor
Oetsch, Johannes
In the same journal
Theory and Practice of Logic Programming
Computer Sciences

Search outside of DiVA

GoogleGoogle Scholar

doi
urn-nbn

Altmetric score

doi
urn-nbn
Total: 6 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf