Danny De Schreye - Academia.edu (original) (raw)

Uploads

Papers by Danny De Schreye

Research paper thumbnail of Integrating types in termination analysis

Research paper thumbnail of Towards creating specialised integrity checks through partial evaluation of meta-interpreters

Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation - PEPM '95, 1995

Research paper thumbnail of Implementing a finite-domain CLP-language on top of Prolog: a transformational approach

Lecture Notes in Computer Science, 1994

Without Abstract

Research paper thumbnail of Creating specialised integrity checks through partial evaluation of meta-interpreters

The Journal of Logic Programming, 1998

Research paper thumbnail of Compiling Control

International Logic Programming Symposium/International Symposium on Logic Programming/North American Conference on Logic Programming/Symposium on Logic Programming, 1986

Research paper thumbnail of Logic program specialisation: How to be more specific

Lecture Notes in Computer Science, 1997

Research paper thumbnail of Termination Analysis for Tabled Logic Programming

Lecture Notes in Computer Science, 1998

Research paper thumbnail of Termination analysis of logic programs extended abstract

Verifying termination is often considered as one of the most important aspects of program verific... more Verifying termination is often considered as one of the most important aspects of program verification. Logic languages, allowing us to program declaratively, increase the danger of non-termination. Therefore, termination analysis received considerable attention in logic programming (see e.g. [7, 8, 10, 16]). Unfortunately, the majority of existing termination analysers, such as Termi-Log [15], TerminWeb [7], and cTI [16] are restricted to pure logic programs and thus, leave many interesting real-world examples out of consideration. Therefore, in order to abridge the gap between programming practice and existing termination analysers real-world programming techniques should be considered. In this paper we present Hasta-La-Vista-a powerful tool for analysing termination of logic programs with integer computations. Hasta-La-Vista extends the constraints-based approach of Decorte et al. [9] by integrating the inference algorithm of [19]. Moreover, as explained in [19], in the integer case our approach is not limited to proving termination, but can also infer termination, i.e., find the set of queries terminating for a given program. System architecture. Conceptually, Hasta-La-Vista consists of three main parts: transformation, constraints generation and constraints solving. As a preliminary step, given a program and a set of atomic queries, type analysis of Janssens and Bruynooghe [14] computes the call set. We opted for a very simple type inference technique that provides us only with information whether some argument is integer or not. Based on the results of the type analysis the system decides whether termination of the given program can be dependent on the integer computation. In this case, the adorning transformation is applied [19]. The aim of the transformation is to discover bounded integer arguments and to make the bounds explicit. Intuitively, if a variable x is known to be bounded from above by n, then n x is always positive and thus, can be used as a basis for a definition of a levelmapping (a function from the set of atoms to the naturals). In order to prove termination we have to show that the level-mapping decreases while traversing a clause. This requirement can be translated into a set of constraints. Finally, this set of constraints is solved and depending on the solution termination is

Research paper thumbnail of A Practical Technique for Detecting Non-Terminating Queries for a Restricted Class of Horn Clauses, Using Directed, Weighted Graphs

… : Proceedings of the …, 1990

... DISCRETE MATHEMATICS G.2.2 Graph Theory Subjects: Trees. General Terms: Algorithms, Languages... more ... DISCRETE MATHEMATICS G.2.2 Graph Theory Subjects: Trees. General Terms: Algorithms, Languages. Collaborative Colleagues: Danny De Schreye: colleagues. Kristof Verschaetse: colleagues. Maurice Bruynooghe: colleagues.

Research paper thumbnail of Termination analysis of logic programs using acceptability with general term orders

arXiv preprint cs/0011025, Nov 17, 2000

Abstract: We present a new approach to termination analysis of logic programs. The essence of the... more Abstract: We present a new approach to termination analysis of logic programs. The essence of the approach is that we make use of general term-orderings (instead of level mappings), like it is done in transformational approaches to logic program termination analysis, but that we apply these orderings directly to the logic program and not to the term-rewrite system obtained through some transformation. We define some variants of acceptability, based on general term-orderings, and show how they are equivalent to LD- ...

Research paper thumbnail of Constraint-based termination analysis of logic programs

ACM Transactions on Programming Languages and Systems, 1999

Current norm-based automatic termination analysis techniques for logic programs can be split up i... more Current norm-based automatic termination analysis techniques for logic programs can be split up into different components: inference of mode or type information, derivation of models, generation of well-founded orders, and verification of the termination conditions themselves. Although providing high-precision results, these techniques suffer from an efficiency point of view, as several of these analyses are often performed through abstract interpretation. We present a new termination analysis which integrates the various components and produces a set of constraints that, when solvable, identifies successful termination proofs. The proposed method is both efficient and precise. The use of constraint sets enables the propagation on information over all different phases while the need for multiple analyses is considerably reduced.

Research paper thumbnail of Termination of logic programs: the never-ending story

The Journal of Logic Programming, 1994

Research paper thumbnail of Transforming Coroutining Logic Programs into Equivalent CHR Programs

Electronic Proceedings in Theoretical Computer Science

