English

Declarative Diagnosis of Floundering

Programming Languages 2007-11-06 v1 Software Engineering

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 complexities of the execution. Keywords: logic programming, coroutining, delay, debugging, floundering, deadlock, constraints

Keywords

Cite

@article{arxiv.0711.0048,
  title  = {Declarative Diagnosis of Floundering},
  author = {Lee Naish},
  journal= {arXiv preprint arXiv:0711.0048},
  year   = {2007}
}

Comments

12 pages, 0 figures, uses llncs.sty In Proceedings of the 17th Workshop on Logic-based methods in Programming Environments, Eds. Patricia Hill and Wim Vanhoof, pp 48-60, September 2007, Porto, Portugal

R2 v1 2026-06-21T09:38:38.368Z