Optimizing almost-tail-recursive PROLOG programs
Proc. of a conference on Functional programming languages and computer architecture
Unfold/fold program transformations
Algebraic methods in semantics
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Journal of Logic Programming
The foundation of a generic theorem prover
Journal of Automated Reasoning
On the declarative and procedual semantics of logic programs
Journal of Automated Reasoning
First order compiler: A deterministic logic program synthesis algorithm
Journal of Symbolic Computation
Logic programming: systematic program development
Logic programming: systematic program development
Logic programming
CADE-10 Proceedings of the tenth international conference on Automated deduction
KIDS: A Semiautomatic Program Development System
IEEE Transactions on Software Engineering
Partial evaluation in logic programming
Journal of Logic Programming
Unfold/fold transformation of stratified programs
Theoretical Computer Science
Communications of the ACM
A transformation system for deductive database modules with perfect model semantics
Theoretical Computer Science
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Tutorial on specialisation of logic programs
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Mixtus: an automatic partial evaluator for full Prolog
New Generation Computing
Logic program synthesis from first-order logic specifications
FGCS'921 Selected papers of the conference on Fifth generation computer systems
Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs
PLILP '91 Selected papers of the symposium on Programming language implementation and logic programming
Rules and strategies for transforming functional and logic programs
ACM Computing Surveys (CSUR)
Transformations of CLP modules
Theoretical Computer Science
Unfold/fold transformations for disjunctive logic programs
Information Processing Letters
Reducing nondeterminism while specializing logic programs
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Some achievements and prospects in partial deduction
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Transforming constraint logic programs
Theoretical Computer Science
Program specialisation and abstract interpretation reconciled
JICSLP'98 Proceedings of the 1998 joint international conference and symposium on Logic programming
A Machine-Oriented Logic Based on the Resolution Principle
Journal of the ACM (JACM)
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Journal of the ACM (JACM)
Using regular approximations for generalisation during partial evalution
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
A Deductive Approach to Program Synthesis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Logic for Problem Solving
A Discipline of Programming
Transforming Normal Programs by Replacement
META-92 Proceedings of the 3rd International Workshop on Meta-Programming in Logic
Logic for Component-Based Software Development
Computational Logic: Logic Programming and Beyond, Essays in Honour of Robert A. Kowalski, Part I
Beyond Tamaki-Sato Style Unfold/Fold Transformations for Normal Logic Programs
ASIAN '99 Proceedings of the 5th Asian Computing Science Conference on Advances in Computing Science
TACAS '99 Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems
Verification of Parameterized Systems Using Logic Program Transformations
TACAS '00 Proceedings of the 6th International Conference on Tools and Algorithms for Construction and Analysis of Systems: Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 2000
Unfold/Fold Transformations of CCP Programs
CONCUR '98 Proceedings of the 9th International Conference on Concurrency Theory
Infinite State Model Checking by Abstract Interpretation and Program Specialisation
LOPSTR'99 Selected papers from the 9th International Workshop on Logic Programming Synthesis and Transformation
Constraint Logic Programming for Local and Symbolic Model-Checking
CL '00 Proceedings of the First International Conference on Computational Logic
Perfect Model Checking via Unfold/Fold Transformations
CL '00 Proceedings of the First International Conference on Computational Logic
Efficient Model Checking Using Tabled Resolution
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Automated Inductive Verification of Parameterized Protocols
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
Predicate logic: a calculus for deriving programs
IJCAI'77 Proceedings of the 5th international joint conference on Artificial intelligence - Volume 1
Combining logic programs and monadic second order logics by program transformation
LOPSTR'02 Proceedings of the 12th international conference on Logic based program synthesis and transformation
Hi-index | 0.00 |
In a seminal paper [38] 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.