III. Traduction des langages de «haut niveau»

Dimension: px
Commencer à balayer dès la page:

Download "III. Traduction des langages de «haut niveau»"

Transcription

1 Introduction aux systèmes Informatiques: L interface Matériel Logiciel (A3-2015/2016) Léon Mugwaneza Polytech Marseille/Dépt. Informatique (bureau A118) III. Traduction des langages de «haut niveau» (2/2)

2 Traduction des langages de haut niveau : où en sommes-nous? Prg. en lang. de «haut niveau» Compilation (forme) (sens) (traduction) Analyse lexicale et syntaxique Analyse sémantique Génération de code Choix pour la représentation des données Traduction du programme affectation des unités de mémorisation aux données traduction des instructions instructions simples, conditionnelles, itérations procédures et fonctions Qu est ce qu une procédure? Qu est ce qu une fonction? Prg. en langage d assemblage On utilisera le terme procédure pour désigner les 2 2

3 Exemple : Fonctions C int main(void) { int i,j,k,m; } i = multiply(j,5); m = multiply(i,i);... appel (main est l appelant et multiply l appelé ) paramètres effectifs paramètres formels variables locales int multiply (int mcand, int mlier) /* really dumb multiply function */ {int product; product = 0; while (mlier > 0) résultat { product = product + mcand; mlier = mlier -1; } return product; } 3

4 Traduction des procédures une procédure comprend : des déclarations de paramètres formels (paramètres et résultat) des déclarations (définitions) de variables locales des instructions pour la traduction des instructions voir ci-dessus reste 4 points à considérer : la sauvegarde et restauration du contexte l appelant les variables locales le passage des paramètres ( les procédures imbriquées procédure définies à l intérieur d autres à voir un cours de compilation) Pour chacun de ces points :! Quelles informations le compilateur (le programmeur en en langage d assemblage) doit-il maintenir?! A l aide de quelles instructions? 4

5 L appel de procédure (rappels) Branchement vs. appel de procédure point d entrée de p BR BR Appel à p Appel à p retour à l appelant (sortie de p) branchement = modification du compteur ordinal appel de procédure = sauvegarde adresse de retour + branchement (l appel de procédure doit sauvegarder la valeur du compteur ordinal pour pouvoir retourner à l instruction qui suit l appel) du point de vue de la partie du programme où s effectue l appel de procédure, l appel est considéré comme une instruction qui prend «un certain temps» et qui a un «effet complexe» sur l état de la machine 5

6 Support ISA pour les procédures Tous les processeurs modernes ont une (des) instruction(s) d appel et une (des) instruction(s) de retour de procédure - jal (jump and link) et jr (jump register) pour MIPS - jal: adresse de retour sauvegardée dans $ra ($31) - instruction de retour : jr $ra - call et ret (return) pour INTEL - jsr (jump to subroutine) et rts (return from subroutine) pour Motorola - call et ret pour Sun Sparc les instructions d appel (call) et de retour de procédure (ret) sur INTEL et Sun Sparc ont le même nom mais ne font pas évidemment pas la même chose (les ISA ne sont pas les mêmes) 6

7 Procédures sur MIPS: appels imbriqués (1/2) int sumsquare(int x, int y) { return multiply(x,x)+ y; } une procédure a appelé sumsquare, maintenant sumsquare appelle multiply il y a une valeur dans $ra qui est l adresse de retour de sumsquare, mais cette valeur sera écrasée par l appel à multiply il faut sauvegarder l adresse de retour de sumsquare avant d appeler multiply 7

8 Procédures sur MIPS: appels imbriqués (2/2) Dans le cas général, on peut avoir besoin de sauvegarder «d autres registres» en plus de $ra Pour un programme en exécution, trois zones mémoire sont allouées pour les données : la zone des données statiques : données définies une fois dans le programme, et dont la durée de vie est le programme entier (ex : variables globales, constantes chaînes de caractères) le tas (heap) : «variables» dont la mémoire est allouée et libérée dynamiquement à l exécution la pile (stack) : espace mémoire utilisé par les procédures en exécution. C est sur la pile que l on peut sauvegarder les valeurs des registres. Une zone mémoire est allouée à chaque appel de procédure (on parle d environnement ou bloc d activation de la procédure) Sur certains processeurs, l instruction d appel de procédure sauvegarde directement l adresse de retour sur la pile Instruction CALL des processeurs INTEL Instruction JSR des processeurs MOTOROLA 8

