High-level Languages for Low-level Systems

  • Geoffrey Mainland | Harvard University

Functional languages such as Haskell provide powerful abstraction facilities, but directly applying these tools to resource-constrained devices is impractical because doing so imposes too much time and/or space overhead. In this talk, I will describe two systems that exploit new language techniques to allow low-level devices to be programmed using Haskell. Flask provides a library of high-level combinators for composing low-level code fragments into programs that run on TelosB motes, which have 16-bit processors and 10K of RAM. Nikola supports both run-time and compile-time generation of GPU code from a first-order language of array computations embedded in Haskell that can communicate seamlessly with CPU computations written in Haskell.

Speaker Details

Geoffrey Mainland obtained an A.B. in Physics from Harvard University and is now completing a Ph.D. at Harvard University where he works with Greg Morrisett and Matt Welsh. His research focuses on tools and techniques for building correct systems from resource-constrained components.

    • Portrait of Geoffrey Mainland

      Geoffrey Mainland

    • Portrait of Jeff Running

      Jeff Running