A polymorphic type system for PROLOG.
Artificial Intelligence
Properties of substitutions and unifications
Journal of Symbolic Computation
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Polymorphic type inference in Prolog by abstract interpretation
Proceedings of the 6th Conference on Logic programming '87
A finite presentation theorem for approximating logic programs
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A practical framework for the abstract interpretation of logic programs
Journal of Logic Programming
A type system for logic program
Journal of Logic Programming
Types for logic programs (abstract)
Proceedings of the 1990 North American conference on Logic programming
Communications of the ACM
Abstract interpretation and application to logic programs
Journal of Logic Programming
Deriving descriptions of possible values of program variables by means of abstract interpretation
Journal of Logic Programming
Efficient run-time type checking of typed logic programs
Journal of Logic Programming
Global flow analysis as a practical compilation tool
Journal of Logic Programming
A general framework for semantics-based bottom-up abstract interpretation of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A bottom-up polymorphic type inference in logic programming
Science of Computer Programming
Abstract interpretation based on OLDT resolution
Journal of Logic Programming
The Go¨del programming language
The Go¨del programming language
Fast and precise regular approximations of logic programs
Proceedings of the eleventh international conference on Logic programming
Type analysis of logic programs in the presence of type definitions
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Formal language, grammar and set-constraint-based program analysis by abstract interpretation
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Type dependencies for logic programs using ACI-unification
Theoretical Computer Science
Program analysis, debugging, and optimization using the ciao system preprocessor
Proceedings of the 1999 international conference on Logic programming
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Towards a Framework for the Abstract Interpretation of Logic Programs
PLILP '88 Proceedings of the 1st International Workshop on Programming Language Implementation and Logic Programming
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
Directional Type Checking of Logic Programs
SAS '94 Proceedings of the First International Static Analysis Symposium on Static Analysis
Polymorphic directional types for logic programming
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Approximating Constraint Logic Programs Using Polymorphic Types and Regular Descriptions
Approximating Constraint Logic Programs Using Polymorphic Types and Regular Descriptions
Path Dependent Analysis of Logic Programs
Higher-Order and Symbolic Computation
Typing constraint logic programs
Theory and Practice of Logic Programming
Checking Emptiness of Non-Deterministic Regular Types with Set Operators
Electronic Notes in Theoretical Computer Science (ENTCS)
Inferring precise polymorphic type dependencies in logic programs
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Hi-index | 0.00 |
This paper presents a new type analysis for logic programs. The analysis is performed with a priori type definitions; and type expressions are formed from a fixed alphabet of type constructors. Non-discriminative union is used to join type information from different sources without loss of precision. An operation that is performed repeatedly during an analysis is to detect if a fixpoint has been reached. This is reduced to checking the emptiness of types. Due to the use of non-discriminative union, the fundamental problem of checking the emptiness of types is more complex in the proposed type analysis than in other type analyses with a priori type definitions. The experimental results, however, show that use of tabling reduces the effect to a small fraction of analysis time on a set of benchmarks.