TP_FLEX

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 12

RAPPORT DE TRAVAUX PRATIQUES

Compilation

Enseignant :

Dr. MAHAMAT Atteib

Etudiants :
DJEPATALEM Renaud
MINGANE Gracia
Sommaire
Introduction
TAF :
1. Outil d’analyse lexical
2. Fichier LEX
 Chaine de développement d’un
programme
3. Structure du fichier de spécification
LEX
Exercice 2
Exercice 3
Exercice 4
Conclusion

Page 1
Introduction

L’analyseur lexical constitue la première étape d’un


compilateur, sa tâche principale est de lire les caractères
d’entrées et de produire comme résultat une suite d’unités
lexicales que l’analyseur syntaxique aura à traiter.
Une unité lexicale est une suite de caractères qui a une
signification collective.

L’analyseur lexical réalise certaines tâches secondaires


comme l’élimination de caractère superflus
(commentaires, tabulations, retour à la ligne, …) et gère
aussi les numéros de ligne dans le programme source
pour pouvoir associer à chaque erreur rencontrée par la
suite de ligne dans laquelle elle intervient.

Page 2
I. Outil d’analyse lexical
 De nombreux outils ont été bâtis pour construire des
analyseurs lexicaux à partir des notations
spécifiques basées sur des expressions régulières.
 LEX est un utilitaire d’UNIX
 LEX accepte en entrée des spécifications d’unités
lexicales sous forme de définitions régulières et
produit un programme écrit dans le langage de haut
niveau qui une fois compilé reconnait ces unités
lexicales.
 Ce programme est donc un analyseur lexical

II. Fichier LEX


 Chaine de développement d’un programme

 Enregistrer le fichier sous forme : nom.l


 Compiler le fichier via Lex : lex nom.l
 Creation d’un nouveau fichier nommé : lex.yy.c
III. Structure du fichier de spécification LEX
 Exercice 2

Page 3
Création d’un répertoire TP_Flex et TP1(exercice 2)

Création du fichier lex nommé binair_0_11.l

s
Création du fichier lex nommé binair_pair_0.l

Création du fichier lex nommé binair_exec_1

Page 4
1) Déclaration (en C) de variables constantes

2) Déclaration de définitions régulières


Cette deuxième partie c’est la partie qui contient la
définition des expressions régulières, donc à chaque
expression je peux lui associer les noms.

3) Règle de traduction
Ensuite il vient la troisième partie du code dans la
structure générale d’un programme en lex dont c’est la
partie qu’on appelle les règles de traductions, c’est-à-dire
chaque expression régulière je vais lui associer des
axiomes. Je vois les expressions régulières avec leurs

Page 5
noms, le délimite par les accolades, une fois il trouve ce
binaire il va me l’afficher « c’est un nombre binaire ».

yytext est un tableau de caractère dans laquelle on stocke


la chaine acceptée par une expression régulière.
4) Bloc principal et fonction auxiliaire
Le programme principal utilise la fonction prédéfinie pour
faire appel à l’analyseur lexical.

 Exercice 3
1) Créer un nouveau dossier "TP1"

2) Créer un fichier flex "ex1.lex"

Page 6
3) Compiler le fichier "ex1.lex" avec la commande "flex"

4) Compiler le fichier "lex.yy.c" en utilisant la


commande "gcc"

5) Lancer le programme "ex1", puis taper les lignes

6) Pour terminer l’analyse lexicale, taper « Ctrl + C »

Page 7
7) Le résultat de l’analyse s’affiche sur la sortie
standard (l’écran)

8) Cette règle demande à Flex d’ignorer (point-virgule ;)


toute chaîne de caractères non reconnue par aucune
des expressions régulières écrites

9) Créer un fichier texte "data.txt"

10) Modifier le code précédent

Page 8
 Exercice 4
1) Écrire un programme Flex qui extrait les
identificateurs JavaScript d’un fichier

2) Écrire un programme Flex qui extrait les instructions


d’incrémentations et de décrémentations avec des
identificateurs JavaScript.

Page 9
Page
10
Conclusion
Flex est un outil de génération automatique d’analyseurs
lexicaux.
Cette description est donnée sous la forme d’expressions
régulières étendues et du code écrit en langage C (ou C
+ +).
Un fichier Flex contient la description d’un analyseur
lexical à générer
Flex génère comme résultat un fichier contenant le code
C du futur analyseur lexical

Page
11

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy