Dans la partie de cours que j'assure nous introduisons la hiérarchie de Chomsky et nous attaquons ensuite l'analyse syntaxique automatique. Les matériaux de ce cours sont distribués sous la licence Creative Commons Paternité .
Les diapositives sont disponibles ici.
L'énonce des TP est disponible ici.
Dans ce cours nous développons un interpréteur pour un langage simple d'affectations de variables de types nombre entier ou chaîne de caractère. Un programme dans ce langage a la forme suivante :
String var1 = "hello world 1 + 2"; int var2 = 1 - (2 + 3); int var3 = 4 + var2;
Le code source ainsi que quelques exemples sont inclus dans cette archive.
Pour tout compiler il faut effectuer la séquence d'actions suivante :
jflex arith.flex jacc arith.jacc javac ArithEval.java
La commande suivante lance uniquement le scanner sur le premier exemple :
java Yylex examples/example1.duck
La commande suivante lance l'interpréteur sur le premier exemple :
java ArithEval examples/example1.duck
Nous utilisons le générateur de scanners JFlex et le générateur d'analyseurs Jacc. Les deux outils génèrent du code Java. Voici une présentation courte de la façon dont JFlex et Jacc sont utilisés.
Le choix d'outils a été proposé par Frédéric Gava (section Parsing de fichiers en Java). Cette page contient également d'autres diapositives au sujet d'analyse syntaxique.