We extend a technique called Compiling Control. The technique transforms coroutining logic progra... more We extend a technique called Compiling Control. The technique transforms coroutining logic programs into logic programs that, when executed under the standard left-to-right selection rule (and not using any delay features) have the same computational behavior as the coroutining program. In recent work, we revised Compiling Control and reformulated it as an instance of Abstract Conjunctive Partial Deduction. This work was mostly focused on the program analysis performed in Compiling Control. In the current paper, we focus on the synthesis of the transformed program. Instead of synthesizing a new logic program, we synthesize a CHR(Prolog) program which mimics the coroutining program. The synthesis to CHR yields programs containing only simplification rules, which are particularly amenable to certain static analysis techniques. The programs are also more concise and readable and can be ported to CHR implementations embedded in other languages than Prolog. * Vincent Nys is supported by FWO Flanders under research contract G088414N.

Research paper thumbnail of Integrable-ergodic <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msup><mi>C</mi><mo>∗</mo></msup></mrow><annotation encoding="application/x-tex">C^*</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6887em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6887em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∗</span></span></span></span></span></span></span></span></span></span></span>-dynamical systems on Abelian groups

MATHEMATICA SCANDINAVICA, 1985

Research paper thumbnail of Integrable, ergodic actions of Abelian groups on von Neumann algebras

MATHEMATICA SCANDINAVICA, 1983

Research paper thumbnail of On Termination of Meta-Programs

Research paper thumbnail of Constrained Partial Deduction

Partial deduction based upon the Lloyd and Shepherdson framework generates a specialised program ... more Partial deduction based upon the Lloyd and Shepherdson framework generates a specialised program given a set of atoms. Each such atom represents all its instances. This can severely limit the specialisation potential of partial deduction. We therefore extend the precision the Lloyd and Shepherdson approach by integrating ideas from constraint logic programming. We formally prove correctness of this new framework of constrained partial deduction and illustrate its potential on some examples.

Research paper thumbnail of Deriving of Linear Size Relations by Abstract Interpretation

Research paper thumbnail of Explanation Based Program Transformation

Fold-unfold is a well known program transformation technique. Its major drawback is that folding ... more Fold-unfold is a well known program transformation technique. Its major drawback is that folding requires an Eureka step to invent new procedures. In the context of logic programming, we present a technique where the folding is driven by an example. The transformation is aimed at programs suffering from inefficiencies due to the repetition of identical subcomputations. The execution of an example is analysed to locate repeated subcomputations. Then the structure of the example is used to control a fold-unfoldtransformation of the program. The transformation can be automated. The method can be regarded as an extension of explanation based learning.

Research paper thumbnail of Tutorial on Program Specialisation (Abstract)

Research paper thumbnail of Integrating types in termination analysis

Research paper thumbnail of Towards creating specialised integrity checks through partial evaluation of meta-interpreters

Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation - PEPM '95, 1995

Research paper thumbnail of Implementing a finite-domain CLP-language on top of Prolog: a transformational approach

Lecture Notes in Computer Science, 1994

Without Abstract

Research paper thumbnail of Creating specialised integrity checks through partial evaluation of meta-interpreters

The Journal of Logic Programming, 1998

Research paper thumbnail of Compiling Control

International Logic Programming Symposium/International Symposium on Logic Programming/North American Conference on Logic Programming/Symposium on Logic Programming, 1986

Research paper thumbnail of Logic program specialisation: How to be more specific

Lecture Notes in Computer Science, 1997

Research paper thumbnail of Termination Analysis for Tabled Logic Programming

Lecture Notes in Computer Science, 1998

Research paper thumbnail of Termination analysis of logic programs extended abstract

Verifying termination is often considered as one of the most important aspects of program verific... more Verifying termination is often considered as one of the most important aspects of program verification. Logic languages, allowing us to program declaratively, increase the danger of non-termination. Therefore, termination analysis received considerable attention in logic programming (see e.g. [7, 8, 10, 16]). Unfortunately, the majority of existing termination analysers, such as Termi-Log [15], TerminWeb [7], and cTI [16] are restricted to pure logic programs and thus, leave many interesting real-world examples out of consideration. Therefore, in order to abridge the gap between programming practice and existing termination analysers real-world programming techniques should be considered. In this paper we present Hasta-La-Vista-a powerful tool for analysing termination of logic programs with integer computations. Hasta-La-Vista extends the constraints-based approach of Decorte et al. [9] by integrating the inference algorithm of [19]. Moreover, as explained in [19], in the integer case our approach is not limited to proving termination, but can also infer termination, i.e., find the set of queries terminating for a given program. System architecture. Conceptually, Hasta-La-Vista consists of three main parts: transformation, constraints generation and constraints solving. As a preliminary step, given a program and a set of atomic queries, type analysis of Janssens and Bruynooghe [14] computes the call set. We opted for a very simple type inference technique that provides us only with information whether some argument is integer or not. Based on the results of the type analysis the system decides whether termination of the given program can be dependent on the integer computation. In this case, the adorning transformation is applied [19]. The aim of the transformation is to discover bounded integer arguments and to make the bounds explicit. Intuitively, if a variable x is known to be bounded from above by n, then n x is always positive and thus, can be used as a basis for a definition of a levelmapping (a function from the set of atoms to the naturals). In order to prove termination we have to show that the level-mapping decreases while traversing a clause. This requirement can be translated into a set of constraints. Finally, this set of constraints is solved and depending on the solution termination is

