Co Co Co

Center

Screen_Shot_2012-08-15_at_10.09.50_.png

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?

Topic attachments
I Attachment Action Size Date Who Comment
pngpng CoCoCo.png manage 336.1 K 15 Aug 2012 - 19:17 MarcosViera  
pngpng Screen_Shot_2012-08-15_at_10.09.50_.png manage 92.7 K 15 Aug 2012 - 08:10 DoaitseSwierstra  
elsebib Swie00.bib manage 0.4 K 15 Aug 2012 - 12:37 MarcosViera  
elsebib Swie08.bib manage 1.1 K 15 Aug 2012 - 12:37 MarcosViera  
elsebib SwieAzer98.bib manage 0.2 K 15 Aug 2012 - 13:25 MarcosViera  
pdfpdf SwieAzer98.pdf manage 171.8 K 15 Aug 2012 - 13:25 MarcosViera  
elsebib VS12.bib manage 0.3 K 24 Aug 2012 - 16:40 MarcosViera  
elsebib VSD12.bib manage 0.3 K 15 Aug 2012 - 12:51 MarcosViera  
elsebib VSM12.bib manage 0.3 K 15 Aug 2012 - 12:52 MarcosViera  
elsegz oberon0-0.0.1.tar.gz manage 40.8 K 16 Aug 2012 - 19:07 MarcosViera