LL(1) for developers


I would like to show my developer collegues that writing parsers is actually not that complicated, specifically LL(1) using recursion.

From my experience I know you have to eliminate ambiguity, left recursion and left factors. I created a presentation to educate my collegues these basic actions to take away the fear of complexity (“creating languages” sounds like a “godmode action”).

Here is a link of a draft…

Feel free to review. I would be happy about feedback :).

Do you know anything I missed?

  • dangling else?
  • LL definition?



There are 3 typos in slide 16: precendence => precedence

Kind regards,

1 Like

I forgot to highlight another one in that slide: ambigious => ambiguous

Thank you :slight_smile: Those words I still have to lookup in the dictionary …

I like both the idea and the result. My suggestion would be to create a repository on GitHub and use a tool like pandoc which allows creating slideshows from lightweight markup syntaxes like Markdown (or others), as well as PDF documents (via ODT files):

Having the slideshow as a version-controlled source repository would allow contributors to participate to the project (even for graphics), and would also allow to host translations to other locales, reusing the common assets and toolchain.

Thanks. That is a good idea. I made these slides with Apple Keynote on my Apple tablet… that is maybe a restriction. Markdown is text already. The most parts are handwritten. It was fun to draw images and to maintain my own syntax highlighting (red tokens, blue rules).
I will definetly upload the result to Github. But translating to markdown or svg is too much in the moment. My target group is about 5 developers big.
Maybe you are able to convince me to do it. My freetime is very limited. I want to focus on drawing to be honest.

1 Like

You could start by creating the repository and dump the text and images, and add a license (CC-BY-SA or CC-BY-SA-NC would be great). I’ll happily help with the plain-text 2 markdown slides conversion work — I’ve tight free time too, but we won’t be facing a tight schedule anyhow, the project would be ready when it’s ready.

I’ve seen many slides on this topic, but can’t recall any of them having a FOSS license, and none of them were published in a version-controllable format (they all are either PDF of Power-Point files).
It would be great to have these slides in a format which helps collaborative editing and, most of all, translation into other locales.

The ideal solution would be to provide the English version, and at some point declare it “final” (no further text revisions) so anyone is free to add to the repository the required assets to build the slides in other locales. Once the English version is up and running, maintenance work would be limited to accepting PRs for new locales and updating scripts as the involved technologies are updated.

I think it would actually be a good project from which many could benefit.

I can help setup the whole repository: Git and EditorConfig settings, Travis CI for testing builds and other automation tasks (including automated releases once it’s ready), and setting up the pandoc toolchain to create the slides, and the required templates and stylesheets.

As for the graphics, I’m quite good at drawing, and have experience in conversion from and to the various formats; so hopefully I could help there too.

Obviously, there’s no rush, it will take the time needed according to participants availability.

My GH user name is tajmone, in case you need to notify or invite me:

1 Like

Today I will present it to my collegues. I can upload it after I merged in every feedback. One problem is Keynote. It is hard to export to SVG. Maybe PDF as middleman. I will have to look at it.


Sorry for forgetting. I did not manage to split the keynote file. I will ask my sister who is a mac user if she can do it.

1 Like