9 Organisation de la mémoire d un prg $sp! (stack pointer! - pointeur de pile)!! Stack! Heap! (exemple) espace pour les infos sauvegardées! par les procédures (sauvegardes, paramètres, var. locales! mémoire allouée et libérée! dynamiquement (ex: malloc())! Static! variables dont la mémoire est! allouée une fois avant l exécution du! programme (ex: variables basses! Code! instructions du programme! 9

10 Procédures: pourquoi une pile? Environnements de procédures avec appels imbriqués A: CALL B B: CALL C C:. RET. RET α α β α β χ α β α Certains processeurs fixent la gestion de la pile en mémoire dans l ISA en offrant des instructions pour «empiler» et «dépiler» (ex : INTEL, MOTOROLA) Pour d autres processeurs, la pile est implantée à travers une convention du logiciel (ex: MIPS) 10

11 Piles en mémoire Utiles pour sauvegarder les environnements des procédures même si l ISA ne définit pas des instructions de manipulation de pile - Pile qui croît vers croissantes vs pile qui croît vers décroissantes Où pointe SP? prochain vide? SP dernier occupé? c b a décroissantes /dernier /prochain vide dépiler: lire M[SP] incrémenter SP dépiler : incrémenter SP lire M[SP] empiler: décrémenter SP écrire M[SP] empiler : écrire M[SP] décrémenter SP Cas pile qui croît vers croissantes? (exercice) Comment représente-t-on une pile vide? 11

12 Les variables locales durée de vie une variable locale a comme durée de vie la durée de l appel courant de la procédure dans laquelle elle est définie les variables locales statiques ont comme durée de vie la durée du programme et sont transmises d un appel à l autre les variables locales statiques sont traitées (traduites) comme des variables globales» pourquoi des variables statiques?» exemple d utilisation : générateur de nombres aléatoires (history sensitive subprograms )» pourquoi ne sont-elles pas globales? en FORTRAN I, II et IV toutes les variables étaient statiques FORTRAN 77, FORTRAN 90, C, C++, Java permettent de spécifier qu une variable locale est statique. En Pascal n y a pas de variables locales statiques Rque : en C le qualificatif static n a pas le même sens sur une variable globale que sur une variable locale sur variable locale : étend la durée de vie à la durée du programme sur variable globale : restreint la visibilité au module 12

13 Où allouer les variables locales? les variables locales peuvent être allouées soit dans des registres, soit en mémoire si on fait plusieurs appels imbriqués (notamment récursifs), il faudra faire des sauvegardes en mémoire des variables locales placées dans des registres) En cas de récursivité, comme chaque appel de procédure crée de nouvelles variables locales, la mémoire affectée aux variables locales ou pour la sauvegarde de celles allouées dans des registres est gérée sous forme de pile En fait : qu est ce qu une pile? type abstrait avec les opérations (empiler, dépiler, top, )? pour la pile utilisée dans la traduction des procédures, on a besoin d accéder à des éléments qui ne sont pas en sommet de pile le terme pile fait plutôt référence à la façon dont la mémoire est allouée et libérée 13

14 Les paramètres (et résultat) Allocation d unités de mémorisation : même traitement que pour les variables locales dans des registres ou dans un espace mémoire réservé sur la pile pour les paramètres : en fonction du mode de passage des paramètres on réserve l espace pour la valeur, pour l adresse ou pour les deux (voir plus loin) Comment traiter les procédures à nombre variable de paramètres? (ex : printf) 14

15 Sauvegardes le minimum à sauvegarder est l adresse de retour en général celle-ci est «automatiquement» sauvegardée par l instruction de l ISA qui réalise l appel de procédure la sauvegarde par l instruction d appel est :» soit dans un registre (ex. $ra pour les instructions jal, jalr du MIPS)» soit sur la pile (ex. instruction JSR des processeurs Motorola, instruction CALL des processeurs INTEL) la sauvegarde dans un registre (cas du MIPS) est plus rapide mais pose un problème lorsque un appel de procédure intervient dans la procédure appelée. Dans ce cas, l appelé sauvegarde l adresse de retour sur la pile avantages de la sauvegarde dans un registre : rapide pour les procédures «feuilles» qui ne réalisent pas d autres appels l architecture n impose rien pour la gestion de la pile (le compilateur a le choix) la sauvegarde automatique de l adresse de retour (une instruction ISA dédiée à l appel de procédures) n est pas obligatoire Quelles instructions sont nécessaires? 15

16 Support ISA pour les procédures? extern int sum(int x,int y); Une instruction qui réalise à la fois la sauvegarde de l adresse de de retour et le branchement au point d entrée de la procédure n est pas absolument nécessaire (cf ci-contre) Pourquoi a-t-on des instructions dédiées aux appels de procédures? Pour aller plus vite (make the common case fast)» les procédures sont très courantes dans les programmes ; sum(a,b); ; int sum(int x, int y){ return x+y; } C! # a et b dans $s0 et $s1, x et y dans $a0 et $a1 # resultat dans $v0 # sum(a,b) à xß a, y ß b 1000 add $a0,$s0,$ add $a1,$s1,$0 de retour), saut à sum 1008 addiu $ra,$0, j sum sum: add $v0,$a0,$a1 # retour à l appelant 2004 jr $ra M I P S! 16

17 Contexte d une procédure (1/2) Bloc d activation (environnement) d une procédure (procedure activation frame, stack frame) pointeur d environnement (Frame Pointer) FP SP Résultat, Paramètres Registres sauvegardés par l appelé, (ancien FP, RA) Variables locales On accède au résultat, aux paramètres et aux variables locales à l aide d un déplacement fixe par rapport à hautes Temporaires : croît et «rétrécit» pendant l évaluation des expressions Pointeur de pile (Stack Pointer) Le pointeur d environnement FP pointe à un emplacement fixe dans le bloc d activation de la procédure (et ne bouge pas pendant l exécution de l appel courant de la basses 17

18 Contexte d une procédure (1/2 - bis) Bloc d activation (environnement) d une procédure (procedure activation frame, stack hautes pointeur d environnement (Frame Pointer) FP Résultat, Paramètres Registres sauvegardés par l appelé, (ancien FP, RA) On accède au résultat, aux paramètres et aux variables locales à l aide d un déplacement fixe par rapport à FP Variables locales SP Pointeur de pile (Stack Pointer) Temporaires : croît et «rétrécit» pendant l évaluation des basses 18

19 Contexte d une procédure (1/2 - ter) Bloc d activation (environnement) d une procédure (procedure activation frame, stack hautes pointeur d environnement (Frame Pointer) FP SP Pointeur de pile (Stack Pointer) Résultat, Paramètres Variables locales Registres sauvegardés par l appelé, (ancien FP, RA) On accède au résultat, aux paramètres et aux variables locales à l aide d un déplacement fixe par rapport à FP Temporaires : croît et «rétrécit» pendant l évaluation des basses 19

20 Contexte d une procédure (2/2) La taille des zones Résultat/Paramètres, Registres sauvegardés, et Variables locales peut être déterminée à la compilation (ou par le programmeur en LA) Le pointeur d environnement FP peut pointer n importe où dans l une des 3 zones (par exemple sur l ancien FP) Le compilateur peut se passer du pointeur d environnement et n utiliser que le pointeur de pile à condition de connaître à tout moment la taille de la zone des temporaires Le bloc d activation est construit et détruit par l appelant et l appelé par la séquence d appel et la séquence de retour la séquence d appel alloue le contexte et le remplit la séquence de retour restaure l état du processeur et de la pile pour que l appelant puisse continuer son exécution au retour de la procédure L organisation du bloc d activation ainsi que les séquences d appel et de retour peuvent différer même pour l implantation d un même langage 20

21 Exemple de séquence d appel Appelant (caller) sauvegardes de registres qui peuvent être modifiés par l appelé évaluation et passage des paramètres effectifs + place du résultat appel de procédure Appelé (callee) sauvegardes (adresse de retour, frame pointer, ) réservation de la place pour les variables locales et initialisation exécution du corps de la procédure 21

22 Exemple de séquence de retour Appelé (callee) placer les éventuelles valeurs retournées dans le contexte de l appelant restauration des registres (RA, FP,, SP?) instruction de retour de procédure (réalise la restauration de PC) Appelant (caller) récupérer les résultats éventuels élimination de la place pour les paramètres restauration des registres sauvegardés avant l appel Rque : les tâches données ici sont à réaliser, mais ne sont pas forcément réparties de cette façon entre l appelant et l appelé, notamment si l ISA offre des instructions spécifiques 22

23 Conventions d utilisation des registres Pour sauvegarder le contexte de l appelant on a 3 possibilités : l appelé sauvegarde tous les registres qu il utilise même si certains ne contiennent pas quelque chose d important pour l appelant l appelant sauvegarde tous les registres qui contiennent une information utile même si certains ne sont pas utilisés par l appelé rallonge la taille du code «répartition du travail» entre l appelant et l appelé par une convention de programmation on distingue alors :» des registres sauvegardés par l appelant» des registres sauvegardés par l appelé une procédure qui n appelle pas d autres procédures (procédure feuille) aura tendance à utiliser les registres sauvegardés par l appelant 23

24 Les procédures en lang. d ass. «MIPS» Appel avec l instruction jal, retour à l appelant avec jr $ra (rque : d autres instructions d appel de procédure existent : jalr, beqzal, ) Le programmeur devrait respecter les conventions d utilisation des registres (même s il est seul à programmer) jusqu à 4 paramètres dans les registres $a0, $a1, $a2 et $a3 le résultat est placé dans $v0 (et si nécessaire dans $v1) des registres qui ne doivent pas être modifiés par une procédure appelée des registres qui peuvent être modifiés par une procédure appelée 24

25 Conventions des registres du MIPS (1/4) 0 zero constante 0 (HW) 1 at réservé à l assembleur 2 v0 évaluation d expressions 3 v1 & résultat des fonctions 4 a0 arguments (paramètres) 5 a1 6 a2 7 a3 8 t0 temporaires: sauvegardés... par l appelant... (l appelé peut les modifier sans les sauvergarder) 15 t7 16 s0 temporaires sauvegardés par l appelé... (l appelant peut les utiliser sans risque) 23 s7 24 t8 temporaires (cont d) 25 t9 26 k0 réservés au noyau du SE 27 k1 28 gp Pointer to global area 29 sp Stack pointer 30 fp Frame pointer 31 ra Return Address (HW) (Doc p. A-23) : Utilisez les noms des registres -- le code est plus lisible! 25

26 Conventions des registres du MIPS (2/4) Effet des procédures sur les registres? $0: pas de modification. Toujours = 0 $s0-$s7: pas de modification. C est pour cette raison qu ils sont appelés «saved registers». Si l appelé doit les modifier, avant le retour il doit restaurer la valeur originale $sp: pas de modification. Le pointeur de pile doit pointer au même endroit avant et après l appel d une procédure, sinon l appelant ne peut pas restaurer les registres qu il a sauvegardés sur la pile 26

27 Conventions des registres du MIPS (3/4) Effet des procédures sur les registres? $ra: modifié. L instruction jal modifie ce registre. L appelant doit sauvegarder ce registre sur la pile $v0-$v1: modifiés. Sont destinés à contenir les valeurs retournées par la procédure $a0-$a3: modifiés. Registres arguments «volatiles». L appelant doit les sauvegarder s il en a besoin après l appel $t0-$t9: modifiés. D où l appellation temporaires, toute procédure peut les modifier. L appelant doit les sauvegarder s il en a besoin après un appel Rque : modifiés signifie : «peuvent être modifiés» 27

28 Conventions des registres du MIPS (4/4) Que signifient ces conventions? Si l appelé utilise des registres «sauvegardés» $s i, il doit : 1) sauvegarder ces registres $s i sur la pile 2) utiliser les registres 3) restaurer les registres $s i avant le retour à l appelant Pour les registres temporaires $t i, l appelé n a pas besoin de les sauvegarder L appelant doit sauvegarder les registres temporaires $t i dont il veut préserver la valeur A noter : l appelant/l appelé doit sauvegarder seulement les registres temporaires/sauvegardés qu il utilise (pas tous les registres) 28

29 EX: contexte d une procédure sur MIPS Prologue Epilogue Corps proc: addiu $sp, $sp, -framezize sw $ra, (framesize-4)($sp) sw $fp, (framesize-8)($sp) # sauvegarde autres regs addiu $fp, $sp, framesize... sw $s0, zz($fp) #résultat lw $ra, -4($fp) # restauration autres regs addu $sp, $fp, $0 lw $fp, -8($fp) jr $ra Prologue Epilogue Corps FP SP ra FP SP ra FP SP résultat paramètres ra, old FP résultat paramètres ra, old FP basses résultat paramètres sauvegardes var locales Les 4 premiers paramètres sont passés dans les registres (si possible) 29

30 Modes de passage des paramètres (1/2) passage par valeur le paramètre effectif n est pas modifié à l issue de l appel on passe une copie de la valeur même pour un tableau» les tableaux passés par valeur sont copiés élément par élément sur la pile (ex. Pascal) les tableaux C ne sont pas passés par valeur utilisé en C, C++, Pascal, ADA, MODULA,... passage par résultat pas de valeur transmise à l appel le paramètre est traité comme une variable locale, dont la valeur est copiée à la fin de la procédure» Il faut donc réserver la place pour «la variable locale» et avoir une référence pour copier le résultat» qui copie le résultat? l appelant ou l appelé? utilisé en ADA 30

31 Modes de passage des paramètres (2/2) passage par référence on ne transmet qu une référence en paramètre effectif évite la copie pour «les gros paramètres», mais chaque accès se fait par une indirection utilisé par PASCAL (passage par variable), MODULA, Java, C pour les tableaux, C++,... Effets «bizarres» si plusieurs façons de désigner une variable globale : à problème d alias (collision de noms) var a : integer ; proc p(référence x : integer) begin x:=x+2; a := a+x ; end; begin a := 1; p(a); writeln(a); end. quelle est la valeur affichée? Comment écrire le programme en C++? Quelle serait la valeur affichée si le mode était «résultat»? 31

32 Fin du chapitre III Autres mode de passage des paramètres? voir un cours sur les concepts des langages de programmation* et/ ou un cours de compilation** Et les procédures imbriquées (définitions imbriquées)? voir un cours de compilation** * ex: Programming language pragmatics de M.L. Scott (MKP publishers, 2000) ** ex: Compilers : principles, techniques, and tools de A.V Aho, M.S. Lam, R. Sethi et J.D. Ullman 2 e ed. (Addison Wesley, 2008), une traduction en Français existe chez Dunod (Compilateurs : principes, techniques et outils) 32

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

Plus en détail

Conception et exploitation des processeurs

Conception et exploitation des processeurs Chargé de cours : Frédéric Pétrot Équipe pédagogique : Stéphane Mancini, Luc Michel, Olivier Muller, Christophe Rippert, Sebastien Viardot Année universitaire 2012-2013 Structure du cours C1 C2 C3 C4 aux

Plus en détail

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge Introduction Les performances d une machine sont liées au: 1. nombre d instructions 2. temps de cycle horloge 3. nombre de cycle horloge par instructions. C est: le compilateur et l architecture du jeu

Plus en détail

Notions de langage machine

Notions de langage machine Notions de langage machine 18 décembre 2009 Rappels et introduction Architecture de Van Neumann : Processeur = UC + UAL Mémoire interne au processeur = les registres (soit seulement l accumulateur, soit

Plus en détail

Instructions assembleur

Instructions assembleur Instructions assembleur 0001011011110110 0001011101101101 10001001 Instruction vue par le programmeur assembleur ou instruction élémentaire cible d'un compilateur Réalise une modification de l'état interne

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

Plus en détail

Techniques de compilation

Techniques de compilation Département d Informatique Université de Nice Sophia Antipolis Master 1 Informatique Techniques de compilation XI. Générateurs de générateurs de code Jacques Farré email : Jacques.Farre@unice.fr 1 Introduction

Plus en détail

Compilation. Cours n 3: Architecture du compilateur Sélection d instructions: de PP à UPP. Sandrine Blazy (d après le cours de François Pottier)

Compilation. Cours n 3: Architecture du compilateur Sélection d instructions: de PP à UPP. Sandrine Blazy (d après le cours de François Pottier) Compilation Cours n 3: Architecture du compilateur Sélection d instructions: de PP à UPP Sandrine Blazy (d après le cours de François Pottier) - 2 e année 10 novembre 2008 S.Blazy (ENSIIE) Compilation

Plus en détail

Code Intermédiaire. Linéarisation Canonisation.

Code Intermédiaire. Linéarisation Canonisation. 2 2 2 s 2 2 s Code Intermédiaire Génération de Code Linéarisation Canonisation. Didier Rémy Octobre 2000 http://cristal.inria.fr/ remy/poly/compil/3/ http://w3.edu.polytechnique.fr/profs/informatique/didier.remy/compil/3/

Plus en détail

Gestion mémoire et Représentation intermédiaire

Gestion mémoire et Représentation intermédiaire Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,

Plus en détail

ASSEMBLAGE ET ÉDITION DES LIENS

ASSEMBLAGE ET ÉDITION DES LIENS ASSEMBLAGE ET ÉDITION DES LIENS Mewtow 11 novembre 2015 Table des matières 1 Introduction 5 2 La chaine d assemblage 7 2.1 Résolution des symboles.............................. 7 2.2 Relocation.....................................

Plus en détail

Noyau d'un système d'exploitation INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2)

Noyau d'un système d'exploitation INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2) INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2) Département de génie informatique et génie logiciel Hiver 2014 Exemple 1 : Espace virtuel d un processus Où seront stockées les données des variables

