TY - GEN
T1 - Epic—A Library for Generating Compilers
AU - Brady, Edwin Charles
PY - 2012
Y1 - 2012
N2 - Compilers for functional languages, whether strict or non-strict, typed or untyped, need to handle many of the same problems, for example thunks, lambda lifting, optimisation, garbage collection, and system interaction. Although implementation techniques are by now well understood, it remains difficult for a new functional language to exploit these techniques without either implementing a compiler from scratch, or attempting to fit the new language around another existing compiler. Epic is a compiled functional language which exposes functional compilation techniques to a language implementor, with a Haskell API. In this paper we describe Epic and outline how it may be used to implement a high level language compiler, illustrating our approach by implementing compilers for the λ-calculus and a dynamically typed graphics language.
AB - Compilers for functional languages, whether strict or non-strict, typed or untyped, need to handle many of the same problems, for example thunks, lambda lifting, optimisation, garbage collection, and system interaction. Although implementation techniques are by now well understood, it remains difficult for a new functional language to exploit these techniques without either implementing a compiler from scratch, or attempting to fit the new language around another existing compiler. Epic is a compiled functional language which exposes functional compilation techniques to a language implementor, with a Haskell API. In this paper we describe Epic and outline how it may be used to implement a high level language compiler, illustrating our approach by implementing compilers for the λ-calculus and a dynamically typed graphics language.
U2 - 10.1007/978-3-642-32037-8_3
DO - 10.1007/978-3-642-32037-8_3
M3 - Conference contribution
SN - 978-3-642-32036-1
T3 - Lecture Notes in Computer Science
SP - 33
EP - 48
BT - Trends in Functional Programming
PB - Springer-Verlag
T2 - 12th International Symposium, Trends in Functional Programming (TFP) 2011
Y2 - 16 May 2011 through 18 May 2011
ER -