Results 1  10
of
13
Improving abstract interpretations by combining domains
 ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
, 1995
"... This article considers static analysis based on abstract interpretation of logic programs over combined domains. It is known that analyses over combined domains provide more information potentially than obtained by the independent analyses. However, the construction of a combined analysis often requ ..."
Abstract

Cited by 58 (18 self)
 Add to MetaCart
This article considers static analysis based on abstract interpretation of logic programs over combined domains. It is known that analyses over combined domains provide more information potentially than obtained by the independent analyses. However, the construction of a combined analysis often requires redefining the basic operations for the combined domain. A practical approach to maintain precision in combined analyses of logic programs which reuses the individual analyses and does not redefine the basic operations is illustrated, The advantages of the approach are that (1) proofs of correctness for the new domains are not required and (2) implementations can be reused. The approach is demonstrated by showing that a combined sharing analysis — constructed from “old” proposals — compares well with other “new” proposals suggested in recent
Constraintbased Termination Analysis of Logic Programs
 ACM Transactions on Programming Languages and Systems
, 1999
"... Current normbased automatic... In this paper 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 e ..."
Abstract

Cited by 35 (15 self)
 Add to MetaCart
(Show Context)
Current normbased automatic... In this paper 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 of information over all different phases while the need for multiple analyses is considerably reduced.
A Comparative Revisitation of Some Program Transformation Techniques
 Partial Evaluation, Int'l Seminar, Dagstuhl
, 1996
"... . We revisit the main techniques of program transformation which are used in partial evaluation, mixed computation, supercompilation, generalized partial computation, rulebased program derivation, program specialization, compiling control, and the like. We present a methodology which underlines the ..."
Abstract

Cited by 21 (0 self)
 Add to MetaCart
(Show Context)
. We revisit the main techniques of program transformation which are used in partial evaluation, mixed computation, supercompilation, generalized partial computation, rulebased program derivation, program specialization, compiling control, and the like. We present a methodology which underlines these techniques as a `common pattern of reasoning' and explains the various correspondences which can be established among them. This methodology consists of three steps: i) symbolic computation, ii) search for regularities, and iii) program extraction. We also discuss some control issues which occur when performing these steps. 1 Introduction During the past years researchers working in various areas of program transformation, such as partial evaluation, mixed computation, supercompilation, generalized partial computation, rulebased program derivation, program specialization, and compiling control, have been using very similar techniques for the development and derivation of programs. Unfor...
Partial Deduction of the Ground Representation and its Application to Integrity Checking
 Proceedings of ILPS'95, the International Logic Programming Symposium
, 1995
"... Integrity constraints are very useful in many contexts, such as, for example, deductive databases, abductive and inductive logic programming. However, fully testing the integrity constraints after each update or modification can be very expensive and methods have been developed which simplify the in ..."
Abstract

Cited by 19 (12 self)
 Add to MetaCart
(Show Context)
Integrity constraints are very useful in many contexts, such as, for example, deductive databases, abductive and inductive logic programming. However, fully testing the integrity constraints after each update or modification can be very expensive and methods have been developed which simplify the integrity constraints. In this paper, we pursue the goal of writing this simplification procedure as a metaprogram in logic programming and then using partial deduction to obtain precompiled integrity checks for certain update patterns. We argue that the ground representation has to be used to write this metaprogram declaratively. We however also show that, contrary to what one might expect, current partial deduction techniques are then unable to specialise this metainterpreter in an interesting way and no precompilation of integrity checks can be obtained. In fact, we show that partial deduction (alone) is not able to perform any (sophisticated) specialisation at the objectlevel for meta...
Approximating Constraint Logic Programs Using . . .
 DEPARTMENT OF COMPUTER SCIENCE, UNIVERSITY OF BRISTOL
, 1995
"... Approximate descriptions of the success set of a program have many uses in program development and optimisation. For untyped logic programming languages, regular approximation is a practical and useful tool. In this paper we consider the problem of approximating the meaning of programs in which s ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
Approximate descriptions of the success set of a program have many uses in program development and optimisation. For untyped logic programming languages, regular approximation is a practical and useful tool. In this paper we consider the problem of approximating the meaning of programs in which some #polymorphic# type information is given. This situation can arise in constraint logic programming languages. In untyped languages the user could impose types on selected symbols. Even in strongly typed languages wemay be able to derive more precise descriptions of the meaning, or to consider restricted uses of polymorphic typed predicates. We propose a practical twostage method: #rst the original program is transformed by replacing typed arguments by corresponding polymorphic type terms. For welltyped programs the resulting program is an abstraction of the original. Second, an established algorithm for regular approximation is applied to the transformed program. The algorithm is guaranteed to terminate without using arti#cial techniques such as depthk bounds on #type# terms. The derived description combines polymorphic type terms, including union types, with regular descriptions of untyped terms. The method allows goaldependent analysis as well as goalindependent analysis of a complete program. We show some experimental results demonstrating the speed and precision of the method and show that it scales up well when applied to larger programs.
Livestructure Analysis for Logic Programming Languages with Declarations
 Proceedings of the Fourteenth International Conference on Logic Programming (ICLP'97
, 1996
"... The advent of logic languages with type and mode declarations makes it worthwhile to analyse whether the livestructure analysis of Mulkers et al. can be elaborated in an efficient method for reclaiming memory. This paper develops a backward use analysis and makes several proposals which have potent ..."
Abstract

Cited by 7 (5 self)
 Add to MetaCart
(Show Context)
The advent of logic languages with type and mode declarations makes it worthwhile to analyse whether the livestructure analysis of Mulkers et al. can be elaborated in an efficient method for reclaiming memory. This paper develops a backward use analysis and makes several proposals which have potential for reducing the cost of the alias analysis. 1 Introduction To compete in speed with imperative languages, declarative languages need efficient methods for reclaiming unused memory. Mulkers et al. [16] developed a livestructure analysis for logic programs which can determine at compiletime when data structures become available for reuse. The advent of a language such as Mercury [18] motivates a refinement of this analysis, turning it into an efficient method. Though Mercury allows the programmer to control the reuse of data structures, the required declarations force the programmer to reason at a low level of memory management which is unusual and rather inconvenient for a declarative...
Abstracting Numerical Values in CLP(H,N)
, 1994
"... ing Numerical Values in CLP(H,N) Gerda Janssens 1 , Maurice Bruynooghe 1 , Vincent Englebert 2 1 Department of Computer Science, K.U. Leuven Celestijnenlaan 200A, B3001 Heverlee, Belgium 2 Institut d'Informatique, Facult'es Universitaires Notre Dame de la Paix rue GrandGagnage 21, ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
ing Numerical Values in CLP(H,N) Gerda Janssens 1 , Maurice Bruynooghe 1 , Vincent Englebert 2 1 Department of Computer Science, K.U. Leuven Celestijnenlaan 200A, B3001 Heverlee, Belgium 2 Institut d'Informatique, Facult'es Universitaires Notre Dame de la Paix rue GrandGagnage 21, B5000 Namur, Belgium Abstract. The paper defines approximations for the numerical leaves of variables in CLP(H,N) constraint systems. The abstractions are based on intervals which are computed by narrowing rules. The novelty of this approach lays in the fact that intervals are used as abstraction and that narrowing rules do not only correspond to numerical constraints but also to unification constraints. In the first abstraction the impact of the narrowing rules is limited. A prototype implementation has been developed and the obtained results are sufficiently precise to recognise (future) redundant constraints. The abstraction can be extended (1) by incorporating the narrowing rules more globally (...
A Toolkit for Static Analysis of Constraint Logic Programs
, 1997
"... Generic systems for the analysis of logic programs have been proposed over the last decade or so. Considerable progress has been made in terms of frameworks, algorithms, abstract domains and implementations. A number of generic topdown procedural frameworks are widely available. However, implementa ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
Generic systems for the analysis of logic programs have been proposed over the last decade or so. Considerable progress has been made in terms of frameworks, algorithms, abstract domains and implementations. A number of generic topdown procedural frameworks are widely available. However, implementation e#orts for bottomup declarative frameworks are in a preliminary stage. In this thesis