Plus en détail

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire.

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire. Principes des lang. de progr. INE 11 Michel Mauny ENSTA ParisTech Prénom.Nom@ensta.fr Michel Mauny (ENSTA ParisTech) INE 11 Prénom.Nom@ensta.fr 1 / 37 Gestion et récupération automatique de mémoire lanage

Plus en détail

Types et performances des processeurs

Types et performances des processeurs Types et performances des processeurs Laboratoire de Systèmes Logiques Structure d un ordinateur contrôle processeur traitement séquenceur registres mémoire entrées/sorties micromémoire opérateurs bus

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Projet 1 ENS Lyon L3IF

Projet 1 ENS Lyon L3IF Projet 1 ENS Lyon L3IF Génération de code Sébastien Briais 8 janvier 2008 Dans cette partie, vous allez devoir implémenter le générateur de code pour l émulateur DLX risc-emu. À rendre pour le 18 janvier

Plus en détail

Assembleur MIPS. Chapitre 2. 2.1 Présentation de l architecture de la machine MIPS R2000. Sommaire. 2.1.1 Généralités sur les processeurs

Assembleur MIPS. Chapitre 2. 2.1 Présentation de l architecture de la machine MIPS R2000. Sommaire. 2.1.1 Généralités sur les processeurs Chapitre 2 Assembleur MIPS Sommaire 2.1 Présentation de l architecture de la machine MIPS R2000.............. 1 2.1.1 Généralités sur les processeurs.......................... 1 2.1.2 Le MIPS R2000...................................

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Génération de code : langages objets Gestion mémoire 2 novembre 2011

