• Publications
  • Influence
Two Classes of Boolean Functions for Dependency Analysis
This work identifies two classes of Boolean functions that have been used: positive and definite functions, and systematically investigates their implementation for dependency analyses and shows that both are closed under existential quantification. Expand
An experiment in partial evaluation: the generation of a compiler generator
A running, non-trivial partial evaluator is described, which is the first which has been used in practice to transform interpreters into corresponding stand-alone compilers, or to generate a compile r generator by transforming itself. Expand
Boolean Functions for Dependency Analysis: Algebraic Properties and Efficient Representation
This work systematically investigates two classes of Boolean functions used for dependency analyses: positive and definite functions, and shows that both classes are closed under existential quantification. Expand
Precise and efficient groundness analysis for logic programs
We show how precise groundness information can be extracted from logic programs. The idea is to use abstract interpretation with Boolean functions as “approximations” to groundness dependenciesExpand
Synthesizing Optimal Switching Lattices
It is shown how to directly construct switching lattices of polynomial size from arbitrary logic functions and how to synthesize minimal-sized lattices by translating the problem to the satisfiability problem for a restricted class of quantified Boolean formulas. Expand
An Application of Abstract Interpretation of Logic Programs: Occur Check Reduction
The present paper is concerned with the problem of determining circumstances under which the occur check may be safely dispensed with and the method given draws on one outlined by David Plaisted. Expand
Sharing and groundness dependencies in logic programs
We investigate Jacobs and Langen's Sharing domain, introduced for the analysis of variable sharing in logic programs, and show that it is isomorphic to Marriott and Søndergaard's Pos domain,Expand
Mix: A self-applicable partial evaluator for experiments in compiler generation
The paper gives an introduction to partial evaluation and describes a fully automatic though experimental partial evaluator, called mix, able to generate stand-alone compilers as well as a compiler generator. Expand
Collaborative learning through formative peer review: pedagogy, programs and potential
This work examines student peer review, with an emphasis on formative practice and collaborative learning, rather than peer grading, and identifies some gaps in current understanding of formative peer review. Expand
Denotational abstract interpretation of logic programs
A denotational definition of the semantics of definite logic programs is presented, and one instance of the definition is exemplified by developing a provably correct groundness analysis to predict how variables may be bound to ground terms during execution. Expand