User Tools

Site Tools


Course on formal languages

I teach the part of this course related to the Chomsky hierarchy and parsing. The materials of this course are distributed under the Creative Commons Attribution Alone licence .


The slides for my part of the course are available here (in French).

Practical assignment

The exercises for the practical assignment (in French) can be downloaded here.

Source code

In this course I show a simple interpreter for a language of variable assignments. The variables can either be strings or integer numbers. A program in this language may look as follows:

String var1 = "hello world 1 + 2";
int var2 = 1 - (2 + 3);
int var3 = 4 + var2;

This archive contains the complete source code of the interpreter as well as several example programs.

To build the project, run the following commands:

jflex arith.flex
jacc arith.jacc

The following command runs just the scanner on the first example:

java Yylex examples/

The following command runs the interpreter on the first example:

java ArithEval examples/


The project relies on JFlex scanner generator and Jacc parser generator. Both tools generate Java code. Here is a short overview of a typical workflow.

This toolchain was suggested by Frédéric Gava (section Parsing de fichiers en Java). This page also contains other slides about parsing.

en/cours_de_theorie_des_langages.txt · Last modified: 2015/11/16 19:14 by sivanov