Assembleur, Compilateur et Éditeur de Liens



Documents pareils
Évaluation et implémentation des langages

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Éléments de programmation et introduction à Java

Vulgarisation Java EE Java EE, c est quoi?

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Machines virtuelles Cours 1 : Introduction

Introduction à NetCDF

CH.3 SYSTÈMES D'EXPLOITATION

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

IV- Comment fonctionne un ordinateur?

Cours d Algorithmique et de Langage C v 3.0

Optimisation de logiciels de modélisation sur centre de calcul

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Éléments d'architecture des ordinateurs

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

I00 Éléments d architecture

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

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

UN EXEMPLE DE CYBERENSEIGNEMENT EN CHIMIE

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

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

Cours 1 : La compilation

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

Compilation (INF 564)

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

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

Introduction à l informatique en BCPST

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Programmation Objet Java Correction

Télécom Nancy Année

Structure de base d un ordinateur

ALGORITHMIQUE ET PROGRAMMATION En C

Quelques éléments de compilation en C et makefiles

1 Description générale de VISFIELD

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Chapitre 2 : Abstraction et Virtualisation

Premiers pas sur l ordinateur Support d initiation

Module.NET 3 Les Assemblys.NET

CONTRAT DE LICENCE D UTILISATION DU LOGICIEL MORPH M SOUS LA FORME MORPH M PYTHON

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Conception de circuits numériques et architecture des ordinateurs

Chapitre 10 Arithmétique réelle

Présentation du cours

L informatique en BCPST

PIC EVAL Dev Board PIC18F97J60

nom : Collège Ste Clotilde

Introduction à Eclipse

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Mise en œuvre des serveurs d application

Architecture matérielle des systèmes informatiques

Cours 1 : Qu est-ce que la programmation?

Cours Informatique Master STEP

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

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

Catalogue des stages Ercom 2013

Ateliers L A TEX L A TEX portable ou

Annexe : La Programmation Informatique

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

La création d un paquet Debian. Aurélien Jarno. Journées du Logiciel Libre. 15 octobre 2005

Rappels d architecture

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Traduction des Langages : Le Compilateur Micro Java

Programmation parallèle et distribuée

Architectures web/bases de données

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Conception Electronique (CEL) Prof. Maurizio Tognolini

CONFIGURATION DE L AUTOMATE SIEMENS

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

Présentation du PL/SQL

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

1 L évolution de l informatique

Introduction à MATLAB R

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Compte Rendu d intégration d application

Cours d algorithmique pour la classe de 2nde

Écrire à la main ou à l ordinateur Telle est la question!

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Programmation parallèle et distribuée

Conférence sur les microcontroleurs.

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Environnements et Outils de Développement Cours 1 Introduction

Chapitre I Notions de base et outils de travail

Cyber-base du Pays Martégal. Atelier «Découverte de l ordinateur»

M Études et développement informatique

Cours de Systèmes d Exploitation

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Création de jeu vidéo

Transcription:

Assembleur, Compilateur et Éditeur de Liens Pierre de rosette GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde

Assembleur et compilateur Langage assembleur Langage compilé Assembleur (langage machine) Compilateur (langage machine)

Assembleur Définition: le langage assembleur permet d écrire les instructions du microprocesseur en mnémoniques plutôt qu en binaire (code machine). Le langage assembleur est traduit en code machine par un programme aussi nommé assembleur. But principal: Faciliter l écriture de programmes pour un microprocesseur donné. Niveau d abstraction et portabilité L assembleur est très près du code machine. Une instruction d assembleur correspond habituellement à une instruction machine. Un programme en assembleur est indissociable du microprocesseur ou jeu d instructions pour lequel il a été construit. Exemples d assembleur: Il existe habituellement un assembleur pour chaque famille de microprocesseur.

Compilateur et langage compilé Définition: un langage compilé est constitué de chaînes de caractère interprétées par un compilateur afin de générer de l assembleur et, ultimement, du langage machine. But principal: Faciliter l écriture de programmes et rendre les programmes disponibles sur tous les microprocesseurs pour lesquels il existe un compilateur. Niveau d abstraction et portabilité Les langages de haut niveau sont relativement indépendants du matériel. Le compilateur transforme habituellement une instruction de haut niveau en plusieurs instructions d assembleur. Un programme en langage de haut niveau peut être compilé pour être utilisé sur plusieurs microprocesseurs. Exemples: Fortran, Pascal, Basic, C, C++

Assembleur, compilateur et éditeur de liens Langage assembleur Langage compilé Langage compilé Assembleur Compilateur Compilateur (fichier objet ) (fichier objet ) (fichier objet ) Libraries externes Éditeur de liens Exécutable

Éditeur de liens (Linker) Définition: l éditeur de liens rassemble toutes les fonctions et variables d un programme afin de créer l exécutable. Il agence les éléments du programme provenant de diverses sources (fichiers objets, librairies dynamiques) pour que celui puisse être mis en mémoire par le système d exploitation. But principal: Relier plusieurs segments de code machine afin de constituer un programme. Buts secondaires Déterminer les emplacements en mémoire de chaque composante du programme. Faire un lien entre toutes les fonctions et les appels de fonctions. Faire un lien entre les variables globales de différents fichiers. Faire un lien entre tous les fichiers du programme! Niveau d abstraction et portabilité Qu on utilise un assembleur ou un compilateur, il existe toujours un éditeur de lien qui les accompagne

Langage interprété Définition: Un langage interprété n est pas transformé en code machine. Il s agit de fichiers textes qui sont traduits par un programme (habituellement nommé un engine) qui «agit» en fonction du contenu des fichiers. But principal: Permettre d avoir des programmes (fichiers textes) totalement indépendants de la plateforme utilisée.. Niveau d abstraction et portabilité Presque complètement indépendant du matériel. Très haut niveau d abstraction Exemples: HTML, Python, Matlab,

Comparaisons Vitesse d exécution assembleur: très rapide! compilé: très rapide, mais pas aussi rapide que de l assembleur interprété: très lent Grosseur du programme assembleur: très petit compilé: très gros interprété: dépend de l interpréteur Accéder au matériel assembleur: naturel compilé: faisable interprété: ardu Temps de programmation interprété: rapide compilé: un peu plus long (généralement), mais néanmoins rapide assembleur: éternel!