Data di Pubblicazione:
2002
Abstract:
In a seminal paper Prof. Robert Kowalski
advocated the paradigm Algorithm = Logic + Control
which was intended to characterize program executions. Here we want
to illustrate the corresponding paradigm Program Derivation
= Rules + Strategies which is intended to characterize
program derivations, rather than executions. During program execution,
the Logic component guarantees that the computed results are
correct, that is, they are true facts in the intended model of the
given program, while the Control component ensures that those
facts are derived in an efficient way. Likewise, during program derivation,
the Rules component guarantees that the derived programs are
correct and the Strategies component ensures that the derived
programs are efficient.
In this chapter we will consider the case of logic programs with locally
stratified negation and we will focus on the following three important
methodologies for program derivation: program transformation, program
synthesis, and program verification. Based upon the Rules +
Strategies approach, we will propose a unified method for applying
these three programming methodologies. In particular, we will present:
(i) a set of rules for program transformation which preserve the perfect
model semantics and (ii) a general strategy for applying the transformation
rules. We will also show that we can synthesize correct and efficient
programs from first order specifications by: (i) converting an arbitrary
first order formula into a logic program with locally stratified negation
by using a variant of the Lloyd-Topor transformation, and then (ii)
applying our transformation rules according to our general strategy.
Finally, we will demonstrate that the rules and the strategy for program
transformation and program synthesis can also be used for program
verification, that is, for proving first order properties of systems
described by logic programs with locally stratified negation.
Tipologia CRIS:
01.01 Articolo in rivista
Keywords:
program transformati; program synthesis; program verification; logic programming
Elenco autori:
Pettorossi, Alberto; Proietti, Maurizio
Link alla scheda completa: