Olivier Raynaud Université Blaise Pascal
Chapitre 1
Niveaux de description
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Base conceptuelle d’un ordinateur
Extrait de [Tis]
Chap. 1 : Niveaux de description
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
La mémoire
La mémoire est divisée en parties
physiques appelées mots
(par exemple 65 536 mots pour une mémoire).
Un mot se divise en bits
(la taille d’un mot correspond à la taille d’un registre ou du bus)X X X X X O O O X X O O … X X X O O O O X X O X
Les bits sont des contacts magnétiques qui peuvent être dans l’une ou l’autre position.
Chap. 1 : Niveaux de description
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Interprétation
1. La première partie du mot contient le nom du type de l’instruction à exécuter.
2. La seconde partie contient l’adresse numérique d’un mot (ou des mots)sur lequel exécuter l’instruction.
Mémoire : Les mots de la mémoire contiennent les
données à traiter ou les instructions pour traiter ces données.
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Unité centrale et registre
Exemple
ADD AX, 1983 MOV AX, 1982 PUSH AX
Chap. 1 : Niveaux de description
L’unité centrale dispose d’un pointeur spécial
(le registre appelé compteur ordinal ou IP)qui désigne le prochain mot à être interprété comme une instruction
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Espace de stockage
Considérons la déclaration suivante en Pascal : varn : integer
une cellule non-allouée devient allouée et son contenu est indéfini, n dénote cette cellule.
? 0 1
Nous pouvons voir chaque cellule allouée comme une boite contenant la valeur d’une variable primitive ou un indéfini « ? « . Chap. 1 : Niveaux de description
Un espace de stockage est une collection de cellules.
1. Chaque cellule a un statut courant: alloué ou non alloué 2. Chaque cellule allouée a un contenu courant qui est soit une valeur stockée soit une valeur indéfinie.
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Variable
Définition :
une variable est un objet qui contient une valeur,
cette valeur sera inspectée ou mise à jour aussi souvent que désirée.Une variable de type composé est constituée de composants pouvant être inspectés de manière sélective.
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Exemple : variable composée
type Mois = (jan, fev, mar,…,dec)
Date = record m : Mois; j : 1..31 end;
var leJour : Date;
… leJour.j := 23; leJour.m := fev
leJour leJour.m leJour.j 23
fev Chap. 1 : Niveaux de description
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
La réunitarisation
Extrait de [HOF93]
Chap. 1 : Niveaux de description
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Caractéristique d’un langage
Un langage doit être universel
(tout problème doit avoir une solution qui peut être programmé dans le langage);Le langage doit être
leplus naturel possible;
Le langage doit être implémentable sur un ordinateur.
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Syntaxe et sémantique du langage
Chap. 1 : Niveaux de description
La
Syntaxe concerne la forme du programme,la façon dont les variables, les expressions et les instructions sont disposées ensemble
pour former un programme.La
Sémantique concerne le sens à donner à unprogramme, sont comportement lors de son exécution.
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Le Langage machine
Ce langage est l’unique langage compréhensible pour un processeur.
Dans un langage machine, les types d’opérations possibles constituent un répertoire fini qui ne peut être étendu.
Tous les programmes doivent être constitués de ces instructions.
Chap. 1 : Niveaux de description
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Le langage d’assemblage
Le langage d’assemblage est situé au dessus du langage machine dans la hiérarchie des langages.
Il existe une correspondance entre les instructions en langage d’assemblage et les instructions en langage machine.
mov $0x61, %al 10110000 01100001
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Un morceau d’A.D.N .
tcgcgcgatctttgagctaattagagtaaattaatccaatc tttgacccaaatctctgctggatcctctggtatttcatgtt ggatgacgtcaatttctaatatttcacccaaccgttgag caccttgtgcgatcaattgttgatccagttttatgattgc accgcagaaagtgtcatatctgagctgcctaaaccaa ccgccccaaagcgtacttgggataaatcaggcttttgt gatctgttctaataatggctgcaagttatcaggtagatc cccggcaccatgagtggatgtcacgattaaccacagg ccattcagcgtaagttcgtccaactctgggccagaagt tttctgtagaaaacccagcttcttctaatttatccgctaa atgttcagcaacatattcagc
Chap. 1 : Niveaux de description
Extrait de [HOF93]
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
L’assembleur
Le programme « Assembleur» est un programme de traduction en langage machine.
Une fois le programme « assemblé » (traduit) il peut être exécuté.
Chap. 1 : Niveaux de description
Question : Que se passe-t-il si l’on fourni au
matériel un programme en langage d’assemblage?
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Les langages de compilation
Principalement deux réflexions ont mené au concepts de langages évolués (1950) :
1. Il existe des modèles fondamentaux lorsque l’on essaie de formuler des algorithmes.
2. Les programmes étaient toujours constitués d’unités de haut niveau indépendantes.
Les nouveaux langages fondés sur ces idées ont été baptisés langages de compilation
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Les trois niveaux de description
Niveau en langage machine:
« Exécution du programme interrompue au point 1110010101110111 »
Niveau en langage d’assemblage :
« Exécution du programme interrompue lorsque l’instruction DIV (division) a été rencontrée »
Niveau en langage de compilation:
« Exécution du programme interrompue lors de l’examen de l’expression algébrique
« (A+B)/Z». » Chap. 1 : Niveaux de description
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Les compilateurs
Vers 1950, on a réussi à écrire des programmes appelés compilateurs, dont la fonction était de traduire des langages de compilation en langage machine
.
Chap. 1 : Niveaux de description
Question : Dans quel langage sont écrits ces
compilateurs?
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
L’amorçage
Langage de compilation
Langage d’assemblage Compilateur
Assembleur Langage
machine Extrait de [HOF93]
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Les interpréteurs
Ils assurent la traduction des langages évolués en langage machine en lisant un programme ligne à ligne et en exécutant immédiatement cette ligne.
Un interpréteur est donc au compilateur ce qu’un interprète simultané est à un traducteur.
Chap. 1 : Niveaux de description
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Historique
Chap. 1 : Niveaux de description
1950 1960 1970 1980
Fortran
Algol60 Cobol
Algol68 Pascal
Ada Smalltalk
C
Lisp
Prolog ML
Miranda Simula
L. Impératifs
et procéduraux L. fonctionnels L. orientés objects
L. logiques Extrait de [W90]
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Langage de description d’algorithme
Nous faisons le choix d’une description en deux blocks : le block d’identification (nom, type de données, type du résultat, variables utilisées) et le block d’instructions encadré par les mots clés début et fin.
Algorithme valeurAcquise() Données :sommInitiale, taux : réel;
Résultat :valeurAcquise : réel;
Variables :intérêts: réel;
début
intérêts sommeInitiale * taux; valeurAcquisesommeInitiale + intérêt;
retournervaleurAcquise;
fin
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Mathématique : fonction calculable
Définition :Une fonction f estcalculables’il existe un procédé systématique permettant à partir de la valeur « x », par une série de manipulations précises, de connaître «f(x)».
En février 34, A.Church soulève la question suivante:
Quel est l’ensemble d’outils, le kit d’opérations, nécessaire pour calculer les valeurs des fonctions calculables?
Chap. 1 : Niveaux de description
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
La thèse de Alonso Church
Les fonctions calculables avec le Kit algorithmique
(L.D.A.)sont par définition les fonctions programmables.
Thèse :
Toute fonction calculable est programmable et réciproquement.
Thèse de Church
Chap. 1 : Niveaux de description
Olivier Raynaud Université Blaise Pascal Clermont-Ferrand
Pour résumer
Nous avons décrit un micro ordinateur comme composé d’une mémoire, d’un C.P.U. et d’un ensemble d’entrée/sortie. La fonction d’un ordinateur est d’exécuter des instructionssur des données.
La mémoire d’un ordinateur peut être vu comme un ensemble de mots, composés de bits. D’un point de vue symbolique la mémoire est un espace de stockage composés de cases (allouée, vide ou pleine).
Un programme est composé d’un ensemble d’instructions et il existe plusieurs niveaux de description de ces programmes : du langage machine au langage algorithme (L.D.A.).