Skip to content


What is this about?

Why do we study (formal) languages in computer science? The main (applied) tasks are recognition and parsing. Parsing is used everywhere. Obviously to parse computer (programming) languages. This includes:

  • compilers
  • interpreters
  • syntax highlighting, pretty-printers
  • static analysis tools, like linters and language servers

But also:

Languages and parsing is studied since 1960-s. There is a lot of information on the subject, but this is still active research area.


I want to collect articles, definitions and some interactive examples. And make it consistent! Because everybody use different terminology and notations.

Work in progress

Project misses a lot of articles, but take a look at playground.

  • Formal languges (the main subject)
  • Automata theory
  • Computational complexity
  • Algebra (like Kleene algebra)
  • Natural language processing