Lightweight Language Processing in Kiama and Scala
Anthony M. Sloane
Kiama is a language processing library for the Scala programming language. The project aims to bring high-level language processing paradigms within the reach of Scala programmers. Kiama contains embedded domain-specific languages to support tree annotation via attribute grammars, tree transformation via strategy-based rewriting, and dynamic semantics via abstract state machines. In each case, the embedded languages closely resemble equivalent notations used in generator-based systems, but are much more lightweight since they require no generation phase other than compilation and can easily interoperate with each other or with other Scala code. This talk will provide an overview of Kiama's capabilities and implementation using a series of typical language processing examples.