CH.1 INTRODUCTION. Traduction ch1 1



Documents pareils
Évaluation et implémentation des langages

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Traduction des Langages : Le Compilateur Micro Java

Interpréteur d algèbre relationnelle

UE Programmation Impérative Licence 2ème Année

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

Utilisation de l analyse statique comme outil d aide au développement. par. Yves Gauthier

SQL Parser XML Xquery : Approche de détection des injections SQL

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Théorie de la Programmation

Introduction aux Bases de Données Relationnelles Conclusion - 1

M Études et développement informatique

SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

Programme et contenus Licence d'informatique de Lille, parcours MIAGE, en alternance ou en formation continue (13:40)

Architectures web/bases de données

Préparation à l examen EFA en Macro

Optimisation de logiciels de modélisation sur centre de calcul

Éléments de programmation et introduction à Java

Cours 1 : La compilation

Le génie logiciel. maintenance de logiciels.

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Organigramme / Algorigramme Dossier élève 1 SI

Gestion mémoire et Représentation intermédiaire

Compilation (INF 564)

Installation et Administration de SolidWorks Electrical CadWare Systems

La syllabe (1/5) Unité intuitive (différent du phonème) Constituant essentiel pour la phonologie au même titre que phonème et trait

La mémoire. Un ordinateur. L'octet. Le bit

RTDS G3. Emmanuel Gaudin

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

M Études et développement informatique

Cours d Algorithmique et de Langage C v 3.0

M Études et développement null informatique. R i. Appellations. Analyste cogniticien / cogniticienne informatique

INTRODUCTION AUX BASES de DONNEES

TD3 - Facturation avec archivage automatisé

Environnements et Outils de Développement Cours 1 Introduction

Programmation C. Apprendre à développer des programmes simples dans le langage C

Le serveur web Windows Home Server 2011

Cours de Programmation 2

Annexe : La Programmation Informatique

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Comment traduire le non-dit culturel?

GUIDE Excel (version débutante) Version 2013

Systèmes informatiques d entreprise

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Le mécanisme du processus de traduction *

Vérification et Validation

Machines virtuelles Cours 1 : Introduction

DotNet. Plan. Les outils de développement

SYSTÈME DE GESTION DE FICHIERS

CATALOGUE Formations courtes PARCOURS TRADUCTION

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

CH.6 Propriétés des langages non contextuels

GAZLOG. Logiciel de téléchargement et d'exploitation de données. Notice d utilisation. Tél. : Fax :

CH.3 SYSTÈMES D'EXPLOITATION

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Résumé Génération de code Le code intermédiaire

Cours Bases de données

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Tutorial sur SQL Server 2000

traduction - translation Les affaires sans frontières PROFIL d ENTREPRISE

CM2 L architecture MIPS32

S LICENCE INFORMATIQUE Non Alt S Alt S S1 S2 S3 S4 SS5 S6 Parcours : S IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques)

Le langage C. Introduction, guide de reference

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

Cours d algorithmique pour la classe de 2nde

ALGORITHMIQUE ET PROGRAMMATION En C

La traduction automatique des articles de l anglais au français

Chapitre I : le langage UML et le processus unifié

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Affichage et manipulation interactive de formules mathématiques dans les documents structurés

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

Rappels d architecture

Sanity Check. bgcolor mgcolor fgcolor

PIC : COURS ASSEMBLEUR

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

Vérification formelle de la plate-forme Java Card

Environnements de développement (intégrés)

Excel. Identification. Informations sur vos besoins et objectifs. Notions fondamentales. Fiche de validation des besoins en formation Bureautique

Formula Negator, Outil de négation de formule.

Générer du code à partir d une description de haut niveau

SharePoint Foundation 2013 Construire un intranet collaboratif en PME (édition enrichie de vidéos)

Test et Validation du Logiciel

La post-édition : l'avenir incontournable du traducteur?

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Contraintes, particularités. 1. Généralités Gestion de la mémoire a. Type des variables et constantes... 2

Structure d un programme

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Diagramme de classes

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Atelier ATOLL pour les grammaires d arbres adjoints

Transcription:

CH.1 INTRODUCTION 1.1 Les compilateurs 1.2 L'analyse de la source 1.3 Les phases d'un compilateur 1.4 Les cousins du compilateur 1.5 Le regroupement des phases 1.6 Les outils logiciels de compilation Traduction ch1 1

1.1 Les compilateurs programme source compilateur programme cible messages d'erreur Traduction ch1 2

Langages source : Fortran, Pascal,C Cobol Langages spécialisés : S.Q.L., TeX, Maple Langages cible : Langage machine Code intermédiaire Autre langage de programmation Traduction ch1 3

Programme source Analyse = relativement bien théorisé Représentation intermédiaire (arbre) Synthèse = beaucoup plus spécialisé Programme cible Traduction ch1 4

