2 research outputs found
Sequence-Based Abstract Interpretation of Prolog
Many abstract interpretation frameworks and analyses for Prolog have been
proposed, which seek to extract information useful for program optimization.
Although motivated by practical considerations, notably making Prolog
competitive with imperative languages, such frameworks fail to capture some of
the control structures of existing implementations of the language.
In this paper we propose a novel framework for the abstract interpretation of
Prolog which handles the depth-first search rule and the cut operator. It
relies on the notion of substitution sequence to model the result of the
execution of a goal. The framework consists of (i) a denotational concrete
semantics, (ii) a safe abstraction of the concrete semantics defined in terms
of a class of post-fixpoints, and (iii) a generic abstract interpretation
algorithm. We show that traditional abstract domains of substitutions may
easily be adapted to the new framework, and provide experimental evidence of
the effectiveness of our approach. We also show that previous work on
determinacy analysis, that was not expressible by existing abstract
interpretation frameworks, can be seen as an instance of our framework.Comment: 62 pages. To appear in the journal "Theory and Practice of Logic
Programming
Reduction types and intensionality in the lambda-calculus
In this thesis I introduce a new approach to the automated analysis of the
reduction behaviour of A-calculus terms. This new approach improves on earlier
analysers in several ways, not least in its treatment of higher-order terms and
polymorphism, two notably troublesome issues.
In addition, this thesis introduces a stronger notion of reduction behaviour
than strictness. This concept, called strong head neededness, forms the basis for
a new notation for describing the reduction behaviour of terms. This notation
is a kind of type, elements of which are built using a Boolean algebra of function
type constructors. Thus the form of the methodology proposed is that of a type
system.
Consideration is given to a variety of type assignment systems for the new
type system. This supports the hypothesis that the approach proposed is suitable
as a framework for building a range of analyses. Having established this
framework it is then a matter of engineering to determine the appropriate trade
off between information derived and performance achieved.
An investigation is conducted into the formal semantics of all the constructs
introduced. In particular, the investigation proves a range of soundness and
completeness results. Also examined is the semantics of the new notion of type
and the development of a model for reduction types. The model is of interest in
its own right, as it gives further insight into the reduction behaviour of A-terms.
The thesis includes detailed implementations of all the type assignment
systems and ascertains the correctness of these implementations