Note: The first version of this paper was submitted for publication in the last millennium. Successive versions have spent many years with reviewers, plus I have taken substantial time revising technical and sylistic aspects, out-staying the terms of several editors and even a journal. For years the paper seemed well and truly floundered. But finally it has been transformed into success, accepted to appear in Theory and Practice of Logic Programming (TPLP).

Transforming floundering into success

Lee Naish

We show how logic programs with "delays" can be transformed to programs without delays in a way which preserves information concerning floundering (also known as deadlock). This allows a declarative (model-theoretic), bottom-up or goal independent approach to be used for analysis and debugging of properties related to floundering. We rely on some previously introduced restrictions on delay primitives and a key observation which allows properties such as groundness to be analysed by approximating the (ground) success set.

Keywords: Floundering, delays, coroutining, program analysis, abstract interpretation, program transformation, declarative debugging