A Theory of Logic Program Specialization and Generalization for Dealing with Input Data Properties

  title={A Theory of Logic Program Specialization and Generalization for Dealing with Input Data Properties},
  author={Alberto Pettorossi and Maurizio Proietti},
  booktitle={Dagstuhl Seminar on Partial Evaluation},
We address the problem of specializing logic programs w.r.t. the contexts where they are used. We assume that these contexts are specified by means of computable properties of the input data. We describe a general method by which, given a program P, we can derive a specialized program P1 such that P and P1 are equivalent w.r.t. every input data satisfying a given property. Our method extends the techniques for partial evaluation of logic programs based on Lloyd and Shepherdson's approach, where… 

Rules and Strategies for Contextual Specialization of Constraint Logic Programs

Automated strategies for specializing constraint logic programs

This paper proposes a solution to the problem of specializing constraint logic programs w.r.t. constrained queries by adapting to the framework various techniques developed in the field of constraint programming, partial evaluation, and abstract interpretation.

A framework for the integration of partial evaluation and abstract interpretation of logic programs

A novel specialization framework, along with generic correctness results for computed answers and finite failure under SLD-resolution, is developed and can be used to extend existing logic program specialization methods, such as partial deduction and conjunctive partial deduction, to make use of more refined abstract domains.

Abstract specialization and its applications

A unifying view of the different specialization techniques used in CiaoPP is presented and their potential applications are discussed by means of examples, which include program parallelization, optimization of dynamic scheduling (concurrency), and integration of partial evaluation techniques.

Removing Redundant Arguments of Functions

This work provides a method for the analysis and elimination of redundant arguments in term rewriting systems as a model for the programs that can be written in more sophisticated languages and proposes an erasure procedure which may avoid wasteful computations while still preserving the semantics.

A programming language interpreter system based on equivalent transformation

  • H. KoikeK. AkamaH. Mabuchi
  • Computer Science
    2005 IEEE International Conference on Intelligent Engineering Systems, 2005. INES '05.
  • 2005
The ETI is presented, which is a programming language to describe programs based on the equivalent transformation (ET) computation model, and a Programming language interpreter system ETI which can correctly and efficiently solve problems which are difficult to solve by conventional approaches.

Specialising Logic Programs with Respect to Call?Post Specifications

A program specialisation method is presented which, given a call/post specification, transforms a logic program into a weakly call-correct one satisfying the post-condition.

Program specialization via algorithmic unfold/fold transformations

Permission to make digital/hard copy of part or all of this work for personal or classroom use is granted without fee provided that the copies are not made or distributed for profit or commercial

Specialization and its Applications

Specialization and its Applications Germán Puebla Department of Computer Science Technical University of Madrid (UPM), Spain german@fi.upm.es Manuel Hermenegildo Department of Computer Science

Developing correct and efficient logic programs by transformation

The complex process of deriving programs from specifications is often divided into the following three steps: (i) the derivation of formal specifications from the informal ones; (ii) the validation



A method for specializing logic programs

A specialization method for logic programs that allows one to restrict a general program to special cases by means of constraint predicates is presented. A set of basic transformation operations,

Program improvement by internal specialization

A set of four operations for transforming programs in this extended language of recursion equations to include a generalized procedure construct (the expression procedure) form the basis of a general-purpose specialization technique for recursive programs.

Deletion of Redundant Unary Type Predicates from Logic Programs

The aim however is not to construct a type system, but rather to show that simple types can be handled using a general framework of program analysis and transformation, a class which includes the type literals.

Transformation of Logic Programs: Foundations and Techniques

Partial Evaluation in Logic Programming

Specialization of Prolog Programs with Partially Static Goals and Binarization

Two new methods that specialize ordinary and binary Prolog programs and are able to remove unnecessary, existential variables and structural redundancies caused by difference lists, context arguments, short-circuits or accumulator passing are presented.

Parameterized partial evaluation

Besides specializing programs with respect to concrete values, it is often necessary to specialize programs with respect to abstract values, i.e., static properties such as signs, ranges, and types.

Specialisation of a Unification Algorithm

In this paper a study is made of several specialisations of unification that are typically needed and a short discussion on correctness results for such specialisations.

Partial Deduction of the Ground Representation and its Application to Integrity Checking

This paper presents a solution which uses a novel implementation of the ground representation and an improved partial deduction strategy and is able to overcome the diiculties and produce highly specialised and eecient pre-compiled integrity checks through partial deduction of meta-interpreters.

Foundations of Logic Programming