Group Meeting & Reading Group
We have a weekly group meeting, currently Tuesdays at noon in the K17 meeting room and a fortnightly reading group
Courses currently taught by Manuel Chakravarty or Gabriele Keller:
We are interested in a wide range of research topics concerning programming languages and associated software systems with a particular focus on the intersection of theory and practice. This, quite naturally, makes computational calculi and programming languages derived from these calculi an integral part of our work. Hence, much of our attention is focused on functional programming, which is the most successful programming paradigm founded on a rigorous mathematical discipline. It's foundation, the lambda calculus, has an elegant computational theory and is arguably the smallest universal programming language. As such, the lambda calculus is also crucial to understand the properties of language paradigms other functional programming. We apply insights derived from foundational studies to areas that span programming language design, compilers, parallel and high-performance computing, and computer security.
Within UNSW, we cooperate with the CORG group (programming language implementations, compiler optimisations and dynamic compilation). Moreover, we are involved in the ERTOS (Embedded, Real-Time and Operating Systems) program of NICTA. We collaborate with a number of international partners, including close work with the GHC team at Microsoft Research Cambridge.
Data Parallel Haskell (DPH) is one of the core projects of our group and aims at providing full support for nested data parallelism for Haskell targeting multicore CPUs. The current experimental implementation is available as an extension to
the Glasgow Haskell Compiler as a set of cabal packages.
Repa is a Haskell library which supports parallel multidimensional
matrix calculations and stencil operations. These operations are more
specialised than nested data parallelism, but play a central role in a
large range of numerical computations. Due to their more specific
nature, these computations can be optimised more aggressively.
Accelerate is a domain-specific array language embedded in Haskell,
which generates code exploiting the parallel capabilities of graphical
processing units (GPU), for applications in areas including physical
simulations and computer vision.
This project is a cooperation with researchers from the
Software Systems Research Group
NICTA investigating the automated synthesis of file-system code (and matching correctness proofs) from
formal specifications. More precisely, a file system is specified as
an OS interface, an on-disk data structure, and a high-level
behavioural description matching the two.
DDC is a research compiler used to investigate program transformation in the presence of computational effects. It compiles a family of strict functional core languages and supports region, effect and closure typing. Programs can be written in either a pure/functional or effectful/imperative style, and one of our goals is to provide both styles coherently in the same language.
Iron Lambda is a collection of Coq
formalisations for functional languages of increasing complexity. It fills part of the gap between the end of the Software Foundations
course and what appears in current research papers.
Gloss 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 at the ANU and UNSW. The library uses the GHC OpenGL binding, but you won't have to worry about any of that. Get something cool on the screen in under 10 minutes.