Génération de code : langages objets Gestion mémoire 2 novembre 2011 Génération de code : langages objets Gestion mémoire 2 novembre 2011 1 Compilation d un langage objet Représentation des classes et des objets Héritage multiple Appartenance à une classe 2 Environnement

Plus en détail

1. Eléments de base du langage C

1. Eléments de base du langage C 1 1. Eléments de base du langage C Généralités Programme et sous-programme Fonction C Structure d un programme C Vocabulaire de base et syntaxe Exemples 2 Généralités Crée en 1972 par D. Ritchie pour écrire

Plus en détail

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation.

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Sébastien COLLETTE et Gilles GEERAERTS 1 Introduction Ce document décrit

Plus en détail

Architecture des Ordinateurs et Systèmes d Exploitation

Architecture des Ordinateurs et Systèmes d Exploitation Architecture des Ordinateurs et Systèmes d Exploitation Cours n 5 Le langage assembleur (2): Pile, Procédures. Les Interruptions 3ème année L assembleur 8086 : la pile = structure de «rangement» de données

Plus en détail

Principes de la programmation impérative

Principes de la programmation impérative Séquence d instructions Variables et types Types élaborés Procédures, arguments Gestion de la mémoire Langage compilé, interprété Principes de la programmation impérative Séquence d instructions Variables

