Transformations of logic programs with goals as arguments

We consider a simple extension of logic programming where variables may range over goals and goals may be arguments of predicates. In this language we can write logic programs which use goals as data. We give practical evidence that, by exploiting this capability when transforming programs, we can i...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Theory and practice of logic programming Ročník 4; číslo 4; s. 495 - 537
Hlavní autoři: PETTOROSSI, ALBERTO, PROIETTI, MAURIZIO
Médium: Journal Article
Jazyk:angličtina
Vydáno: Cambridge, UK Cambridge University Press 01.07.2004
Témata:
ISSN:1471-0684, 1475-3081
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:We consider a simple extension of logic programming where variables may range over goals and goals may be arguments of predicates. In this language we can write logic programs which use goals as data. We give practical evidence that, by exploiting this capability when transforming programs, we can improve program efficiency. We propose a set of program transformation rules which extend the familiar unfolding and folding rules and allow us to manipulate clauses with goals which occur as arguments of predicates. In order to prove the correctness of these transformation rules, we formally define the operational semantics of our extended logic programming language. This semantics is a simple variant of LD-resolution. When suitable conditions are satisfied this semantics agrees with LD-resolution and, thus, the programs written in our extended language can be run by ordinary Prolog systems. Our transformation rules are shown to preserve the operational semantics and termination.
Bibliografie:SourceType-Scholarly Journals-1
ObjectType-Feature-1
content type line 14
ISSN:1471-0684
1475-3081
DOI:10.1017/S147106840400198X