Suspension analyses for concurrent logic programs
- 1 May 1994
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 16 (3) , 649-686
- https://doi.org/10.1145/177492.177656
Abstract
Concurrent logic languages specify reactive systems which consist of collections of communicating processes. The presence of unintended suspended computations is a common programming error which is difficult to detect using standard debugging and testing techniques. We develop a number of analyses, based on abstract interpretation, which succeed if a program is definitely suspension free. If an analysis fails, the program may, or may not, be suspension free. Examples demonstrate that the analyses are practically useful. They are conceptually simple and easy to justify because they are based directly on the transition system semantics of concurrent logic programs. A naive analysis must consider all scheduling policies . However, it is proven that for our analyses it suffices to consider only one scheduling policy, allowing for efficient implementation.Keywords
This publication has 8 references indexed in Scilit:
- On derived dependencies and connected databasesThe Journal of Logic Programming, 1991
- RECOGNIZING NON-FLOUNDERING LOGIC PROGRAMS AND GOALSInternational Journal of Foundations of Computer Science, 1990
- The languages FCP(:) and FCP(:,?)New Generation Computing, 1990
- The family of concurrent logic programming languagesACM Computing Surveys, 1989
- Foundations of Logic ProgrammingPublished by Springer Nature ,1987
- Logical relations and the typed λ-calculusInformation and Control, 1985
- Heterogeneous SLD resolutionThe Journal of Logic Programming, 1984
- Enumeration of success patterns in logic programsTheoretical Computer Science, 1984