Traduction des langages

Documents pareils
Compilation (INF 564)

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

Licence Sciences et Technologies Examen janvier 2010

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours d algorithmique pour la classe de 2nde

Représentation d un entier en base b

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Corrigé des TD 1 à 5

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Théorie de la Programmation

Examen Médian - 1 heure 30

as Architecture des Systèmes d Information

Évaluation et implémentation des langages


Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

STAGE IREM 0- Premiers pas en Python

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Cours d Algorithmique et de Langage C v 3.0

Java Licence Professionnelle CISII,

Cours 1 : La compilation

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

CM2 L architecture MIPS32

Cours Informatique Master STEP

Algorithmique et programmation : les bases (VBA) Corrigé

Introduction à l algorithmique et à la programmation M1102 CM n 3

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Concept de machine virtuelle

Le prototype de la fonction main()

UML et les Bases de Données

Cours de Programmation 2

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

Programmation C++ (débutant)/instructions for, while et do...while

Notions fondamentales du langage C# Version 1.0

Initiation à l algorithmique

Programmer en JAVA. par Tama

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

Gestion mémoire et Représentation intermédiaire

Introduction à MATLAB R

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

1. Structure d'un programme FORTRAN 95

Organigramme / Algorigramme Dossier élève 1 SI

INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique :

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

L informatique en BCPST

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

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

DEMANDE DE VISA TOURISME/ (VISITE FAMILIALE/OU AMICALE)

Présentation du PL/SQL

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

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Préparation à l examen EFA en Macro

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

ALGORITHMIQUE ET PROGRAMMATION En C

Les structures. Chapitre 3

Utilisation d objets : String et ArrayList

ACTIVITÉ DE PROGRAMMATION

IV- Comment fonctionne un ordinateur?

Traduction des Langages : Le Compilateur Micro Java

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

Représentation des Nombres

Algorithmique et Programmation, IMA

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Environnements informatiques

Merise. Introduction

1 Lecture de fichiers

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

Avertissement : ceci est un corrigé indicatif qui n engage que son auteur

Evaluation de la conformité du Système de validation Vaisala Veriteq vlog à la norme 21 CFR Part 11

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

ndv access point : Utilisation

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Attirez les meilleurs employés et consolidez votre entreprise

MATHÉMATIQUES. Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN

Rappels d architecture

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Conception de circuits numériques et architecture des ordinateurs

Programmation C. J.-F. Lalande. 15 novembre 2012

THE GLOBAL EVENT MANAGER

Introduction au langage C

COMMUNAUTE ECONOMIQUE ET MONETAIRE DE L AFRIQUE CENTRALE LA COMMISSION

2 Comment fonctionne un ordinateur, dans les grandes lignes

Architecture des ordinateurs

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Les structures de données. Rajae El Ouazzani

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

L ACCOMPAGNEMENT PERSONNALISE AU LYCEE PICASSO DE PERPIGNAN (Document de travail)

EXTENSION D UN OUTIL DE VISUALISATION DE TRACES

Cours 1 : Qu est-ce que la programmation?

Enseignement secondaire technique

B-COMM. ERP 4 HR Access. Solutions d acquisition des temps de travail pour la gestion des temps et des activités d HR Access

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

Tutoriel LabVIEW Des fonctions simples à l acquisition de données

TP 1. Prise en main du langage Python

L Assemblée fédérale de la Confédération suisse, vu le message du Conseil fédéral du 15 avril arrête:

Arbres binaires de recherche

Séquence 3. Expressions algébriques Équations et inéquations. Sommaire

Utilisation du site de retours Lexibook

Transcription:

Traduction des langages

La traduction d un langage La conversion d un programme d un langage vers un autre s appelle une traduction Le programme dans sa forme originale est le programme source. La version traduite est le programme objet Le processus de traduction se décompose en trois phases: analyse lexicale parsing génération de code programme source analyseur lexical parser générateur de code programme objet Page 2

