COMPIL - Z Compilateur visible

Slides:



Advertisements
Présentations similaires
Comment utiliser PowerPoint
Advertisements

Chapitre annexe. Récursivité
Initiation à la programmation et algorithmique cours 4
Le langage Z Pr ZEGOUR DJAMEL EDDINE
Sémantique des déclarations pour le langage Z minimal
Introduction: Concepts de la programmation
Algorithmique Résume.
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
C.
! ! ! PROCEDURE TYPE POUR ORGANISER L ’ANONYMAT
INTRODUCTION.
Introduction : Compilation et Traduction
La fonction Style Permet de créer des types de texte, par exemple
Principe de défilement du document dans un traitement de texte
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Systèmes d’exploitation
Commission scolaire des Laurentides
Langage C Licence Informatique 3ème année
Les bases de l’Algorithmique
Introduction : Compilation et Traduction
PRESENTATION DU LOGICIEL
Professeure : Kaoutar Année Scolaire : 2012 / 2013
Introduction à l’algorithmique
Démarche de résolution de problèmes
Algorithmique et Programmation
Les éléments de base de l’algorithmique
Analyse lexicale Généralités Expressions rationnelles Automates finis
Création d’un programme :
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Programmation fonctionnelle Le langage LISP
Algorithmique et Programmation
Introduction à la programmation (Java)
FICHIERS : Définition : Algorithme général:
Structures de données IFT-2000
Semaine #1 INF135 par Frédérick Henri.
Chapitre 3 Syntaxe et sémantique.
Séance d’introduction
Programmation non procédurale Le projet ECOLE 2000
Structures de données IFT-2000
Cours Architecture des Systèmes Informatiques
INTRODUCTION.
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)
Algorithmes et Programmation
Aide-mémoire sur Lync 2013 pour Office 365
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
Sémantique des expressions arithmétiques pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
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)
Méthodes et outils de conception Introduction à la programmation Paramètre de retour Appel d’une fonction Portée des variables Définition Pourquoi les.
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
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Introduction et Généralités sur l’Algorithmique
Fonctions standards Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Patricia Renault UPMC 2005/2006
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) C O M P I L Z.
Fichiers Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Scripts et fonctions Instructions de contrôle
Philippe Gandy - 1 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Objets et Actions Élémentaires.
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Transcription de la présentation:

COMPIL - Z Compilateur visible D.E ZEGOUR Institut National d ’Informatique

Notions sur les compilateurs Définition Un compilateur a pour rôle de transformer tout programme écrit dans un langage source en un programme objet (code) réellement exécuté par la machine. Historique Programmation en langage machine ( suite de 0 et de 1 ) Programmation en langage d ’assemblage grâce à des assembleurs (écrit en langage machine pour la première fois ) Programmation en langage évolué grâce à des compilateurs (écrit pour la première fois en langage d ’assemblage ) Naissance de langages ( écrit actuellement avec des compilateurs (langages ) de haut niveau )

Notions sur les compilateurs Phases d ’un compilateur La compilation d'un programme passe par plusieurs phases : - analyse lexicale - analyse syntaxique - analyse sémantique - interprétation ou génération de code Lorsqu'on passe par la phase de génération de code on parle de compilateur. Lorsqu'on passe par la phase d'interprétation on parle d'interpréteur.

Notions sur les compilateurs Analyse lexicale L'analyse lexicale est une analyse microscopique des éléments formant un programme. Ces éléments, appelés unité lexicales, sont les mots réservés du langage, les identificateurs utilisateurs, les caractères spéciaux, les constantes, etc. Un analyseur lexical élimine tout ce qui n'est pas utile pour la phase suivante qui est l'analyse syntaxique. Il ignore ainsi les commentaires et les blancs.

Notions sur les compilateurs Analyse sémantique Donne un sens aux différentes instructions du programme. Facilite l ’étape de génération de code ou d'interprétation. Transforme l'ensemble de codes en une forme interne autour de laquelle gravitent des tables indispensables pour la phase d'interprétation ou de génération de code. Forme interne = découpage du programme en un ensemble d'opérations élémentaires directement interprétées dans un autre langage de programmation ou traduites en code objet.

Notions sur les compilateurs Analyse syntaxique L'analyse syntaxique est une analyse macroscopique. Derrière tout langage de programmation il y a une grammaire formée de l'ensemble des règles utilisées pour l ’écriture des programmes.