Plus en détail

Assembleur x86. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr

Assembleur x86. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr Assembleur x86 Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Niveaux de programmation Du plus bas niveau (1) au plus abstrait (6) 1) Impulsions

Plus en détail

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

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Analyse statique de programmes Typage et analyse statique au sein de Java

Analyse statique de programmes Typage et analyse statique au sein de Java Analyse statique de programmes Typage et analyse statique au sein de Java Master Professionnel Informatique spécialité FSIL/FSI Jean-Marc Talbot jean-marc.talbot@lif.univ-mrs.fr Aix-Marseille Université

Plus en détail

III - PROGRAMMATION EN ASSEMBLEUR

III - PROGRAMMATION EN ASSEMBLEUR III - PROGRAMMATION EN ASSEMBLEUR 3.1 Introduction à la programmation en assembleur Pour programmer un ordinateur on utilise généralement des langages dits évolués ou de haut niveau : C, C++, Java, Basic,

Plus en détail

Programmation assembleur : aperçu

Programmation assembleur : aperçu Assembleur : Younès EL AMRANI. 1 Programmation assembleur : aperçu Programmation en assembleur : NASM Module M14 Semestre 4 Printemps 2010 Equipe pédagogique : Younès El Amrani, Abdelhakim El Imrani, Faissal

Plus en détail

Optimisation de code

Optimisation de code Optimisation de code Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Optimisation de code 1 / 77 But L optimisation cherche à améliorer

Plus en détail

Architecture matérielle et logicielle

Architecture matérielle et logicielle Architecture matérielle et logicielle Contents I Le Cours 2 1 Généralités 2 2 Micro-processeur 2 3 Mémoire 2 4 Performances 3 II TPs 3 1 Création d un exécutable : 3 2 Les bibliothèques 3 3 Codage de l