Autres logiciels d'analyse : Éditeurs structurels Aide à l'écriture d'un programme Paragrapheurs Mise en forme du programme source Contrôleurs statiques Aide au débogage Interpréteurs Pour langages spécifiques, Basic, A.P.L., langages de commandes, TeX, Maple, interprètes de requêtes Comme aide à la programmation, Pascal interprété Traduction ch1 5

squelette du programme préprocesseur Environnement du compilateur programme source compilateur programme cible (langage d'assemblage) assembleur bibliothèques, objets en code translatable code translatable relieur-chargeur code absolu Traduction ch1 6

1.2 L'analyse du programme source Découpage en trois phases : i) Analyse lexicale flot de caractères regroupés en unités lexicales ii) Analyse syntaxique regroupement des unités lexicales en unités grammaticales iii) Analyse sémantique contrôle ou établissement de la cohérence sémantique Traduction ch1 7

Exemple d'analyse aire:=base*hauteur/2 analyse lexicale aire := base * hauteur / 2 analyse syntaxique affectation identificateur := expression aire expression * expression identificateur expression / expression base identificateur nombre hauteur 2 Traduction ch1 8

:= Arbre abstrait aire * base / hauteur 2 analyse sémantique Contrôle de type, coercicion EntierVersRéel 2 Traduction ch1 9

1.3 Les phases d'un compilateur programme source analyseur lexical analyseur syntaxique table des symboles analyseur sémantique générateur de code intermédiaire gestionnaire d'erreurs optimiseur de code générateur de code programme cible Traduction ch1 10

Table des symboles : Information concernant le type, la portée, l'emplacement-mémoire des identificateurs. Initialisée par l'analyseur lexical, complétée et utilisée par les autres phases. Gestion des erreurs : Erreurs lexicales (caractères interdits). Erreurs syntaxiques (règles structurelles non respectées). Erreurs sémantiques (incohérence des opérations : contrôle statique). Diverses récupérations possibles, selon la finalité du compilateur : arrêt à la première erreur ; resynchronisation sur la prochaine construction correcte ; tentatives de correction. Traduction ch1 11

Analyse := aire := base * hauteur / 2 id1 := id2 * id3 / nb2 lexicale id1 * syntaxique id2 / := id3 id1 * nb2 sémantique Table des symboles id2 id3 / EntierVersRéel aire base hauteur nb2 Traduction ch1 12

Synthèse générateur de code intermédiaire temp1 := EntierVersRéel(2) temp2 := id3 / temp1 temp3 := id2 * temp2 id1 := temp3 temp1 := id3 / 2.0 id1 := id2 * temp1 MOVF id3, R1 DIVF #2.0, R1 MOVF id2, R2 MULF R1, R2 MOVF R2, id1 optimiseur de code générateur de code Traduction ch1 13

1.4 Les cousins du compilateur Les préprocesseurs (extension de langages) Fournissent du langage source : macros, inclusion de fichiers, constructions non prévues Exemple : CWEB de D. Knuth source CWEB = C + macros + construction modulaire + commandes TeX weave tangle Source TeX Source C TeX C Documentation imprimée programme formaté + commenté Exécutable Traduction ch1 14

Les assembleurs : Traduire le code d'assemblage produit en code machine translatable (adresses relatives) MOVF id3, R1 DIVF #2.0, R1 MOVF id2, R2 MULF R1, R2 MOVF R2, id1 0001 01 00 00001000 * 0101 01 10 00000010 0001 10 00 00000100 * 0100 10 01 00000001 0010 10 00 00000000 * 0001 charger 0010 ranger 0100 multiplier 0101 diviser 00 mode absolu 01 mode registre 10 mode littéral adresse n de registre valeur numérique Les chargeurs et relieurs : gèrent les références externes ; rassemblent les codes translatables en code absolu ; placent ce code à l'emplacement approprié. Traduction ch1 15

1.5 Le regroupement des phases Partie frontale et partie finale : langage source code intermédiaire langage cible partie frontale = dépend du langage source partie finale = dépend de la machine cible Passes : Avantages de la réduction de leur nombre (rapidité, place), plus facile en partie frontale (traduction dirigée par la syntaxe). Impossibilié de déterminer certaines caractéristiques finales : branchements à des adresses situées plus avant (reprise arrière). Traduction ch1 16

1.6 Les outils logiciels de compilation Outils efficaces d'aide à la réalisation de compilateurs : Constructeurs d'analyseurs lexicaux (LEX) ; Constructeurs d'analyseurs syntaxiques ; Traducteurs dirigés par la syntaxe (YACC) ; Générateurs de code automatiques ; Moteurs d'analyse de flots de données. Traduction ch1 17