In logic programming, dynamic scheduling refers to a situation where the selection of the atom in each resolution (computation) step is determined at runtime, as opposed to a fixed selection rule such as the left-to-right one of Prolog. This has applications e.g. in parallel programming. A mechanism to control dynamic scheduling is provided in existing languages in the form of delay declarations. Input-consuming derivations were introduced to describe dynamic scheduling while abstracting from the technical details. In this paper, we first formalize the relationship between delay declarations and input-consuming derivations, showing in many cases a one-to-one correspondence. Then, we define a model-theoretic semantics for input-consuming derivations of simply-moded programs. Finally, for this class of programs, we provide a necessary and sufficient criterion for termination.
|Title of host publication||Programming languages and systems : proceedings 10th European symposium on programming, ESOP 2001, held as part of the joint European conferences on theory and practice of software, ETAPS 2001, Genova, Italy, april 2-6, 2001|
|Publication status||Published - 2001|
|Name||Lecture Notes in Computer Science|
Bossi, A., Etalle, S., Rossi, S., & Smaus, J. G. (2001). Semantics and termination of simply-moded logic programs with dynamic scheduling. In D. Sands (Ed.), Programming languages and systems : proceedings 10th European symposium on programming, ESOP 2001, held as part of the joint European conferences on theory and practice of software, ETAPS 2001, Genova, Italy, april 2-6, 2001 (pp. 402-416). (Lecture Notes in Computer Science; Vol. 2028). Springer. https://doi.org/10.1007/3-540-45309-1_27