Notions sur les compilateurs Génération de code La phase de génération de code consiste à associer à chaque élément de la forme interne l ’équivalent en code objet. Interprétation La phase d'interprétation consiste à associer à chaque élément de la forme interne l ’équivalent dans le langage d'interprétation.

Langage considéré Généralités ( le langage Z ) Z est un langage simple con‡u spécialement pour l'initiation à l'algorithmique et aux concepts élémentaires de la programmation. (KHAWARIZM I) Il est limité aux structures élémentaires de données : Tableaux, Structures, Listes linéaires chaînées. Il inclue également les opérations sur les fichiers.

Langage considéré Généralités ( le langage Z ) Un Z-algorithme est un ensemble de modules parallèles dont le premier est principal et les autres sont soient des actions composées soient des fonctions. La communication entre les modules se fait via les paramètres et/ou les variables globales. Les objets globaux sont définis dans le module principal. Le langage permet tout type de paramètres.

Langage considéré Généralités ( le langage Z ) Le langage permet l'affectation globale de tout type. Quatre types standards (scalaires )sont autorisés : ENTIER, BOOLEEN, CARACTERE, CHAINE. Le langage est l'ensemble des algorithmes abstraits, écrits à base de modèles ou machines abstraites. On définit ainsi des machines de TURING :machine-caractères et machine-nombres permettant l'initiation à l'algorithmique.

Langage considéré Généralités ( le langage Z ) On définit également des machines abstraites sur - les structures ou objets composés - les vecteurs - les listes mono directionnelles - les fichiers permettant l'initiation aux structures élémentaires de données et de fichiers. Le langage peut être étendu avec d'autres machines abstraites. Le langage est doté des opérations de haut niveau permettant de construire des listes ou d'initialiser les structures ou les vecteurs à partir d'un ensemble de valeurs.

Langage considéré Généralités ( le langage Z ) Le langage offre deux fonctions très utiles pour l'expérimentation sur les fichiers permettant de générer aléatoirement des chaînes de caractères (ALEACHAINE) et des entiers (ALEANOMBRE). Le langage permet la lecture et l ’écriture de scalaires, de vecteurs de n'importe quelle dimension et des structures simples ou complexes. Le format est libre.

Langage considéré Grammaire du langage Z Conventions ~ ---/ --- ~ : Choix [ ---- ] : Partie facultative [[ : Crochet ouvrant ]] : Crochet fermant {---}* : Répétition ( 0 ou plusieurs fois )

Langage considéré Grammaire du langage Z Déclarations < Z> ::= [ ~SOIT/SOIENT~ <> ] DEBUT <> FIN [;] { ~<> / <>~ [;] }* <> ::= ACTION Idf [ ( Idf {,Idf}* ) ] [;] [ ~SOIT/SOIENT~ <> ] DEBUT <> FIN <> ::= FONCTION Idf ( Idf {,Idf}* ) : <> <> ::= <>{ [~SOIT/SOIENT~] <>}*

Langage considéré Grammaire du langage Z <> ::= Idf {,Idf}* ~UN / UNE / : / DES~ ~ <> / ACTION / FONCTION(Typ) ~ <> ::= Types / <> / <> / MACHINE_CAR / MACHINE_NOMBRE / [POINTEUR VERS [~UN / UNE / : / DES~] ] LISTE [ DE ~Types / <>~] / TABLEAU (Listcste) [DE ~<> / Types~ ] etc..

Compil - Z Présentation COMPIL-Z est un outil dont le rôle est de dévoiler le fonctionnement interne des compilateurs. COMPIL-Z offre la possibilité d ’écrire des algorithmes dans un prototype de langage (Z)couvrant plusieurs notions et de les compiler en passant par toutes les étapes de compilation : lexique, syntaxe, sémantique, génération de code (ou interprétation)

Compil - Z Présentation COMPIL-Z fonctionne sous un système multi-fenêtrage doté d'outils pour tailler les fenêtres, les déplacer, les consulter ou les personnaliser en modifiant les couleurs du texte, du fond, du cadre ou de la barre de défilement. COMPIL-Z offre plusieurs classes de fenêtres montrant : - le processus de compilation - l'analyse lexicale - l'analyse syntaxique - l'analyse sémantique - l'interprétation

Compil - Z Présentation Pour chaque étape, une fenêtre supplémentaire donne un rappel sur le travail de l'analyseur en cours. Cette fenêtre montre également un fragment du source de notre compilateur. A tout moment dans COMPIL-Z, vous pouvez invoquer l'aide ( F1 ) ou actionner les opérations (F10)

Compil - Z Présentation COMPIL-Z offre les services suivants - Un EDITEUR pour écrire vos algorithmes fournissant toute la documentation sur le langage Z. - INDENTEUR pour arranger vos algorithmes dont les principales fonctions sont les suivantes : . chaque instruction est écrite sur une ligne différente, . les mots-clé sont réécrits en majuscule (ou minuscule ) . le premier caractère de tout identificateur est réécrit en majuscule, . les structures de contrôle sont mises en relief, . les instructions de mˆme niveau commencent sur la mˆme colonne selon un pas donné.

Compil - Z Présentation - Un SCANNER donnant comme résultat les unités lexicales produites. - Un ANALYSEUR SYNTAXIQUE montrant comment les règles de grammaire sont appliquées aux différentes lignes de vos algorithmes. - Un ANALYSEUR SEMANTIQUE montrant la forme interne produite (quadruplés) et toutes les tables qui lui gravitent autour.

Compil - Z Présentation - Un INTERPRETEUR montrant le déroulement de l'algorithme découpé en opérations élémentaires. L'image mémoire est aussi donnée pour voir réellement ce qui se passe à l ’exécution d'un programme. - Un HYPER-TEXTE fournissant toute la documentation sur le langage considéré.

Compil - Z Présentation COMPIL-Z est bourré de documentation. On y trouvera - le langage Z - la grammaire de Z sous forme BNF - le rôle d'un compilateur - le fonctionnement des analyseurs lexicaux, syntaxiques et sémantiques. - le fonctionnement d'un interpréteur. - etc..

Compil - Z Utilisation 1.{Familiarisation avec le langage Z (un prototype de langage algorithmique) Se familiariser avec le langage algorithmique utilisé et la grammaire associée. Pour cela, Aller à l ’éditeur, puis utiliser l'aide. 2. {Edition de l'algorithme} Ecrire un algorithme ou corriger un algorithme existant.

Compil - Z Utilisation 4. {Lexique} Lancer le scanner pour une analyse lexicale de votre algorithme (Alt-L). Les fenêtres montrent alors - votre algorithme, - le résultat du scanner, - un rappel sur le scanner incluant un fragment de source.

Compil - Z Utilisation 3. {Arrangement de l'algorithme} Lancer le module Arranger Le module corrige les erreurs de syntaxe. Répéter tant qu'il y a des erreurs . Aller à l'éditeur ( Alt-E) afin de corriger les erreurs . Relancer le module Arranger (Alt- A) après avoir fait (Alt-Q) et sauvegarde. A ce stade, votre algorithme est bien écrit et il a été indenté pour vous.( Vous pouvez changer les modes de présentation de votre algorithme avec l'option "Options" du menu ).

Compil - Z Utilisation 5. {Syntaxe} Lancer l'analyse syntaxique (Alt-S). Les fenêtres montrent alors - votre algorithme, - les différentes règles de grammaire appliquées, - un rappel sur les analyseurs syntaxiques incluant un fragment de source.

Compil - Z Utilisation 7. { Interprétation } Lancer l'analyse sémantique (Alt-C). Les fenêtres montrent alors - votre algorithme, - les résultats de votre algorithme, - l'image mémoire montrant les emplacements mémoires et les changements effectués, - un rappel sur les interpréteurs incluant un fragment de source.

Compil - Z Les programmes Programmation du système multi fenêtrage ( Pascal pur ) Compilateur / Interpréteur ( Pascal pur) Editeur ( Turbo Vision ] Indenteur (Pascal pur) ( Fichiers sur disques : 6 2 2 K )

Diapositive PPT

Compil - Z Utilisation 6. {Sémantique} Lancer l'analyse sémantique (Alt-M). Les fenêtres montrent alors - votre algorithme, - la forme interne ( ensemble de tables de compilation ), - Description des tables de compilation, - Description des quadruplés, - un rappel sur les analyseurs sémantiques incluant un fragment de source

Diapositive PPT Le système multi - fenêtrage avec menu

Diapositive PPT Utilisation

Diapositive PPT Editeur

Diapositive PPT Aide sur le langage

Diapositive PPT Aide sur la grammaire

Diapositive PPT S c a n n e r

Diapositive PPT S y n t a x e

Diapositive PPT S é m a n t i q u e

Diapositive PPT I n t e r p r é t a t i o n

Diapositive PPT Aide