Research paper thumbnail of A Practical Technique for Detecting Non-Terminating Queries for a Restricted Class of Horn Clauses, Using Directed, Weighted Graphs

… : Proceedings of the …, 1990

... DISCRETE MATHEMATICS G.2.2 Graph Theory Subjects: Trees. General Terms: Algorithms, Languages... more ... DISCRETE MATHEMATICS G.2.2 Graph Theory Subjects: Trees. General Terms: Algorithms, Languages. Collaborative Colleagues: Danny De Schreye: colleagues. Kristof Verschaetse: colleagues. Maurice Bruynooghe: colleagues.

Research paper thumbnail of Termination analysis of logic programs using acceptability with general term orders

arXiv preprint cs/0011025, Nov 17, 2000

Abstract: We present a new approach to termination analysis of logic programs. The essence of the... more Abstract: We present a new approach to termination analysis of logic programs. The essence of the approach is that we make use of general term-orderings (instead of level mappings), like it is done in transformational approaches to logic program termination analysis, but that we apply these orderings directly to the logic program and not to the term-rewrite system obtained through some transformation. We define some variants of acceptability, based on general term-orderings, and show how they are equivalent to LD- ...

Research paper thumbnail of Constraint-based termination analysis of logic programs

ACM Transactions on Programming Languages and Systems, 1999

Current norm-based automatic termination analysis techniques for logic programs can be split up i... more Current norm-based automatic termination analysis techniques for logic programs can be split up into different components: inference of mode or type information, derivation of models, generation of well-founded orders, and verification of the termination conditions themselves. Although providing high-precision results, these techniques suffer from an efficiency point of view, as several of these analyses are often performed through abstract interpretation. We present a new termination analysis which integrates the various components and produces a set of constraints that, when solvable, identifies successful termination proofs. The proposed method is both efficient and precise. The use of constraint sets enables the propagation on information over all different phases while the need for multiple analyses is considerably reduced.

Research paper thumbnail of Termination of logic programs: the never-ending story

The Journal of Logic Programming, 1994

Research paper thumbnail of Transforming Coroutining Logic Programs into Equivalent CHR Programs

Electronic Proceedings in Theoretical Computer Science

We extend a technique called Compiling Control. The technique transforms coroutining logic progra... more We extend a technique called Compiling Control. The technique transforms coroutining logic programs into logic programs that, when executed under the standard left-to-right selection rule (and not using any delay features) have the same computational behavior as the coroutining program. In recent work, we revised Compiling Control and reformulated it as an instance of Abstract Conjunctive Partial Deduction. This work was mostly focused on the program analysis performed in Compiling Control. In the current paper, we focus on the synthesis of the transformed program. Instead of synthesizing a new logic program, we synthesize a CHR(Prolog) program which mimics the coroutining program. The synthesis to CHR yields programs containing only simplification rules, which are particularly amenable to certain static analysis techniques. The programs are also more concise and readable and can be ported to CHR implementations embedded in other languages than Prolog. * Vincent Nys is supported by FWO Flanders under research contract G088414N.

Research paper thumbnail of Integrable-ergodic <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msup><mi>C</mi><mo>∗</mo></msup></mrow><annotation encoding="application/x-tex">C^*</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6887em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6887em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∗</span></span></span></span></span></span></span></span></span></span></span>-dynamical systems on Abelian groups

MATHEMATICA SCANDINAVICA, 1985

Research paper thumbnail of Integrable, ergodic actions of Abelian groups on von Neumann algebras

MATHEMATICA SCANDINAVICA, 1983

Research paper thumbnail of On Termination of Meta-Programs

Research paper thumbnail of Constrained Partial Deduction

Partial deduction based upon the Lloyd and Shepherdson framework generates a specialised program ... more Partial deduction based upon the Lloyd and Shepherdson framework generates a specialised program given a set of atoms. Each such atom represents all its instances. This can severely limit the specialisation potential of partial deduction. We therefore extend the precision the Lloyd and Shepherdson approach by integrating ideas from constraint logic programming. We formally prove correctness of this new framework of constrained partial deduction and illustrate its potential on some examples.

Research paper thumbnail of Deriving of Linear Size Relations by Abstract Interpretation

Research paper thumbnail of Explanation Based Program Transformation

Fold-unfold is a well known program transformation technique. Its major drawback is that folding ... more Fold-unfold is a well known program transformation technique. Its major drawback is that folding requires an Eureka step to invent new procedures. In the context of logic programming, we present a technique where the folding is driven by an example. The transformation is aimed at programs suffering from inefficiencies due to the repetition of identical subcomputations. The execution of an example is analysed to locate repeated subcomputations. Then the structure of the example is used to control a fold-unfoldtransformation of the program. The transformation can be automated. The method can be regarded as an extension of explanation based learning.

Research paper thumbnail of Tutorial on Program Specialisation (Abstract)