IFT313
Introduction aux langages formels
Froduald Kabanza
Département d’informatique
Université de Sherbrooke
Java CUP
Générateur d’analyseurs LALR
IFT313 © Froduald Kabanza 2
Sujets
•Java CUP
–Introduction
–Actions sémantiques
–Gérer des conflits
– Recouvrement d’erreur
IFT313 © Froduald Kabanza 3
Références
[2] Appel, A. and Palsberg. J. Modern Compiler Implementation in Java.
Second Edition. Cambridge, 2004.
–Section 3.4 à 3.5
[4] Aho, A., Lam, M., Sethi R., Ullman J. Compilers: Principles, Techniques, and
Tools, 2nd Edition. Addison Wesley, 2007.
–Section 4.8 à 4.9
IFT313 © Froduald Kabanza 4
Java CUP
–CUP signifie « Construction of Useful Parser »
– C’est un générateur d’analyseurs LALR(1). Il est écrit en Java. Il génère
des analyseurs en Java.
–Écrit originalement par Scott Hudson, Frank Flannery, C. Scott Ananian
(University of Princeton)
– Maintenant maintenu par l’University of Munich.
http://www2.cs.tum.edu/projects/cup/
–Nous voyions une veille version (2006), alignée sur la syntaxe de Yacc
(Yet Another Compiler-Compiler). Yacc est un générateur d’analyseurs
syntaxiques écrit en C pour les environnements UNIX.
IFT313 © Froduald Kabanza 5
Exemple (calcsyntax1/parser.cup)
/* Terminals (tokens returned by the scanner). */
terminal PLUS, TIMES, LPAREN, RPAREN;
terminal Integer NUMBER;
/* Non terminals */
non terminal E, T, F;
/* The grammar */
E::= EPLUS T| T;
T::= TTIMES F| F;
F::= LPAREN ERPAREN | NUMBER ;
1 / 17 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!