## Type Analysis of Prolog Using Type Graphs (1993)

Venue: | JOURNAL OF LOGIC PROGRAMMING |

Citations: | 24 - 1 self |

### BibTeX

@ARTICLE{Hentenryck93typeanalysis,

author = {P. Van Hentenryck and A. Cortesi and B. Le Charlier},

title = {Type Analysis of Prolog Using Type Graphs},

journal = {JOURNAL OF LOGIC PROGRAMMING},

year = {1993},

volume = {22},

pages = {179--209}

}

### Years of Citing Articles

### OpenURL

### Abstract

Type analyis of Prolog is of primary importance for high-performance compilers, since type information may lead to better indexing and to sophisticated specializations of unification and built-in predicates to name a few. However, these optimizations often require a sophisticated type inference system capable of inferring disjunctive and recursive types and hence expensive in computation time. The purpose of this paper is to describe a type analysis system for Prolog based on abstract interpretation and type graphs (i.e. disjunctive rational trees) with this functionality. The system (about 15,000 lines of C) consists of the combination of a generic fixpoint algorithm, a generic pattern domain, and a type graph domain. The main contribution of the paper is to show that this approach can be engineered to be practical for medium-sized programs without sacrificing accuracy. The main technical contributions to achieve this result are (1) a novel widening operator for type graphs which app...

### Citations

1994 |
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints
- Cousot, Cousot
- 1977
(Show Context)
Citation Context ...that there is hope to make this approach practical. Another line of research is the approach of Bruynooghe and Janssens (e.g. [2, 10]) which is based on a traditional abstract interpretation approach =-=[4]-=-. The key idea is to approximate a collecting semantics of the language by an abstract semantics where sets of substitutions are described by type graphs, i.e. disjunctive rational trees. A fixpoint a... |

200 |
The Art of PROLOG: Advanced Programming Techniques
- Sterling, Shapiro
- 1994
(Show Context)
Citation Context ...scuss the efficiency and accuracy of the analysis. The Benchmarks The benchmark programs 3 are hopefully representative of "pure" logic programs.sKA is an alpha-beta program to play the game=-= of kalah [19]-=-. PR is a symbolic equation-solver [19]. CS is a program to generate a number of configurations representing various ways of cutting a wood board into small shelves [20]. DS is the generate and test e... |

198 |
A practical framework for the abstract interpretation of logic programs
- Bruynooghe
- 1991
(Show Context)
Citation Context ...t operations of the abstract semantics, and the ordering relation on the abstract domain. It has many similarities with PLAI [18] and can be seen either as an implementation of Bruynooghe's framework =-=[1]-=- or as an instance of a general fixpoint algorithm [13]. In the experimental results, we use the prefix version of the algorithm [6]. 5 The Generic Pattern Domain In this section, we briefly recall th... |

124 |
Deriving descriptions of possible values of program variables by means of abstract interpretation
- Janssens, Bruynooghe
(Show Context)
Citation Context ... [8] and the experimental results (on programs up to 32 clauses) indicate that there is hope to make this approach practical. Another line of research is the approach of Bruynooghe and Janssens (e.g. =-=[2, 10]-=-) which is based on a traditional abstract interpretation approach [4]. The key idea is to approximate a collecting semantics of the language by an abstract semantics where sets of substitutions are d... |

119 | Compile-Time Derivation of Variable Dependency Using Abstract Interpretation
- Muthukumar, Hermenegildo
- 1992
(Show Context)
Citation Context ...memoization, a dependency graph to avoid redundant computation, the abstract operations of the abstract semantics, and the ordering relation on the abstract domain. It has many similarities with PLAI =-=[18]-=- and can be seen either as an implementation of Bruynooghe's framework [1] or as an instance of a general fixpoint algorithm [13]. In the experimental results, we use the prefix version of the algorit... |

103 |
Hentenryck, Experimental evaluation of a generic abstract interpretation algorithm for prolog
- Charlier, Van
- 1994
(Show Context)
Citation Context ...o describe the design and implementation of a type system based on the second approach. The system is best described as GAIA(Pat(Type)), where GAIA is a generic top-down fixpoint algorithm for Prolog =-=[12, 6]-=- 2 , Pat is a generic pattern domain for structural information [3], and Type is a type graph domain. The main contribution of the system (about 15,000 lines of C) is to show that type analysis based ... |

98 |
Logic programs as types for logic programs
- FruÌˆhwirth, Shapiro, et al.
- 1991
(Show Context)
Citation Context ...gramming, although few systems have actually been developed. A popular line of research, called the cartesian closure approach in [9], was initiated by [15] and further developed in many authors (See =-=[7]-=- for a complete account). The key idea is to approximate the traditional T p operator by replacing substitutions by sets of substitutions and using a cartesian closure operator to ignore inter-variabl... |

97 | A finite presentation theorem for approximating logic programs
- Heintze, Jaffar
- 1990
(Show Context)
Citation Context ...rt. Extensive research has been devoted to type inference in logic programming, although few systems have actually been developed. A popular line of research, called the cartesian closure approach in =-=[9]-=-, was initiated by [15] and further developed in many authors (See [7] for a complete account). The key idea is to approximate the traditional T p operator by replacing substitutions by sets of substi... |

76 |
Towards a theory of types in PROLOG
- Mishra
- 1984
(Show Context)
Citation Context ... has been devoted to type inference in logic programming, although few systems have actually been developed. A popular line of research, called the cartesian closure approach in [9], was initiated by =-=[15]-=- and further developed in many authors (See [7] for a complete account). The key idea is to approximate the traditional T p operator by replacing substitutions by sets of substitutions and using a car... |

66 | Hentenryck, Combinations of Abstract Domains for Logic Programming
- Cortesi, Charlier, et al.
- 1994
(Show Context)
Citation Context ...second approach. The system is best described as GAIA(Pat(Type)), where GAIA is a generic top-down fixpoint algorithm for Prolog [12, 6] 2 , Pat is a generic pattern domain for structural information =-=[3]-=-, and Type is a type graph domain. The main contribution of the system (about 15,000 lines of C) is to show that type analysis based on abstract interpretation and type graphs can be engineered to be ... |

52 |
An instance of abstract interpretation integrating type and mode irfferencing
- Bmynooghe, Janssens
- 1988
(Show Context)
Citation Context ... [8] and the experimental results (on programs up to 32 clauses) indicate that there is hope to make this approach practical. Another line of research is the approach of Bruynooghe and Janssens (e.g. =-=[2, 10]-=-) which is based on a traditional abstract interpretation approach [4]. The key idea is to approximate a collecting semantics of the language by an abstract semantics where sets of substitutions are d... |

43 | Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation
- Englebert, Charlier, et al.
- 1993
(Show Context)
Citation Context ...o describe the design and implementation of a type system based on the second approach. The system is best described as GAIA(Pat(Type)), where GAIA is a generic top-down fixpoint algorithm for Prolog =-=[12, 6]-=- 2 , Pat is a generic pattern domain for structural information [3], and Type is a type graph domain. The main contribution of the system (about 15,000 lines of C) is to show that type analysis based ... |

35 |
Multiple specialization using minimal-function graph semantics
- Winsborough
(Show Context)
Citation Context ...ework In this section, we briefly review our abstract interpretation framework. The framework is presented in details in [12] and is close to the work of Marriott and Sondergaard [14] and Winsborough =-=[22]-=-. It follows the traditional approach to abstract interpretation [4]. Concrete Semantics As is traditional in abstract interpretation, the starting point of the analysis is a collecting semantics for ... |

32 |
Deriving termination proofs for logic programs, using abstract procedures
- VERSCHAETSE, SCHREYE
- 1991
(Show Context)
Citation Context ... this is of importance for many applications such 2 GAIA is available by anonymous ftp from Brown University. 1 as compile-time garbage collection (e.g. [17]) and automatic termination analysis (e.g. =-=[21]-=-). The technical contributions to obtain this result are (1) a novel widening operator for type graphs which appears to be accurate and effective in keeping the sizes of the graphs, and hence the comp... |

24 | A Universal Top-Down Fixpoint Algorithm
- Charlier, Hentenryck
- 291
(Show Context)
Citation Context ...ng relation on the abstract domain. It has many similarities with PLAI [18] and can be seen either as an implementation of Bruynooghe's framework [1] or as an instance of a general fixpoint algorithm =-=[13]-=-. In the experimental results, we use the prefix version of the algorithm [6]. 5 The Generic Pattern Domain In this section, we briefly recall the basic notions behind the generic abstract domain Pat(... |

24 |
Analysis of shared data structures for compile-time garbage collection in logic programs (Extended version
- Mulkers, Winsborough, et al.
- 1990
(Show Context)
Citation Context ...ch is the possibility of exploiting variable dependencies and the ease with which type analysis can be combined with other analyses as required by applications such as compile-time garbage collection =-=[17]-=-. The drawback is that the result of the analysis is more difficult to characterize formally as the design of the abstract domain is an experimental endeavour. This approach has been implemented in a ... |

22 | Notes for a Tutorial on Abstract Interpretation of Logic Programs
- Marriott, Sondergaard
- 1989
(Show Context)
Citation Context ...t Interpretation Framework In this section, we briefly review our abstract interpretation framework. The framework is presented in details in [12] and is close to the work of Marriott and Sondergaard =-=[14]-=- and Winsborough [22]. It follows the traditional approach to abstract interpretation [4]. Concrete Semantics As is traditional in abstract interpretation, the starting point of the analysis is a coll... |

18 | Analyzing success patterns of logic programs by abstract hybrid interpretation, ICOT - Kanamori, Kawamura - 1987 |

10 |
Polymorphic types and widening operators
- Monsuez
(Show Context)
Citation Context ...e also that the use of widening operators for type inference has been recently investigated in the context of functional programming but the technical details of this work are fundamentally different =-=[16]-=-. The rest of this paper is organized as follows. Section 2 illustrates the functionality of the system on a variety of small but representative examples. Section 3 gives an overview of the paper. Sec... |

2 |
Practical Aspects of Set-Based Analysis
- Heintze
- 1992
(Show Context)
Citation Context ...ch may entail a loss of precision and makes it difficult to integrate the system with other analyses such as modes and sharing. A type inference system based on this approach was developed by Heintze =-=[8]-=- and the experimental results (on programs up to 32 clauses) indicate that there is hope to make this approach practical. Another line of research is the approach of Bruynooghe and Janssens (e.g. [2, ... |