Meetings in Spring 2008

From The Programming Languages and Systems Research Group
Jump to: navigation, search

Talks in Spring Term 2008

Thu 07 Feb Neil Mitchell : " Quattro Staggioni with Fixpoints: a New Recipe for First-order Programs "
12:15, CS202J Abstract:

Haskell programs are typically packed full of higher-order goodness. While this sweet sugar makes programs beautiful, it can cause stomach ache for automated analyses, such as termination and pattern-matching. This talk gives a recipe which starts from a full Haskell program, adds a few simple ingredients, and results in a well baked first-order equivalent program.

Thu 14 Feb Colin Runciman : " The Reduceron Today and Tomorrow: Advances in Graph Reduction on FPGA "
12:15, CS202J Abstract:

The Reduceron is a minimalist graph-reduction machine implemented on an FPGA. It was developed by Matt Naylor in the closing stages of his PhD work, as a case-study in the functional description of hardware, along with a simple compiler from core Haskell to Reduceron byte-code. The results from the prototype are sufficently promising that we have plans to take it further. This talk will first describe the Reduceron as it is now, then outline five areas in which we hope advances can be made.

Thu 21 Feb Malcolm Wallace : " Streaming Surfaces and Slicing Hedgehogs "
12:15, CS202J Abstract:

There are a number of well-known techniques for visualising large scientific datasets: isosurface extraction, and flow arrows (hedgehog plots) are two useful examples. In this talk I will report on recent work to implement these algorithms in Haskell, laying particular emphasis on clarity of specification, and modular genericity. I will touch on a variety of aspects we have aimed to generalise over: sample organisation, spatial dimension, geometric co-ordinate system, cell-shape, etc.

Thu 28 Feb Jan Tobias Muehlberg : " Slicing Object Code "
12:15, CS202J Abstract:

Slicing is a widely deployed technique for abstracting over program details that are irrelevant when automatically validating some desired property of the program. Unfortunately, most published slicing algorithms work on source code and are thus not applicable to software that is only available in object code form. This talk presents a novel technique for slicing object code that retains the executability of the resulting slice. The underlying approach is based on an intermediate representation that is borrowed from the binary instrumentation framework Valgrind. Our slicing technique lends itself to synthesising models from compiled programs, in order to reduce execution times for subsequent simulation, verification and testing. We have implemented a prototype object-code slicer as a front-end of a bounded model-checking tool that checks operating systems software for memory safety. Our results show that object-code slicing drastically reduces verification time and speeds-up code execution when using real Linux device drivers as benchmark.

Thu 06 Mar Mike Birtwell : " Haskell ↔ Prolog "
12:15, CS202J Abstract:

Interoperability is an important feature of programming languages. High level languages with distinctive forms of abstraction pose a particular problem for interoperability because these abstractions may not be compatible. The abstractions provided by Haskell and Prolog are indeed very different. However I shall show that interoperability between these languages is possible, allowing Haskell to take full advantage of Prolog features and libraries and vice versa. I shall give a brief demonstration and some of details of how it is done, including a general high-level interface for creating Prolog queries in Haskell and binding Haskell functions to Prolog predicates.