Ben Lippmeier

Ben Lippmeier
School of Computer Science
Room N312, CSIT Building 108
Australian National University
Canberra, ACT 0200, Australia


Google Maps

About Me

Publications

Projects

DDC - The Disciplined Disciple Compiler

Disciple is an explicitly lazy dialect of Haskell. DDC uses effect and closure typing to allow destructive update and arbitrary side-effects to play nicely with laziness and compiler optimisations. It also supports real (object.field) type-directed projections and some other useful features. DDC is still a research project, but it'll compile some programs if you're nice to it. Update data without state monads. Write putStr "foo" and mean it. Learn to live again.

GHC - The Glasgow Haskell Compiler

GHC is the industrial strength Haskell compiler. In Q3 2007 I spent three months working at GHC HQ where I wrote a new graph coloring register allocator for the native code generator. In Q1 2009 I'm spending three months working on the GHC on OpenSPARC project. This project will resurrect the native code generator's support for SPARC, and optimise its performance on the highly multi-threaded UltraSPARC T2 (Niagra 2) architecture. During the project I'll be using two separate T5120 servers generously donated by Sun Microsystems to the ANU and haskell.org community.

Collar Weights

Code and switching hardware for the Collar Weights mixed media installation. Inside each of the collars are electroluminescent lamps that are programmed to switch on, illuminating texts that become visible through the fabric. Phrases from interviews with the owners of the collars are played.
With Alexandra Gillespie and Somaya Langley.

ANUPlot

ANUPlot hides the pain of drawing simple 2D graphics in Haskell behind a nice data structure and a couple of display functions. Used in 1st year CompSci here at ANU. The library uses the GHC OpenGL binding, but you don't have to. No IORefs required in user code! 6 coats of gloss!

AMPLE - An Abstract Machine for Parallel Lazy Evaluation

An experimental environment that can be used to study the behavior of parallel functional programs in terms of an abstract machine, without needing to worry about details specific to a native implementation. Can execute programs fully speculatively to determine the maximum embodied parallelism in a piece of code.

Sunshine II RISC CPU Simulator

A simulator for a classic 5 stage pipelined RISC processor. Visualisation of pipeline stalls, calculation of cpi, single step mode, breakpoints, instruction counts, memory mapped file and console IO. Pipeline setup is easy to change.

High temperature superconducting microwave filters

Design and implementation of a filter intended to block interference that the Australia Telescope Compact Array was suffering from a nearby microwave distribution service (MDS). A summer vacation scholarship position, supervised by Russell Gough and Graham Gay of the Receivers Group.

My urban wasteland

Teaching