A polymorphic type system for PROLOG.
Artificial Intelligence
Login: A logic programming language with built-in inheritance
Journal of Logic Programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Go¨del programming language
The Go¨del programming language
Communications of the ACM
Simplifying subtyping constraints: a theory
Information and Computation
ESOP '88 Proceedings of the 2nd European Symposium on Programming
A Polymorphic Type System with Subtypes for Prolog
ESOP '88 Proceedings of the 2nd European Symposium on Programming
Satisfying Subtype Inequalities in Polynomial Space
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Logic Programming with Polymorphically Order-Sorted Types
Proceedings of the International Workshop on Algebraic and Logic Programming
TCLP: Overloading, Subtyping and Parametric Polymorphism Made Practical for CLP
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
Using parametric set constraints for locating errors in CLP programs
Theory and Practice of Logic Programming
Refactoring for Parameterizing Java Classes
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Improving precision of type analysis using non-discriminative union
Theory and Practice of Logic Programming
Abstract interpretation and types for systems biology
Theoretical Computer Science
ICLP'05 Proceedings of the 21st international conference on Logic Programming
CSCLP'05 Proceedings of the 2005 Joint ERCIM/CoLogNET international conference on Constraint Solving and Constraint Logic Programming
Hi-index | 0.00 |
We present a prescriptive type system with parametric polymorphism and subtyping for constraint logic programs. The aim of this type system is to detect programming errors statically. It introduces a type discipline for constraint logic programs and modules, while maintaining the capabilities of performing the usual coercions between constraint domains, and of typing meta-programming predicates, thanks to the exibility of subtyping. The property of subject reduction expresses the consistency of a prescriptive type system w.r.t. the execution model: if a program is ‘well-typed’, then all derivations starting from a ‘well-typed’ goal are again ‘well-typed’. That property is proved w.r.t. the abstract execution model of constraint programming which proceeds by accumulation of constraints only, and w.r.t. an enriched execution model with type constraints for substitutions. We describe our implementation of the system for type checking and type inference. We report our experimental results on type checking ISO-Prolog, the (constraint) libraries of Sicstus Prolog and other Prolog programs.