Plus en détail

Logiciel de base. Première année ENSIMAG

Logiciel de base. Première année ENSIMAG Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Types et langages de programmation. Algorithmique et Programmation Unisciel/K.Zampieri

Types et langages de programmation. Algorithmique et Programmation Unisciel/K.Zampieri Types et langages de programmation Algorithmique et Programmation Unisciel/K.Zampieri 1 Généalogie partielle des langages de programmation FORTRAN BASIC PL/1 PROLOG ALGOL60 COBOL C PASCAL ADA MODULA-2

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

Cours de compilation

Cours de compilation Cours de compilation 1 Introduction Un compilateur est un logiciel de traduction d un langage source vers un langage cible. D ordinaire le langage source est un langage de programmation évolué, comme C++

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Récupération automatique de la

Récupération automatique de la Récupération automatique de la mémoire 1 Plan 1. La gestion du tas. 2. Marquage et balayage. 3. Comptage de références. 4. Récupération par copie. 5. Compléments. 2 Problématique Le code exécutable généré

Plus en détail

Architecture des ordinateurs TP 3

Architecture des ordinateurs TP 3 Architecture des ordinateurs ESIPE - IR1 TP 3 Objectif de cette séance L objectif de cette séance est d apprendre à utiliser la pile et à écrire des fonctions en assembleur En particulier, nous verrons

Plus en détail

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

Résumé Génération de code Le code intermédiaire Résumé Analyse INFO0004 Structure des langages de programmation Génération de code ; liaison et exécution Justus H. Piater Programmation Analyse Compilation Liaison fichier texte Analyse lexicale flux

Plus en détail

Implantation d une machine virtuelle en C

Implantation d une machine virtuelle en C Implantation d une machine virtuelle en C Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2012/2013 Semaine 3 Interprète de bytecode Interprète de bytecode :

Plus en détail

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

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

Algorithmique et Programmation I

Algorithmique et Programmation I Algorithmique et Programmation I Séance 1 Notions Générales Année universitaire 2006/2007 Semestre 1 1 Bienvenue Séances: o Cours: Notions théoriques o Travaux Dirigés (TD): Exercices o Travaux Pratiques

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

1 : 1 er programmes & prise en main de l environnement

1 : 1 er programmes & prise en main de l environnement 1 : 1 er programmes & prise en main de l environnement 1 Introduction 1.1 Rappel : gestion d arborescence et de fichiers sous UNIX Pour la manipulation de répertoire et de fichier à partir d un terminal

Plus en détail

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr Cours PL/SQL E.Coquery emmanuel.coquery@liris.cnrs.fr Programmation au sein du SGBD Pourquoi? Les contraintes prédéfinies ne sont pas toujours suffisantes. Exemple : tout nouveau prix pour un CD doit avoir

Plus en détail

Paradigme de programmation Impératif

Paradigme de programmation Impératif Paradigme de programmation Impératif La programmation impérative est caractérisée par, la programmation avec un état et des commandes qui modifient l état : Programmation impérative Procédurale = Programmation

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Chapitre 3 : Pointeurs et références

Chapitre 3 : Pointeurs et références p. 1/18 Chapitre 3 : Pointeurs et références Notion de pointeur L adresse d une variable est une valeur. On peut donc la stocker dans une variable. Un pointeur est une variable qui contient l adresse d

Plus en détail

RPC Remote Procedure Call. Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benm@gmail.com

RPC Remote Procedure Call. Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benm@gmail.com RPC Remote Procedure Call Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benm@gmail.com Objectifs Le rôle de RPC comme middleware Positionner RPC dans le modèle OSI Développement d application

Plus en détail

Thème 0 : Compilation

