Séance d’introduction

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Structures de données avancées : Principales structures de fichiers
Structures de données avancées : B arbres
Structures de données avancées : Principales structures de données
Structures de données avancées : MTH ( Multidimensional trie hashing )
Structures de données avancées : Introduction
D.E ZEGOUR Site Web du Pr. D.E ZEGOUR ESI (ex INI ex CERI) D.E ZEGOUR
Traitement sémantique et grammaire dattributs Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Le langage Z Pr ZEGOUR DJAMEL EDDINE
Vue générale Pr ZEGOUR DJAMEL EDDINE
Machines de Turing Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Sémantique des déclarations pour le langage Z minimal
Introduction: Concepts de la programmation
Piles, files et listes: notions théoriques
Gestion de la connaissance – lexpérience dun cabinet juridique britannique Kate Stanfield Head of Knowledge Management CMS Cameron McKenna.
Introduction : Compilation et Traduction
Introduction : Compilation et Traduction
Démarche de résolution de problèmes
Programmation logique Logique des prédicats du premier ordre
IFT451 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Introduction à la programmation (Java)
IFT313 Révision finale Département d’informatique
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Automates à pile LR Notion de poignée.
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
Chapitre 3 Syntaxe et sémantique.
Analyse lexicale Pr ZEGOUR DJAMEL EDDINE
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.
Programmation non procédurale Le projet ECOLE 2000
Les différents langages de programmation
Structures de données avancées : Arbres AVL & Arbres Rouge et Noir
Structures de données avancées : Hachage dynamique
© Sopra, 1999 / Date / Nom doc / p1 Ethernet - Pratique SOPRA. / IUT GTR Éric Aimée.
Images, pavages et motifs
Structures complexes Pr ZEGOUR DJAMEL EDDINE
Expressions logiques Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
H5 Harry a un chapeau et une chouette mais pas de balai Harry a un chapeau et une chouette mais pas de balai.
ALGORITHMIQUE ET PROGRAMMATION C
Procédures et fonctions Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Listes linéaires chaînées Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Approches Formelles en Systèmes d'information
D.E ZEGOUR Site Web du Pr. D.E ZEGOUR ESI (ex INI ex CERI) D.E ZEGOUR
Algorithmes et Programmation
Langages de programmation Ordinateurs = Machines à exécution.  D’où la nécessité d’outils de communication qui s’adaptent le mieux aux utilisateurs. Comment.
Sémantique des expressions arithmétiques pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
L’analyse lexicale Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Expressions sur les chaînes de caractères Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
ISBN Chapitre 10 L'implémentation des sous- programmes.
Introduction et Généralités sur l’Algorithmique
Une brève présentation de C# Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
UE MAREP Cours 12 : Révisions
Introduction à la compilation
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) C O M P I L Z.
COMPIL - Z Compilateur visible
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Transcription de la présentation:

Séance d’introduction Cours de Compilation Séance d’introduction Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) www.zegour.uuuq.com email: d_zegour@esi.dz

Introduction (Définition) Compilation : Étude des techniques permettant de traduire un programme source en un programme objet Programme source : écrit dans un langage de programmation Programme objet : dépend de la machine

Introduction(Pré-requis) Compilation : Algorithmes et structures de données (Piles, arbres, graphes,… ) Programme source : Théorie des langages Programme objet : Structure des machines Autres : programmation procédurale, programmation objet, quelques langages de programmation

Introduction(Structures de données) Algorithmes Structures de données (Pile, arbre, graphe,… ) Pile Arbre Graphe …

Introduction(Théorie des langages) Relation entre les mathématiques et les langages Notion de grammaires et langages Classification (Chomsky) Les langages réguliers et les automates Les langages algébriques (contexte libre) et les automates à pile …

Introduction(Structure des machines) Algèbre de Boole Représentation et codage de l’information Techniques d’adressage Exécution d’une instruction Les langages d’assemblage et les assembleurs …

Introduction(Organisation du cours) Cours théorique accompagné de code C# (T1, T2, …, T8) (DotNet + Introduction C#) Cours spécifique : Réalisation du compilateur (Langage Z) (P1, P2,…. ,P20)

Introduction(Plan/Cours théorique) T1 : Vue générale T2 : Analyse lexicale T3 : Analyse syntaxique T4 : Traitement sémantique et grammaires d’attribut T5 : Table des symboles T6 : Génération de code T7 : Les analyseurs Bottom-up T8 : Générateurs de compilateurs

