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 linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !