@inproceedings{f1e2cb8348174263bb26889e83553c01,
title = "Lightweight language processing in Kiama",
abstract = "Kiama is a lightweight language processing library for the Scala programming language. It provides Scala programmers with embedded domain-specific languages for attribute grammars and strategy-based term rewriting. This paper provides an introduction to the use of Kiama to solve typical language processing problems by developing analysers and evaluators for a simply-typed lambda calculus. The embeddings of the attribute grammar and rewriting processing paradigms both rely on pattern matching from the base language and each add a simple functional interface that hides details such as attribute caching, circularity checking and strategy representation. The similarities between embeddings for the two processing paradigms show that they have more in common than is usually realised.",
author = "Sloane, {Anthony M.}",
year = "2011",
doi = "10.1007/978-3-642-18023-1_12",
language = "English",
isbn = "3642180221",
volume = "6491",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer, Springer Nature",
pages = "408--425",
editor = "Fernandes, {Jo{\~a}o M.} and Ralf L{\"a}mmel and Joost Visser and Jo{\~a}o Saraiva",
booktitle = "Generative and Transformational Techniques in Software Engineering III - International Summer School, GTTSE 2009, Revised Papers",
address = "United States",
note = "3rd International Summer School on Generative and Transformational Techniques in Software Engineering, GTTSE 2009 ; Conference date: 06-07-2009 Through 11-07-2009",
}