Thème 0 : Compilation Compilation : théorie, techniques et outils Thème 0 : Compilation HABIB ABDULRAB (INSTITUT NATIONAL DES SCIENCES APPLIQUÉES DE ROUEN) CLAUDE MOULIN (UNIVERSITÉ DE TECHNOLOGIE DE COMPIÈGNE) SID TOUATI (UNIVERSITÉ

Plus en détail

IFT313 Introduction aux langages formels

IFT313 Introduction aux langages formels Département d informatique IFT313 Introduction aux langages formels Plan de cours Été 2014 Enseignant : Froduald Kabanza Courriel : kabanza@usherbrooke.ca Local : D4-1022-2 Téléphone : (819) 821-8000 poste

Plus en détail

Vérification formelle de la plate-forme Java Card

Vérification formelle de la plate-forme Java Card Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations

Plus en détail

1 Notions de base 1.1 Structure d'un programme

1 Notions de base 1.1 Structure d'un programme 1 Notions de base 1.1 Structure d'un programme Le langage C++ contient le langage C : tout programme écrit en C à la norme ANSI doit pouvoir être compilé par un compilateur C++. C++ fait la diérence entre

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs (2 ème partie : assembleur 80x86) Vincent Vidal IUT Lens Architecture des ordinateurs p. 1 Organisation Durée : 8 semaines. Cours 1h, TP 3h Intervenants TP : Coste, Loukil,

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Jeu d instructions NIOS II

Jeu d instructions NIOS II Jeu d instructions NIOS II 1 Formats d instructions Le processeur NIOS II a un jeu d instructions de type RISC. Il possède 32 registres de 32 bits, notés r0 à r31, avec r0 0. Les instructions sont de longueur

Plus en détail

Logiciel Libre Cours 2 Fondements: Programmation

Logiciel Libre Cours 2 Fondements: Programmation Logiciel Libre Cours 2 Fondements: Programmation Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

intro aux SE et mise en œuvre sous UNIX

intro aux SE et mise en œuvre sous UNIX TP: Programmer sous GNU/LINUX Ce premier TP introductif à la programmation en C va vous familiariser avec : la syntaxe du langage ; la mise en oeuvre du compilateur ; le préprocesseur cpp ; l'utilisation

Plus en détail

CM2 L architecture MIPS32

CM2 L architecture MIPS32 CM2 L architecture MIPS32 Olivier Marchetti (CM-TD-TP) Alexandre Brière (TD-TP) Laboratoire d informatique de Paris 6 Pôle SoC UPMC Année 2014-2015 Instructions MIPS Contrôle Données en MIPS E/S en MIPS

Plus en détail

07 - Mémoire. Morgan Barbier morgan.barbier@unicaen.fr L2 S4 2012/2013

07 - Mémoire. Morgan Barbier morgan.barbier@unicaen.fr L2 S4 2012/2013 07 - Mémoire Morgan Barbier morganbarbier@unicaenfr L2 S4 2012/2013 1 Introduction Problèmatique Multitâches : L OS moderne permet d exécuter plusieurs tâches en même temps Chacune de ses tâches possèdent

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Algorithmie ISI301 TP 1 : Python et premiers algorithmes

Algorithmie ISI301 TP 1 : Python et premiers algorithmes Algorithmie ISI301 TP 1 : Python et premiers algorithmes 1 Python : apprentissage Pour avoir une vision plus large des différentes possibilités du langage Python, nous ne pouvons que vous conseiller d

Plus en détail

Compilation. Vb. Analyse sémantique statique Analyse de nom et analyse de type

Compilation. Vb. Analyse sémantique statique Analyse de nom et analyse de type Université de Nice - Sophia Antipolis Licence 3 Informatique 2012-2013 1/32 Compilation Vb. Analyse sémantique statique Analyse de nom et analyse de type Jacques Farré Jacques.Farre@unice.fr Université

Plus en détail

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis

Plus en détail

Algorithmique et Programmation (1/3)

Algorithmique et Programmation (1/3) Algorithmique et Programmation (1/3) Objectifs : Approfondir l'algorithmique abordée au premier semestre : nouveaux types de données (énumérations, types composés), algorithmes de recherche, algorithmes

Plus en détail

Chap. I : Architecture de base d un ordinateur

Chap. I : Architecture de base d un ordinateur UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

Plus en détail

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

Une introduction au langage C++ Marc Jachym, Lurpa

Une introduction au langage C++ Marc Jachym, Lurpa Une introduction au langage C++ Marc Jachym, Lurpa Janvier 2008 À l origine, le langage C Langage procédural créé dans les années 1970 aux laboratoires Bell (ATT : télécoms américains) en vue d écrire

Plus en détail

Les processeurs. Les entrées-sorties

Les processeurs. Les entrées-sorties Les entrées-sorties La problématique des entrées sorties est la suivante : - Le processeur va vite, plus vite que des éléments mécaniques tel que l on trouve dans une imprimante, une souris, un clavier.

Plus en détail

Département Informatique L3 Mention Informatique Jean-Michel Richer Architecture des Ordinateurs jean-michel.richer@univ-angers.

Département Informatique L3 Mention Informatique Jean-Michel Richer Architecture des Ordinateurs jean-michel.richer@univ-angers. Département Informatique L3 Mention Informatique Jean-Michel Richer Architecture des Ordinateurs jean-michel.richer@univ-angers.fr 2015/2016 Travaux Dirigés 1 Représentation de l information En informatique,

Plus en détail

Introduction au langage C

Introduction au langage C Organisation du cours Introduction au langage C Premier cours Notions générales Aurélien Max aurelien.max@limsi.fr 12 séances de cours de 1h: mercredi 16-17h, salle A203 12 séances de TD de 1h: mercredi

Plus en détail

Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001

Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001 Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001 L examen dure 3 heures. Le sujet comporte 7 pages dont 3 pages de rappels sur le LC-2 et la microprogrammation. Tous

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

Méthodologie de programmation en assembleur. Philippe Preux

Méthodologie de programmation en assembleur. Philippe Preux Méthodologie de programmation en assembleur Philippe Preux 24 novembre 1997 Table des matières 1 Introduction 3 2 Méthodologie 4 2.1 Méthodologie............................................. 4 2.2 Aperçu

Plus en détail

2001-2002. UFR Mathématiques de la Décision. Première Année de DEUG Sciences et Technologie mention MASS. Informatique. Volume I.

2001-2002. UFR Mathématiques de la Décision. Première Année de DEUG Sciences et Technologie mention MASS. Informatique. Volume I. 2001-2002 UFR Mathématiques de la Décision Première Année de DEUG Sciences et Technologie mention MASS Informatique Volume I Fabrice Rossi c Fabrice Rossi, 1997-2002 Conditions de distribution et de copie

Plus en détail

Vérification formelle d un modèle mémoire pour le langage C

Vérification formelle d un modèle mémoire pour le langage C Vérification formelle d un modèle mémoire pour le langage C Projet ANR ARA SSIA CompCert (http://compcert.inria.fr) Sandrine Blazy, Xavier Leroy CEDRIC-ENSIIE et INRIA Rocquencourt CEA-LIST, 18 mars 2008

Plus en détail

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch Informatique III: Programmation en C++ Lundi 24 Octobre 2005 Chargé de cours François Fleuret francois.fleuret@epfl.ch Assistant Mathieu Salzmann mathieu.salzmann@epfl.ch Assistants étudiants Ali Al-Shabibi

Plus en détail

Gestion de la mémoire

Gestion de la mémoire Plan de la présentation Gestion de la Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia! Principes de réalisation de la " Définitions et motivations

Plus en détail

A) Le Logiciel : le Software

A) Le Logiciel : le Software A) Le Logiciel : le Software 1) Mise en route d'une machine : RESET Un microprocesseur ne peut exécuter qu'une suite d'instructions qu'il doit aller extraire de sa mémoire. Cette suite d'instructions est

