Static inference of modes and data dependencies in logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Abstract interpretation for concurrent logic languages
Proceedings of the 1990 North American conference on Logic programming
Deriving descriptions of possible values of program variables by means of abstract interpretation
Journal of Logic Programming
The 3 R's of optimizing constraint logic programs: refinement, removal and reordering
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Experimental evaluation of a generic abstract interpretation algorithm for PROLOG
ACM Transactions on Programming Languages and Systems (TOPLAS)
Purely functional data structures
Purely functional data structures
Type dependencies for logic programs using ACI-unification
Theoretical Computer Science
Herbrand constraint solving in HAL
Proceedings of the 1999 international conference on Logic programming
Typed Static Analysis: Application to Groundness Analysis of PROLOG and lambda-PROLOG
FLOPS '99 Proceedings of the 4th Fuji International Symposium on Functional and Logic Programming
Mode Analysis Domains for Typed Logic Programs
LOPSTR'99 Selected papers from the 9th International Workshop on Logic Programming Synthesis and Transformation
Polymorphic Type Schemes and Recursive Definitions
Proceedings of the 6th Colloquium on International Symposium on Programming
CP '99 Proceedings of the 5th International Conference on Principles and Practice of Constraint Programming
To the Gates of HAL: A HAL Tutorial
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Program development using abstract interpretation (and the ciao system preprocessor)
SAS'03 Proceedings of the 10th international conference on Static analysis
Inferring non-suspension conditions for logic programs with dynamic scheduling
ACM Transactions on Computational Logic (TOCL)
Hi-index | 0.00 |
Recent constraint logic programming (CLP) languages, such as HAL and Mercury, require type, mode and determinism declarations for predicates. This information allows the generation of efficient target code and the detection of many errors at compile-time. Unfortunately, mode checking in such languages is difficult. One of the main reasons is that, for each predicate mode declaration, the compiler is required to appropriately re-order literals in the predicate's definition. The task is further complicated by the need to handle complex instantiations (which interact with type declarations and higher-order predicates) and automatic initialization of solver variables. Here we define mode checking for strongly typed CLP languages which require reordering of clause body literals. In addition, we show how to handle a simple case of polymorphic modes by using the corresponding polymorphic types.