Declarative Diagnosis of Floundering
Lee Naish

TL;DR
This paper presents a declarative debugging approach for diagnosing floundering in logic programs with delay primitives, simplifying fault detection by abstracting away execution complexities.
Contribution
It introduces a novel declarative debugging method specifically designed to identify floundering issues caused by delays in logic programming, enhancing debugging effectiveness.
Findings
Effective diagnosis of floundering without detailed execution analysis
Declarative debugging isolates faults from complex interleaving
Applicable to logic programs with delays and constraints
Abstract
Many logic programming languages have delay primitives which allow coroutining. This introduces a class of bug symptoms -- computations can flounder when they are intended to succeed or finitely fail. For concurrent logic programs this is normally called deadlock. Similarly, constraint logic programs can fail to invoke certain constraint solvers because variables are insufficiently instantiated or constrained. Diagnosing such faults has received relatively little attention to date. Since delay primitives affect the procedural but not the declarative view of programs, it may be expected that debugging would have to consider the often complex details of interleaved execution. However, recent work on semantics has suggested an alternative approach. In this paper we show how the declarative debugging paradigm can be used to diagnose unexpected floundering, insulating the user from the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsOil Spill Detection and Mitigation
