• Aucun résultat trouvé

IFT313 Introduction aux langages formels

N/A
N/A
Protected

Academic year: 2022

Partager "IFT313 Introduction aux langages formels"

Copied!
5
0
0

Texte intégral

(1)

IFT313

Introduction aux langages formels

Froduald Kabanza

Département d’informatique Université de Sherbrooke

JavaCC

(2)

IFT313 © Froduald Kabanza 2

Objectifs

• Introduction à JavaCC

(3)

IFT313 © Froduald Kabanza

3

Références

[2] Appel, A. and Palsberg. J. Modern Compiler Implementation in Java.

Second Edition. Cambridge, 2004.

Sections 3.4 à 3.5

[6] JavaCC : A parser / scanner generator for Java: http://

planiart.usherbrooke.ca/kabanza/cours/ift313/Tools/javacc-5.0.rar

(4)

IFT313 © Froduald Kabanza 4

JavaCC

• JavaCC ne fait pas que valider la syntaxe.

• Avec les attribut sémantiques, JavaCC permet:

– D’effectuer des calculs à la volé (exemple Calc1)

– De construire un arbre syntaxique abstrait (exemple Calc2 ci-après);

• Limites avec JavaCC:

– Un seul attribut par symbole.

– Une seule passe d’évaluation.

• Pour aller au-delà, il faut utiliser d’autres outils ou des méthodes adhoc pour évaluer les attributs (avec l’aide l’outil JJTree). Ceci est au-delà du cours.

• .

(5)

IFT313 © Froduald Kabanza 5

Exemples

• Calc1

• Calc2

Références

Documents relatifs

- Étant donné un ensemble S d’états de l’AFN, ε-closure(S) est l’ensemble des états atteignables dans l’automate, à partir d’un état dans S, et sans consommer un

• Deux états dans d’un AFD M sont équivalents (indistinguable) si et seulement si pour chaque mot u, lorsque une exécution de M sur l’entrée u commence dans l’un ou

- Pour analyser la syntaxe d’une grammaire hors-contexte, nous ajoutons une pile à un automate fini pour obtenir un modèle de programmes plus puissant connu sous le nom de

 Pour ce faire la partie gauche de la production (un non-terminal) est enlevée de la pile et remplacée par la partie droite de la production. (q, ε, A)  (q, a) pour chaque

- On vient de voir qu’en calculant First(S) ou First(XYS) on doit tenir compte des non-terminaux qui pourraient dériver la chaîne vide et de ceux qui pourraient les suivre dans

 Parce que les deux règles ont la même fonction d’analyse (c-à-d., la fonction correspondant au non terminal dans la partie gauche de chaque production).. Si elle partagent le

– Si le symbole est un non terminal, l’attribut pourrait être une donnée calculée en utilisant les actions sémantiques. – Une grammaire avec des attributs est appelée

• Pouvoir programmer un analyseur syntaxique récursif pour une grammaire donnée. • Connaître les fondements d’un générateur d’analyseur syntaxique LL tel