L analyseur lexical doit reconnaître dans le programme source les chaînes de symboles qui forment une entité Une fois l entité identifiée, elle est classée selon son type (valeur numérique, mot, opérateur arithmétique, etc) L unité est représentée ensuite par un motif de bits appelé token, transférée au parser Le parser voit donc le programme comme une suite d unités lexicales (tokens) plus que comme une suite de symboles. Et le parser groupe ces unités en s La fonction du parser est d identifier la structure grammaticale du programme et de reconnaître le rôle de chaque composant Page 3

Dans les langages modernes, à format libre, la structure du programme doit être identifiée indépendamment de l espacement utilisé dans le programme source Pour cela, les langages utilisent des symboles de ponctuation pour marquer la fin d une et des mots clés (if, while, etc) pour marquer le début d une. Les mots clés sont des mots réservés, que l on ne peut pas utiliser à d autres fins dans le programme Le processus de parsing se base dans un ensemble de règles de syntaxe, qui définissent la syntaxe du langage de programmation Page 4

Les règles de syntaxe peuvent être exprimées sous la forme de diagrammes syntaxiques Exemple: diagramme syntaxique de la if-then-else if expression booléenne then else Dans ces diagrammes, les termes utilisés tels quels dans le langage apparaissent à l intérieur des ovales, tandis que les termes qui demandent une description additionnelle apparaissent à l intérieur des rectangles Les premiers termes sont appelés terminaux; les seconds sont appelés non terminaux Page 5

Exemple: expression terme + - terme facteur + x terme facteur a b c Page 6

L analyse qui montre si une certaine chaîne respecte un ensemble de diagrammes syntaxiques peut se représenter sous la forme d un arbre de parsing Exemple: déterminer si la chaîne a+bxc respecte les diagrammes syntaxiques précédents Page 7

expression terme + expression facteur terme a facteur x terme b facteur c Page 8

Faire le parsing d un programme revient à faire l arbre de parse du programme source Les règles syntaxiques d un langage ne peuvent pas permettre plus d un arbre de parse pour la même chaîne: cela pourrait conduire à des ambiguïtés dans le programme Exemple: faire l arbre de parse pour la if B1 then if B2 then S1 else S2 d après le diagramme syntaxique donné précédemment pour la if-then-else Page 9

if expression booléenne then else B1 S2 if expression booléenne then B2 S1 Page 10

if expression booléenne then B1 if expression booléenne then else B2 S1 S2 Page 11

Les deux solutions sont différentes. Les deux interprétations pourraient être distinguées sans ambiguïté grâce à l utilisation des parenthèses: if B1 then (if B2 then S1) else S2 if B1 then (if B2 then S1 else S2) Page 12

La phase finale de la traduction est la génération du code objet Une partie importante de la génération du code est son optimisation Exemple: la traduction ligne à ligne du code x = y + z; w = x + z; conduirait à un code non optimal. En effet, le générateur de code doit voir que, après l exécution de la première, les valeurs de x et z se trouvent déjà dans les registres du processeur Page 13

Linking et loading Le programme objet généré par la traduction, bien qu en langage machine, peut rarement être exécuté directement par le processeur L une des raisons de cette impossibilité est l utilisation des modules traduits séparément En plus, le programme fait souvent des demandes au système d exploitation Un programme objet est donc un programme en langage machine contenant des bouts de programme qui doivent être liés entre eux et à d autres programmes objets pour obtenir un programme exécutable Ces connexions sont faites par un programme appelé linker Page 14

Le programme exécutable, généré par le linker, est souvent appelé un module de chargement. Les modules de chargement sont stockés sous forme de fichiers dans la mémoire de masse du système Finalement, pour exécuter le programme, le module de chargement doit être placé dans la mémoire. Cette fonction est l oeuvre d un programme appelé loader, qui fait partie du système d exploitation programme source traduction programme objet link module de charge load programme exécutable Page 15