OXFORD UNIVERSITY COMPUTING LABORATORY

Programming Tools Group

Research Meetings (Hilary Term 2001)

Topics for Hilary 2001, and before, include:

15 Jan: K. Rustan M. Leino (Compaq SRC) Houdini, an annotation assistant for ESC/Java

ESC/Java is a static program checker for Java, powered by a detailed semantics engine and an automatic theorem prover. It performs modular checking and relies on the programmer to supply light-weight specifications. Houdini is a programming tool built on top of ESC/Java. By inferring many properties of the program, it can be useful as a program checker even in the absence of programmer-supplied specifications.

This talk gives an overview of Houdini and reports on some initial experience with it. (Joint work with Cormac Flanagan.)

22 Jan: Yorck Hunke Dependent Types

Yorck presented some papers on Dependent ML (DML), an extension of ML with a restricted form of dependent types where type checking remains decidable. Types in DML can depend on index objects drawn from a constraint domain, typically natural numbers, and type checking is reduced to constraint satisfaction over linear inequalities. Example DML programs include: array bound check elimination, dead code elimination, capturing invariants of datatypes such as red/black trees.

29 Jan: Kevin Backhouse The Circularity Test for Higher Order Attribute Grammars

Last term, Kevin did some work on the circularity test for traditional attribute grammars. He has found a clean way of specifying and proving the correctness of the algorithm. In today's talk, Kevin gave the group an overview of his proof. He then discussed how the result might be extended to higher order attribute grammars. Higher order AGs are more complicated than standard AGs, because there is no longer a clear distinction between attributes and trees. The circularity test for higher order AGs has to be conservative, because otherwise we cannot guarantee that it will terminate. This is still work in progress, but the group were able to give a lot of useful feedback. Hopefully we will eventually be able to extend the circularity test to cover Eric's IP model.

5 Feb: Research Group Intentional programming: an overview

The group discussed a draft of Oege's lecture for the British Computer Society, resulting in the final text shown here.

12 Feb: Ganesh Sittampalam Incremental Evaluation

Ganesh went through the results of some discussions between Jens-Peter Secher, Oege and himself on how the results of term rewriting could be reused after a small edit to the original term. The conclusions were that we should use a DAG representation to represent sharing not only within a particular term but also the entire rewrite sequence. Maintaining a pointer for each node of the DAG to the first rewrite that makes direct use of that node would allow reuse of at least initial chains of rewrites that were unaffected by the edit.

19 Feb: Research Group A formal model of R5

The group discussed a draft by Eric, Oege and Ganesh of a paper that describes in detail how the IP reduction engine (known as R5) can be modelled as a Haskell program. We identified two major problems with R5 that are solved by the model: copying of subtrees, and the precise meaning of rollback (for dealing with circular attribute dependencies).

26 Feb: David Lacey Binary Decision Diagrams

David showed how you can represent relations over finite domains as BDDs. This can be extended to non-finite domains by adding constraints over the BDD. This method is used in the extended model checker in David's rewrite system.

5 March: Oege de Moor Encoding rewriting transformations in higher-order attribute grammars

We described a general method of encoding a set of rewrite rules as attribution functions in a higher-order attribute grammar. The method is inspired by the Hoffmann-O'Donnell algorithm for matching a large set of patterns against a tree.

12 March: Eric Van Wyk Program analysis and transformation via model checking

Eric gave parts of his talk "Program analysis and transformation via model checking" and we discussed what examples where most interesting and the best methods for presenting them to an audience.


[Oxford Spires]



Oxford University Computing Laboratory Courses Research People About us News