Refining specifications to logic programs
Data(s) |
01/01/1996
|
---|---|
Resumo |
The refinement calculus provides a framework for the stepwise development of imperative programs from specifications. In this paper we study a refinement calculus for deriving logic programs. Dealing with logic programs rather than imperative programs has the dual advantages that, due to the expressive power of logic programs, the final program is closer to the original specification, and each refinement step can achieve more. Together these reduce the overall number of derivation steps. We present a logic programming language extended with specification constructs (including general predicates, assertions, and types and invariants) to form a wide-spectrum language. General predicates allow non-executable properties to be included in specifications. Assertions, types and invariants make assumptions about the intended inputs of a procedure explicit, and can be used during refinement to optimize the constructed logic program. We provide a semantics for the extended logic programming language and derive a set of refinement laws. Finally we apply these to an example derivation. |
Identificador | |
Idioma(s) |
eng |
Publicador |
Spinger |
Palavras-Chave | #Computer Science, Theory & Methods #080203 Computational Logic and Formal Languages |
Tipo |
Conference Paper |