Matthew Roberts


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.

YOW! Lambda Jam 2013 Brisbane

Kiama: Domain-Specific Languages for Language Implementation in Scala


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.

Kiama: Domain-Specific Languages for Language Implementation in Scala


This workshop complements the earlier talk about Kiama and a Kiama-based implementation of the lambda calculus. We will go into more depth about how Kiama works, the features that Scala provides to make the implementation easy, and how the lambda calculus implementation uses Kiama and Scala. We will walk through some extensions to the basic implementation to reinforce the key ideas. Our aim is to provide participants with a platform for exploration of Kiama and the lambda calculus, as well as guidance for using Scala to implement other domain-specific languages.