Introduction(Plan/Cours théorique) T1: Vue générale Motivation Structure d‘un compilateur Grammaires Arbres Syntaxiques et Ambiguïté Classification de Chomsky

Introduction(Plan/Cours théorique) T2 : Analyse lexicale Taches d‘un scanner Grammaires Régulières et Automates finis Implémentation des scanners

Introduction(Plan/Cours théorique) T3 : Analyse syntaxique Grammaires contexte-libre et Automates à pile(PDA) Analyse descendante récursive Propriétés LL(1) Traitement des erreurs

Introduction(Plan/Cours théorique) T4 : Traitement de la sémantique et les grammaires d‘attribut Traitement sémantique Grammaires d’attributs (ATG) Transformations des ATG en un analyseur Exemples d’applications

Introduction(Plan/Cours théorique) T5 : Table des symboles Vue générale Symboles Portée Types

Introduction(Plan/Cours théorique) T6 : Génération Code Vue générale Le code à générer Organisation de la mémoire Expressions Affectations Structures de contrôle Méthodes

Introduction(Plan/Cours théorique) T7 : Les analyseurs Bottom-up Comment fonctionne un analyseur Bottom-up Grammaires LR Génération de la table LR Traitement de la sémantique Traitement des erreurs LR Variantes de LR

Introduction(Plan/Cours théorique) T8 : Générateurs de compilateurs Vue générale Yacc Lex Coco/R

Introduction(Plan/Cours spécifique) Langage Z (P1) et langage Z minimal (P2) Réalisation d’un compilateur très simplifié pour le langage minimal (P3  P10) Extension du langage minimal par Expressions logiques (P11)et chaînes de caractères (P12) Les structures simples et tableaux (P13) Les structures de contrôle (P14) Les procédures et fonctions (P15) Les structures complexes (P16) Les machines abstraites (P17  P19) Les fonctions standards (P20)

Introduction(Plan/Cours spécifique) Réalisation du compilateur pour le langage Z minimal Réalisation analyse lexicale Réalisation analyse syntaxique Organisation simple de la mémoire et attribution des adresses Sémantique des déclarations, instructions et expressions Interprétation du langage

Introduction(Plan/Cours spécifique) Les machines abstraites Z Machines de Turing Les listes linéaires chaînées Les fichiers

Introduction(Plan/Réalisation) Démarche Définir un langage minimal de Z et réalisez le compilateur en entier Enrichir progressivement la grammaire A chaque étape, redémarrer toutes les étapes : lexique, syntaxe, sémantique, génération de code S‘arrêter quand le langage entier est traité.

Organisation du cours 1 T1 P1 P2 T Cours théorique général T2 2 P3 P Cours spécifique 3 4 T3 P4 Travaux dirigés Introduction Ordre de présentation du cours T4 5 P5 P6 6 7 T5 Dot Net et C# P7 P8 P9 P10 PAUSE : Terminer la réalisation du compilateur du langage Z minimal COMPIL Z 8 9 10 T6 P11 P12 P13 P14 P15 11 T7 P16 P17 P18 12 T8 P19 P20 FIN : Terminer la réalisation du compilateur du langage Z

Introduction(Extensions) Formalisation de la sémantique des langages de programmation : Spécifications relationnelles, axiomatiques, algébriques, ... Compilateurs/Interpréteurs pour langages non procéduraux - Langages fonctionnels (LISP) - Langages logiques (PROLOG) (Syntaxe identique mais Sémantique totalement différente)

Introduction(Outils standards) Langage de programmation : pour l‘écriture du compilateur/interpréteur (C++, Delphi,... ) Langage d‘assemblage : pour la génération de code (Processeur Intel) Langage pivot (Machine Virtuelle) : pour la génération de code ( P-code de PASCAL, JVM, La machine virtuelle de .NET : Common Language Runtime (CLR) )

Introduction(Outil spécifique) Khawarizm niveau 1 : environnement pour le développement des algorithmes en langage Z (conçu pour l‘apprentissage de la programmation) Compil-Z : dévoiler le fonctionnement interne des compilateurs

Introduction(Références) Compiler Construction for digital computers. David Gries. Addison-Wesley Edition. 1975 Principles of Compiler Design. A.V. Aho, J.D Ullman. Addison-Wesley Edition. 1977 Compilers : Principles, Techniques and Tools. Alfred V.Aho, Ravi Sethi, Jeffrey D.Ullman. Addison-Wesley Edition. 2003