Co Co Co
Center
CoCoCo (Compositional Compiler Construction) is a set of libraries and tools in the form of a collection of embedded domain specific languages (EDSL) in Haskell for constructing extensible compilers, where compilers can be composed out of
separately compiled and statically type checked language-definition fragments.
Our approach builds on:
- the introduction of a naming structure which makes it possible to represent mutually dependent structures and the possibility to inspect and manipulate such structures in a type-safe way BSV09
- the description of typed grammar fragments as first class Haskell values VSD12, and the typed Left-Corner Transform to remove left-recursion BSV09b
- the possibility to construct a self-analysing, error correcting parser on the fly Swie00 Swie08
- the possibility to deal with attribute grammars as first class Haskell values, which can be transformed, composed and finally evaluated VSS09 VSM12 VS12.
First-Class Semantics
Papers
[VS12] Viera, M., Swierstra, S. D. Attribute Grammar Macros, XVI Simpósio Brasileiro de Linguagens de Programação (SBLP 2012), Natal-RN, Brazil, Sep 27 - Sep 28, 2012.
(
pdf) (
bibtex)
[VSM12] Viera, M., Swierstra, S. D., and Middelkoop, A. UUAG Meets
AspectAG: How to make Attribute Grammars First-Class, Proceedings of the 12th Workshop on Language Descriptions Tools and Applications (LDTA 2012), Tallinn, Estonia, March 31 - April 1, 2012.
(
pdf) (
bibtex)
[VSS09] Viera, M., Swierstra, S. D., and Swierstra, W. Attribute Grammars Fly First-Class: How to do aspect oriented programming in Haskell, Proceedings of the 2009 SIGPLAN International Conference on Functional Programming (ICFP 2009), Edinburgh, Scotland, August 31 - Septmber 2, 2009.
(
pdf) (
bibtex)
Packages
AspectAG :
AspectAG
First-Class Grammars - Typed Transformations
Papers
[VSD12] Viera, M., Swierstra, S. D., and Dijkstra, A. Grammar Fragments Fly First-Class, Proceedings of the 12th Workshop on Language Descriptions Tools and Applications (LDTA 2012), Tallinn, Estonia, March 31 - April 1, 2012.
(
pdf) (
bibtex)
[BSV09b] Baars, A. I., Swierstra, S. D., and Viera, M. Typed Transformations of Typed Grammars: The Left Corner Transform, Proceedings of the 9th Workshop on Language Descriptions Tools and Applications (LDTA 2009), York, England, March 27th - 28th, 2009.
(
pdf) (
bibtex)
[BSV09] Baars, A. I., Swierstra, S. D., and Viera, M. Typed transformations of typed abstract syntax, Proceedings of the 4th international Workshop on Types in Language Design and Implementation (TLDI 2009), Savannah, GA, USA, January 24 - 24, 2009.
(
pdf) (
bibtex)
[VSL08] Marcos Viera, S. Doaitse Swierstra, Eelco Lempsink. Haskell, Do You Read Me?: Constructing and composing efficient top-down parsers at runtime, Haskell '08: Proceedings of the first ACM SIGPLAN symposium on Haskell (Haskell 2008), Victoria, BC, Canada, 2008.
(
pdf) (
bibtex)
Packages
murder :
murder
TTTAS :
TTTAS
Parser Combinators and Pretty Printing
Papers
[Swie00] S. D. Swierstra, Parser combinators: from toys to tools, in: G. Hutton (Ed.), Haskell Workshop, 2000.
(
pdf) (
bibtex)
[Swie08] S. D. Swierstra, Combinator parsing: A short tutorial, in:
LerNet? ALFA Summer School, 2008, pp. 252–300.
(
pdf) (
bibtex)
[SA98] S. D. Swierstra, Pablo Azero, Attribute Grammars in the Functional Style, in: Proceedings of the SI2000.
(
pdf) (
bibtex)
Packages
uulib :
uulib
uu-parsinglib :
uu-parsinglib
Examples
Oberon-0 :
hackage -
tar.gz (from the
LDTA 2011 tool challenge)
Thesis
Much of the material above has been collected in Marcos Viera's thesis, which can be found
http://www.cs.uu.nl/wiki/bin/view/Center/PhDs?