Constraint-Based Mode Analysis of Mercury Programs
(Joint work with David Overton and Peter J. Stuckey)
Dept of Computer Science and Software Enginneering
University of Melbourne, Austalia
Recent logic programming languages, such as Mercury and HAL,
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 decide which parts of the procedure bind which
variables, and how conjuncts in the predicate definition should
be re-ordered to enforce this behaviour.
Current mode checking systems limit the possible modes that may be
used because they do not keep track of aliasing information,
and have only a limited ability to infer modes, since inference
does not perform reordering.
In this paper we develop a mode inference system for Mercury
based on mapping each predicate to a system of Boolean constraints
that describe where its variables can be produced.
This allows us handle programs that are not supported by the
Place: Information technology, Uppsala University
Time: 14.15-15.00 (+ discussions)
Room 1245 is in building 1, floor 2
(in the northern part of the building).
Everyone is welcome !
Updated 05-May-2004 17:59 by Roland Grönroos
e-mail: info -at- astec.uu.se