A polymorphic type system for PROLOG.
Artificial Intelligence
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
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
Deriving descriptions of possible values of program variables by means of abstract interpretation
Journal of Logic Programming
Compile-time derivation of variable dependency using abstract interpretation
Journal of Logic Programming
Types in 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
Global analysis of constraint logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type dependencies for logic programs using ACI-unification
Theoretical Computer Science
Incremental analysis of constraint logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Types and programming languages
Types and programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
On Dart-Zobel Algorithm for testing regular type inclusion
ACM SIGPLAN Notices
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
An Assertion Language for Constraint Logic Programs
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
The Impact of Granularity in Abstract Interpretation of Prolog
WSA '93 Proceedings of the Third International Workshop on Static Analysis
More Precise Yet Efficient Type Inference for Logic Programs
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
Approximating Constraint Logic Programs Using Polymorphic Types and Regular Descriptions
Approximating Constraint Logic Programs Using Polymorphic Types and Regular Descriptions
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
Using parametric set constraints for locating errors in CLP programs
Theory and Practice of Logic Programming
Context-sensitive multivariant assertion checking in modular programs
LPAR'06 Proceedings of the 13th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Experiments in context-sensitive analysis of modular programs
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Extending Constructive Logic Negation with Types
Electronic Notes in Theoretical Computer Science (ENTCS)
A modular semantics for higher-order declarative programming with constraints
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
An overview of ciao and its design philosophy
Theory and Practice of Logic Programming - Prolog Systems
Hi-index | 0.00 |
Regular types are a powerful tool for computing very precise descriptive types for logic programs. However, in the context of real-life, modular Prolog programs, the accurate results obtained by regular types often come at the price of efficiency. In this paper we propose a combination of techniques aimed at improving analysis efficiency in this context. As a first technique we allow optionally reducing the accuracy of inferred types by using only the types defined by the user or present in the libraries. We claim that, for the purpose of verifying type signatures given in the form of assertions the precision obtained using this approach is sufficient, and show that analysis times can be reduced significantly. Our second technique is aimed at dealing with situations where we would like to limit the amount of reanalysis performed, especially for library modules. Borrowing some ideas from polymorphic type systems, we show how to solve the problem by admitting parameters in type specifications. This allows us to compose new call patterns with some precomputed analysis info without losing any information. We argue that together these two techniques contribute to the practical and scalable analysis and verification of types in Prolog programs.