
arXiv: cs/0307022
handle: 20.500.14243/169428 , 2108/32843
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.
FOS: Computer and information sciences, program transformation, Computer Science - Logic in Computer Science, Continuations; Higher order logic programming; Program transformation; Unfold/fold transformation rules, Logic programming, D.1.2;D.1.6;I.2.2;F.3.1, continuations, Higher order logic programming, unfold/fold transformation rules, D.1.2, I.2.2, Computer Science - Programming Languages, D.1.6, higher order logic programming, Continuation, 005, Settore ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI, Logic in Computer Science (cs.LO), Unfold/fold transformation rules, Program transformation, F.3.1, higher-order logic programming, Programming Languages (cs.PL)
FOS: Computer and information sciences, program transformation, Computer Science - Logic in Computer Science, Continuations; Higher order logic programming; Program transformation; Unfold/fold transformation rules, Logic programming, D.1.2;D.1.6;I.2.2;F.3.1, continuations, Higher order logic programming, unfold/fold transformation rules, D.1.2, I.2.2, Computer Science - Programming Languages, D.1.6, higher order logic programming, Continuation, 005, Settore ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI, Logic in Computer Science (cs.LO), Unfold/fold transformation rules, Program transformation, F.3.1, higher-order logic programming, Programming Languages (cs.PL)
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 3 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
