Abstract | ||
---|---|---|
The refinement calculus for logic programs consists of a wide-spectrum language and a notion of refinement that can be used to develop programs from specifications. In a refinement, the refined program must return the same set of answers as the original program, because the meaning of a logic program is defined in terms of all the answers computed by the program. “Don't know” non-determinism is supported in the language by allowing more than one answer. In the traditional refinement calculus for imperative programs, there is another form of non-determinism, called “don't care” (or demonic) non-determinism, which allows non-determinism to be eliminated during refinement. Thus, non-deterministic specifications can be refined to deterministic implementations. |
Year | DOI | Venue |
---|---|---|
2002 | 10.1016/S1571-0661(04)00308-1 | Electronic Notes in Theoretical Computer Science |
Keywords | Field | DocType |
k | Logic program,Programming language,Refinement calculus,Computer science,Determinism,Theoretical computer science,Implementation,Operator (computer programming),Refinement,Semantics | Journal |
Volume | ISSN | Citations |
61 | 1571-0661 | 2 |
PageRank | References | Authors |
0.38 | 1 | 4 |
Name | Order | Citations | PageRank |
---|---|---|---|
David Hemer | 1 | 19 | 2.86 |
Robert Colvin | 2 | 68 | 8.67 |
Ian Hayes | 3 | 21 | 2.71 |
Paul Strooper | 4 | 701 | 68.70 |