CoCoDo is a coding dojo where you can enjoy an entire day of compiler programming under gentle guidance of field experts.

Compiler construction comprises, but is not limited to, lexical analysis, syntactic analysis, preprocessing, context handling, code generation, code optimisation, virtual machines, interpreters, smell detection, clone management, portability, migration, refactoring, domain-specific language design, linking and loading, assembling and disassembling, generics and reflection, numerous paradigms and so much more.

Also, check out the Raincode Labs Compiler Coding Dojo website for more technical info.

This years' Coding Sessions

You're viewing the program in a time zone which is different from your device's time zone change time zone

Mon 22 Mar

Displayed time zone: Belfast change

13:00 - 14:30
Session The First: SpoofaxCoCoDo at Virtual Space A
Chair(s): Vadim Zaytsev University of Twente, Netherlands
13:00
90m
Talk
A Tutorial on the Spoofax Language Workbench
CoCoDo
Eelco Visser Delft University of Technology
15:00 - 16:30
Session The Second: SmalltalkCoCoDo at Virtual Space A
Chair(s): Johan Fabry Raincode Labs, Belgium
15:00
90m
Talk
An Interactive Exploration of a Simple Compiler
CoCoDo
Marcus Denker INRIA Lille
17:00 - 19:00
Session The Third: LLVMCoCoDo at Virtual Space A
Chair(s): Vadim Zaytsev University of Twente, Netherlands
17:00
2h
Talk
From Abstract Syntax Trees to Machine Code with LLVM
CoCoDo
Dimi Racordon University of Geneva, Switzerland

Call for Participation

You are invited to participate in a coding dojo unlike any other. CoCoDo will unravel the mysteries of one of the earliest and the most successful branches of computer science: compiler construction. If you ever studied any computing discipline, you must have learnt something about compilers as well, and unless you work at very specialised companies, you think you forgot everything about it since. Yet, almost every time you develop a non-trivial piece of software, you end up converting data between formats, traversing hierarchical structures, analysing and representing dependences and doing many other things that are at the heart of compiler design and implementation. Whether you are applying a Visitor design pattern or emulating a state machine with a switch/case statement, you are programming a little part of a compiler for your own language.

If you participate in CoCoDo, you will have a chance to immerse yourself in the marvels of compiler technologies for one day — and if you like it, you are welcome to stay in this field! Our coding dojo will be split into sessions, each dedicated to one aspect of compilation, with brief explanations and supervision by leading experts in the field. There will be several technologies, mainstream and otherwise, laid out at your disposal. Better yet, you can bring your own workbench and show us how it’s done.

We are equally open to participants of all backgrounds, all cultures and all trades. Choose your technology or add your own here: https://cocodo.github.io

(sections for ANTLR, Beaver, Bison, BiYacc, BtYacc, byacc, BYACC/J, Coco/R, Copper, DCG, Eli, Ensō, Frown, GDK, GOLD, Happy, Iguana, Irony, JastAdd, JavaCC, jparsec, Kiama, Kleenex, kwParsing, Laja, MetaEdit, ML-Yacc, MPS, Parsec, ParseLib, parsnip, PetitParser, PLY, PRECC, PyBison, PyLR, pyparsing, pysec, Racket, Ragel, Rascal, RecDescent, SableCC, Silver, SimpleParse, SJPT, SPARK, Spirit, Spoofax, SwiftParsec, TXL, Waxeye, Whimsy, Whole, xtc, Xtext, yacc and YAPPS)

Questions? Use the CoCoDo contact form.