Cours compilation COMPILATION COURS EXERCICES ET PROJETS DE PROGRAMMATION Professeur Faissal OUARDI Courriel f ouardi um r ac ma Licence Fondamentale en Sciences Mathématiques et Informatique Année universitaire - CContents Liste des ?gures ii Liste des t
COMPILATION COURS EXERCICES ET PROJETS DE PROGRAMMATION Professeur Faissal OUARDI Courriel f ouardi um r ac ma Licence Fondamentale en Sciences Mathématiques et Informatique Année universitaire - CContents Liste des ?gures ii Liste des tables et algorithmes iv Introduction À l ? attention des lecteurs Contexte d ? apparition Structure générale d ? un compilateur Rappel sur les langages formels Fondements Alphabet mots et langages Grammaires Automates ?nis Automates ?nis déterministes Automates ?nis non déterministes Automates ?nis non déterministes avec -transitions Expressions régulières Langages réguliers et propriétés de fermeture Exercices Analyse lexicale Rôle de l ? analyseur lexical Table des symboles Spéci ?cation lexicale Classes des unités lexicales Expressions régulières notation étendue Reconnaissance des unités lexicales Quelque problèmes dans la reconnaissance des tokens Approche de reconnaissance Conventions Implémentation d ? analyseurs lexicaux Cii Contents Analyseur lexical en dur Implémentation d ? automates ?nis Générateurs d ? analyseurs lexicaux cas de Flex Exercices Analyse syntaxique Rôle de l ? analyseur syntaxique Spéci ?cation syntaxique Grammaires hors contexte et dérivation vs réduction Qualités et formes particulières des grammaires Analyse syntaxique descendante Analyse par la descente récursive Analyse LL k Analyse syntaxique ascendante Analyse LR Analyse SLR Analyse LR canonique Analyse LALR Générateurs d ? analyseurs syntaxiques avec Bison Partie déclaration C Partie déclaration Bison Partie règles de la grammaire Partie code additionnel Gestion des erreurs Récupération en mode panique Récupération au niveau du syntagme Production d ? erreurs Exercices Travaux pratiques Bibliography vi CListe des ?gures Code héxadécimal du programme d ? Eclid calculant le PGCD de deux entiers Portion de code en C et l ? équivalent en assembleur Aire d ? un triangle abc en Assembleur et Java Architecture générale d ? un compilateur Programme source du PGCD en C Quelques unités lexicales du code source PGCD Arbre syntaxique d ? une portion du code PGCD Illustration de la hiérarchie de Chomsky Exemple d ? un AFD Exemple d ? un AFN AFD obtenu par la construction des sous-ensemble appliquée à l ? AFN précédent Exemple d ? un -AFN Un AFD qui reconna? t le langage dénoté par l ? expression a b ? a Interaction entre l ? analyses lexicale et syntaxique Portion d ? un code source fourni à l ? analyseur lexical Le code précédent vu par l ? analyseur lexical comme un ot de caractères Suite de tokens émis par l ? analyseur lexical Construction de Thompson pour les cas de base et a Construction de Thompson pour les cas d ? induction E F EF et E ? Construction de Thompson pour l ? expression a b ? c Automate de a b ? bab par la méthode des dérivés Fonctionnement de Flex Un exemple complet de code Flex Interaction entre les di ?érents modules de la partie analyse d ? un compilateur Deux arbres syntaxiques pour dériver la cha? ne w a b ? c Civ Liste des ?gures Deux arbres syntaxiques de la même cha? ne dans la grammaire des instructions conditionnelles
Documents similaires










-
66
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise- Détails
- Publié le Sep 28, 2022
- Catégorie Management
- Langue French
- Taille du fichier 329.8kB