78 lines
2.7 KiB
Org Mode
78 lines
2.7 KiB
Org Mode
#+TITLE: Analyse syntaxique
|
|
|
|
#+LANGUAGE: fr
|
|
|
|
#+ATTR_HTML: :alt en anglais :class lang-lifted
|
|
[[file:../en/parsing-upec.org][file:../content/imgs/en.png]]
|
|
|
|
#+ATTR_HTML: :alt retourner à l'accueil :class home
|
|
[[file:index.org][file:../content/imgs/home.png]]
|
|
|
|
J'ai assuré la partie d'un cours sur la théorie des langages formels
|
|
portant sur la [[https://fr.wikipedia.org/wiki/Hi%25C3%25A9rarchie_de_Chomsky][hiérarchie de Chomsky]] et sur l'[[https://fr.wikipedia.org/wiki/Analyse_syntaxique][analyse syntaxique]].
|
|
|
|
#+ATTR_HTML: :alt image de la licence Creative Commons Attribution Alone :class ccby
|
|
[[https://fr.wikipedia.org/wiki/Licence_Creative_Commons][file:../content/imgs/ccby.png]]
|
|
|
|
Mes supports de cours sont distribués sous la [[https://fr.wikipedia.org/wiki/Licence_Creative_Commons][licence Creative Commons
|
|
Paternité]].
|
|
|
|
|
|
* Diapositives
|
|
Les diapositives sont disponibles [[file:../content/courses/parsing-upec/parsing.pdf][ici]].
|
|
|
|
* Travaux Pratiques
|
|
L'énonce du TP est disponible [[file:../content/courses/parsing-upec/parsing-tp.pdf][ici]].
|
|
|
|
* Exemples de code
|
|
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 :
|
|
|
|
#+BEGIN_SRC
|
|
String var1 = "hello world 1 + 2";
|
|
int var2 = 1 - (2 + 3);
|
|
int var3 = 4 + var2;
|
|
#+END_SRC
|
|
|
|
Le code source ainsi que quelques exemples sont inclus dans [[file:../content/courses/parsing-upec/parsing.zip][cette
|
|
archive]].
|
|
|
|
Pour tout compiler, il faut effectuer la séquence d'actions
|
|
suivante :
|
|
|
|
#+BEGIN_SRC
|
|
jflex arith.flex
|
|
jacc arith.jacc
|
|
javac ArithEval.java
|
|
#+END_SRC
|
|
|
|
La commande suivante lance uniquement le scanner sur le premier
|
|
exemple :
|
|
|
|
#+BEGIN_SRC
|
|
java Yylex examples/example1.duck
|
|
#+END_SRC
|
|
|
|
La commande suivante lance l'interpréteur sur le premier exemple :
|
|
|
|
#+BEGIN_SRC
|
|
java ArithEval examples/example1.duck
|
|
#+END_SRC
|
|
|
|
* Outils
|
|
Nous utilisons le générateur de scanners [[http://jflex.de/download.html][JFlex]] et le générateur
|
|
d'analyseurs [[http://web.cecs.pdx.edu/~mpj/jacc/][Jacc]]. Les deux outils génèrent du code Java. [[file:../content/courses/parsing-upec/parsing-workflow.pdf][Voici]] une
|
|
présentation courte de la façon dont JFlex et Jacc sont utilisés.
|
|
|
|
Ce choix d'outils a été proposé par [[http://lacl.univ-paris12.fr/gava/actuel.htm][Frédéric Gava]] (section Parsing
|
|
de fichiers en Java). Cette page contient également d'autres
|
|
diapositives au sujet de l'analyse syntaxique.
|
|
|
|
|
|
* Local Variables :noexport:
|
|
# Local Variables:
|
|
# org-link-file-path-type: relative
|
|
# eval: (auto-fill-mode)
|
|
# ispell-local-dictionary: "fr"
|
|
# End:
|