You are here: UUCS>Center Web>CoCoCo (20 Feb 2013, DoaitseSwierstra)EditAttach

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
CoCoCo.pngpng CoCoCo.png manage 336.1 K 15 Aug 2012 - 19:17 UnknownUser  
Screen_Shot_2012-08-15_at_10.09.50_.pngpng Screen_Shot_2012-08-15_at_10.09.50_.png manage 92.7 K 15 Aug 2012 - 08:10 DoaitseSwierstra  
Swie00.bibbib Swie00.bib manage 0.4 K 15 Aug 2012 - 12:37 UnknownUser  
Swie08.bibbib Swie08.bib manage 1.1 K 15 Aug 2012 - 12:37 UnknownUser  
SwieAzer98.bibbib SwieAzer98.bib manage 0.2 K 15 Aug 2012 - 13:25 UnknownUser  
SwieAzer98.pdfpdf SwieAzer98.pdf manage 171.8 K 15 Aug 2012 - 13:25 UnknownUser  
VS12.bibbib VS12.bib manage 0.3 K 24 Aug 2012 - 16:40 UnknownUser  
VSD12.bibbib VSD12.bib manage 0.3 K 15 Aug 2012 - 12:51 UnknownUser  
VSM12.bibbib VSM12.bib manage 0.3 K 15 Aug 2012 - 12:52 UnknownUser  
oberon0-0.0.1.tar.gzgz oberon0-0.0.1.tar.gz manage 40.8 K 16 Aug 2012 - 19:07 UnknownUser  
Topic revision: r8 - 20 Feb 2013, DoaitseSwierstra
 

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding UUCS? Send feedback