Plus en détail

FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION. Projet Tutorat Réseau / Sécurité INSA de Lyon 2011

FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION. Projet Tutorat Réseau / Sécurité INSA de Lyon 2011 FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION Projet Tutorat Réseau / Sécurité INSA de Lyon 2011 Lucas Bouillot Arnaud Kleinpeter Gaétan Bouquet Xavier Paquin INTRODUCTION INTRODUCTION Qu est ce qu

Plus en détail

Cours de Programmation 2

Cours de Programmation 2 Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes

Plus en détail

Conception de bases de données relationnelles

Conception de bases de données relationnelles Conception de bases de données relationnelles Langage PL/(pg)SQL Marie Szafranski 2015-2016 ensiie 1 2015-2016 ensiie 1 Aperçu de PL/(pg)SQL Aperçu de PL/(pg)SQL PL/SQL : Procedural Language for SQL (Oracle)

Plus en détail

Module 351 - Informatique - 1er semestre 2009-2010

Module 351 - Informatique - 1er semestre 2009-2010 Module 351 - Informatique - 1er semestre 2009-2010 1 Généralités 1.1 Utilisation de l informatique dans un contexte scientifique. Deux alternatives: 1. Utiliser des logiciels existants. Exemple: traitement

Plus en détail

Compilation. Introduction à la compilation. Termes Phases d'un compilateur Importance des grammaires Méthodes d'analyse. Termes. Termes.

Compilation. Introduction à la compilation. Termes Phases d'un compilateur Importance des grammaires Méthodes d'analyse. Termes. Termes. Compilation Enseignants : Stéphane Talbot Miguel Tomasena Volume horaire : 10.5 C / 12 TD / 12 TP langage source Traduction langage cible Contenu : Introduction à la compilation Analyse Lexicale Analyse

Plus en détail

Langage C. Chapitre 2. 2.1 Le langage C, un langage non interprété. 2.1.1 L écriture du programme. 2.1.2 La compilation

Langage C. Chapitre 2. 2.1 Le langage C, un langage non interprété. 2.1.1 L écriture du programme. 2.1.2 La compilation Chapitre 2 Langage C 2.1 Le langage C, un langage non interprété Le C est un langage de programmation comme il en existe beaucoup d autres (C++, Fortran, Python, Matlab, IDL, ADA...). Il existe deux grandes

Plus en détail

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

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

gcc -Wall ansi o tp fichiers -lfl

gcc -Wall ansi o tp fichiers -lfl FLEX et BISON tp.l tp_l.c : - abréviations - expressions régulières et actions associées. tp.h : - définition de types - définition d étiquettes tp_y.h : codes symboliques pour les tokens FLEX Générateur

Plus en détail

Systèmes d exploitation. Introduction. (Operating Systems) http://www.sir.blois.univ-tours.fr/ mirian/

Systèmes d exploitation. Introduction. (Operating Systems) http://www.sir.blois.univ-tours.fr/ mirian/ Systèmes d exploitation (Operating Systems) Introduction SITE : http://www.sir.blois.univ-tours.fr/ mirian/ Systèmes d exploitation - Mírian Halfeld-Ferrari p. 1/2 Qu est-ce qu un SE? Ensemble de logiciels

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

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

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre Assembleur Faculté I&C, André Maurer, Claude Petitpierre INTRODUCTION Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre MEMOIRE Mémoire Faculté I&C, André Maurer, Claude Petitpierre Mémoire

Plus en détail

Contrôle Architecture des microprocesseurs Durée 2 heures

Contrôle Architecture des microprocesseurs Durée 2 heures Contrôle Architecture des microprocesseurs Durée 2 heures Tous les documents personnels (cours, TD, TP) sont autorisés. La machine à calculer est autorisée. La qualité de la présentation sera prise en

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE

EPREUVE OPTIONNELLE d INFORMATIQUE EPREUVE OPTIONNELLE d INFORMATIQUE A) QCM Les réponses au QCM doivent être portées directement sur la feuille de sujet de QCM. Ne pas omettre de faire figurer votre numéro de candidat sur cette feuille

Plus en détail

Cours 2 : Comment construire un programme?

Cours 2 : Comment construire un programme? 1/64 Introduction à la programmation Cours 2 : Comment construire un programme? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/64 Le cours d aujourd hui 1. Striptease

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 7 17 décembre 2012 Archi 1/1 Fonctions, suite et fin Archi 2/1 Rappel Forme générale d un sous-programme (fonction) : etiquette sousprogramme: push ebp ; empile la valeur

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail