Join Newsletter

Kiama: Domain-Specific Languages for Language Implementation in Scala

YOW! Lambda Jam 2013

In this talk we give an overview of our Kiama language processing library ( for Scala. Kiama-based programs use high-level domain-specific languages to describe structured input for parsing, static analysis of programs via attribute grammars, program transformation via rewriting, and output using pretty printing. We describe how Kiama works and illustrate some typical language processing tasks by implementing a version of the lambda calculus, the prototypical functional programming language.

Matthew Roberts

Senior Proof Engineer

CSIRO's Data61


Matthew had his functional programming epiphany surrounded by the Angle Brackets of Doom (C++ template metaprogramming). He learned some Haskell, and began to appreciate the simple things: composition, meaningful types, and the assurance that what you see is what you get. At some point, he heard about dependent types, and taught himself some Coq. He still occasionally enjoys some C++, for old times sake.