Postdoc Projects Available
At Gallium, we conduct research on the design, formalization, and implementation of programming languages and systems. The Caml language embodies many of our research results. Our objective is to improve the reliability of software systems through:
- higher-level, safer, more expressive programming languages based on the functional programming paradigm;
- automatic error detection via type systems, contracts, logical assertions;
- better linguistic support for formal methods, especially machine-checked proofs of programs.
The candidate will conduct research in an ongoing project related to hybrid (i.e. both static and dynamic) contract checking for a pure functional language (based on System F). We would like to apply the idea to both a strict language (ML) and a lazy language (Haskell). Related materials include:
- Dynamic Contract Checking for OCaml (a tutorial)
- Static Contract Checking (should work for both strict and lazy languaage.)
- Contract-directed test case generation (a sibling to QuickCheck for Haskell).
- Contract-directed optimization (e.g. dead/redundant code elimination)
- Extending the expressiveness of the existing contracts framework in several ways (recursive contracts, polymorphic contracts, contracts for data constructors, etc. come to mind).
- Machine-checking the correctness of the existing contract semantics using Coq (or Isabelle/HOL, etc.). We have only a manual proof at the moment.