Algorithmique et Programmation Partie I L’Ordinateur : L’outil de l’informatique
Emeric Tapachès
Contenu
1. Histoire de l’informatique
2. Architecture d’un ordinateur
3. Représentation de l’information en binaire : La numérisation
4. Abstraction du langage machine
5. Focus sur le langage Python
2
Emeric Tapachès
1. Histoire de l’informatique
• Définition Informatique : c’est traiter l’information de façon automatique par une machine. ▫ Traiter l’information, par exemple :
Réaliser des opérations mathématiques, Écouter de la musique, Regarder un film, Jouer à un jeu vidéo,
se résume en informatique à faire des calculs et uniquement ça.
• But : Calculer de plus en plus vite et mémoriser de plus en plus de résultats (c.-à-d. informations).
3
Emeric Tapachès
1. Histoire de l’informatique
• Exemple de machines à calculer : ▫ Le boulier permet d’additionner et de soustraire
en base décimale des nombres entiers en modifiant la répartition de « boules ».
▫ La Pascaline permet d’additionner et de soustraire en base décimale1 des nombres entiers en faisant tourner un mécanisme de roues dentées.
▫ La Machine de Leibnitz s’inspire de la Pascaline et permet, en plus, de réaliser des multiplications et des divisions.
4
-3000
1 à l’origine développée sur la base du système monétaire de l’époque
1641
1694
Un
ités
D
izai
nes
C
enta
ines
M
illie
rs
…
…
…
Emeric Tapachès
1. Histoire de l’informatique
• Définition Programme : Suite d’instructions à exécuter par une machine et qui est encodée sur un support physique. Les instructions sont donc mémorisées.
• Le métier à tisser de Bouchon-Falcon-Vaucanson-Jacquard est la première machine à exécuter un programme encodé sur des plaquettes de bois perforées.
5
1728
Emeric Tapachès
1. Histoire de l’informatique
• La carte perforée apparait comme un moyen pratique pour stocker et transmettre des informations.
• Toutes informations est décomposé en une série d’informations élémentaires se limitant uniquement à deux états : trou ou pas de trou, vrai ou faux, allumée ou éteint, ouvert ou fermée, absent ou présent, 1 ou 0.
• Tiens… cela ressemble à du binaire et en 1703 Leibnitz publia un essai sur l’arithmétique binaire rappelant que l’on peut calculer en base 2.
6
Chaine de cartes perforées d'un métier
à tisser Jacquard
Emeric Tapachès
1. Histoire de l’informatique
• George Boole, énonce la théorie d’un l’algèbre « binaire » dans sont œuvre « Les lois de la pensée ». ▫ Idée à retenir est qu’avec uniquement :
Trois opérateurs logiques : ET (∙), OU (+), et NON ( ) Deux états de l’information : VRAI ou FAUX Régie par des axiomes et des postulats (c’est-à-dire des règles)
Postulats :
▫ Il est possible de réaliser les opérations arithmétiques de base : addition, soustraction, multiplication et division, ainsi que tout autre raisonnement logique.
7
1833
0 ∙ 0 = 0 0 ∙ 1 = 1 ∙ 0 = 0 1 ∙ 1 = 1 0 = 1
1 + 1 = 1 0 + 1 = 1 + 0 = 1 0 ∙ 0 = 0 1 = 0
Emeric Tapachès
1. Histoire de l’informatique
• C’est l’algèbre de Boole qui sera utilisée dans l’informatique moderne et précisément intégrée dans les machines à calculer automatiques (c.-à-d. les ordinateurs), mais comment ?
1) Il faut pouvoir représenter physiquement l’information VRAI et FAUX. Carte perforée, interrupteur, charge électrique…
2) Il faut pouvoir fabriquer des composants permettant de réaliser les opérations de logiques conformément aux postulats énoncés précédemment. Comment ?
8
Emeric Tapachès
1. Histoire de l’informatique
• Des portes logiques ont été réalisées à l’aide de : • Assemblage de roues dentées et de portes
• Tube à vide
• La révolution vient avec l’apparition des transistors. Ils sont utilisés comme des interrupteurs pour la réalisation des portes logiques. Ils offrent l’avantage d’être très petits et d’avoir un très court temps de réponse.
9
1837
1904
1947
Emeric Tapachès
1. Histoire de l’informatique
• Un transistor est un dispositif semi-conducteur à trois électrodes actives : la base, le collecteur et l’émetteur. Il permet de contrôler le potentiel électrique du collecteur en faisant varier le potentiel électrique de la base.
10
Digression sur les transistors et les portes logiques
Base Collecteur
Emetteur
Ve
Vcc = 5 V p. ex.
Vs
0 V
Base Collecteur
Emetteur
Ve = 0 V
Vcc = 5 V
Vs = 5 V
0 V
Base Collecteur
Émetteur
Ve = 5 V
Vcc = 5 V
Vs = 0 V
0 V
Ve Vs
0 V 5 V
5 V 0 V
E S
0 1
1 0
L’on obtient la porte logique NON
E S
Emeric Tapachès
1. Histoire de l’informatique
11
Digression sur les transistors et les portes logiques
Ve1
Vcc = 5 V
Vs1
0 V
Ve1 Ve2 Vs1 Vs2
0 V 0 V 5 V 0 V
0 V 5 V 5 V 0 V
5 V 0 V 5 V 0 V
5 V 5 V 0 V 5 V
E S
0 1
1 0
L’on obtient la porte logique NON
Ve2
Vcc = 5 V
Vs2
0 V
A B S
0 0 0
0 1 0
1 0 0
1 1 1
L’on obtient la porte logique ET
S
Emeric Tapachès
1. Histoire de l’informatique
12
Digression sur les transistors et les portes logiques
Ve1
Vcc = 5 V
Vs1
0 V
Ve1 Ve2 Vs1 Vs2
0 V 0 V 0 V 0 V
0 V 5 V 0 V 5 V
5 V 0 V 0 V 5 V
5 V 5 V 5 V 5 V
Ve2
Vcc = 5 V
Vs2
0 V
A B S
0 0 0
0 1 1
1 0 1
1 1 1
L’on obtient la porte logique OU
0 V
S
Emeric Tapachès
1. Histoire de l’informatique
13
Digression sur les portes logiques et les opérations arithmétiques • Avec les trois portes logiques de base l’on réalise, par assemblage,
d’autres portes logiques, par exemple le OU EXCLUSIF :
▫ L’additionneur :
S
+ B A ..
.. .. .. ..
..
.. .. .. S
RS RE
A B S
0 0 0
0 1 1
A B S
1 0 1
1 1 0
RE
RS
A B RE S RS
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Emeric Tapachès
1. Histoire de l’informatique
14
Digression sur les portes logiques et les opérations arithmétiques • La soustraction, la multiplication et la division sont obtenues
en utilisant des additionneurs et des algorithmes.
• Les fonctions mathématiques usuelles telles que :
▫ sinus, tangent, exponentiel, logarithme…
sont obtenues par l’approximation de développements en séries entières ou de suites convergentes ou par des algorithmes.
Développement en série entière de la fonction exponentiel :
Emeric Tapachès
1. Histoire de l’informatique
15
Digression sur les portes logiques et les opérations arithmétiques
• 1971 : Intel 4004 : 2 300 transistors • 1978 : Intel 8086 : 29 000 transistors • 1982 : Intel 80286 275 000 transistors • 1989 : Intel 80486 : 1 160 000 transistors • 1993 : Pentium : 3 100 000 transistors • 1995 : Pentium Pro : 5 500 000 transistors • 1997 : Pentium II : 27 000 000 transistors • 2001 : Pentium 4 : 42 000 000 transistors • 2004 : Pentium Extreme Edition : 169 000 000 transistors • 2006 : Core 2 Quad : 582 000 000 transistors • 2010 : Core i7 : 1 170 000 000 transistors • 2012 : Core i7 SandyBridge : 2 270 000 000 transistors
Emeric Tapachès
1. Histoire de l’informatique • Augusta Ada LOVELACE énonce le principe des machines à calculer
qui doit comporter : ▫ Un dispositif permettant d'introduire les données numériques (cartes
perforées, roues dentées...). ▫ Une mémoire pour conserver les valeurs numériques entrées. ▫ Une unité de commande grâce à laquelle l'utilisateur va indiquer à la
machine les tâches à effectuer. ▫ Un "moulin" chargé d'effectuer les calculs. ▫ Un dispositif permettant de prendre connaissance des résultats
(imprimante...). • Elle définit également la notion de logique de programmation
basée sur le principe des itérations successives dans l’exécution d’une opération. Elle nomme ce processus logique « algorithme » du nom du mathématicien Arabe El Khawarizmi (820)
16
1640
1643
Emeric Tapachès
1. Histoire de l’informatique
• Les ordinateurs pionniers : • Atanasoff–Berry Computer • Fonction : résolution systèmes d’équations
linaires • Système binaire • Portes logiques électroniques • Espace mémoire et de calcul séparé
• ENIAC • Fonction : calculs de balistique • 23 m³ / 30 tonnes • 70 000 résistances • 10 000 condensateurs • 1 500 relais • 6 000 commutateurs manuels • 17 468 lampes
17
1937
1946
Emeric Tapachès
1. Histoire de l’informatique
• Les ordinateurs pionniers : • IBM 1401 • Utilisation de transistors
• 193 000 additions de 8 chiffres par minute
• Instructions : 15 000 caractères par seconde
• Résultats imprimés (modèle 1403) : 600 lignes de 132 caractères par minute
18
1959
Emeric Tapachès
1. Histoire de l’informatique
• Les microordinateurs : ▫ Micral-N en 1973
1er microordinateur personnel basé sur un microprocesseur.
▫ Xerox Alto en 1973 1er microordinateur à intégrer :
Un moniteur Un clavier Une sourie Un système d’exploitation à interface
graphique Son prix élevé limita sa diffusion
19
1837
1904
Emeric Tapachès
1. Histoire de l’informatique
• Les microordinateurs : ▫ Altair 8800 en 1975 • 1er microordinateur personnel équipé
d’un programme, l’Atair BASIC développé par Bill Gates et Paul Allen. Ce programme interprète le langage BASIC en langage assembleur. • Début de Microsoft
▫ Appel 1 en 1976
Équipé d’un clavier et d’un moniteur. Il a été développé par Steve Wozniak, Steve Jobs et Ronald Wayne. Début d’Apple
20
1837
1904
Emeric Tapachès
1. Histoire de l’informatique
• Les microordinateurs : ▫ IBM-PC en 1981 • Production de microordinateurs
en masse avec des composants standards pour minimiser les couts et équiper de logiciels Microsoft.
• Ce PC est copié par d’autres constructeurs, ce qui participe à la diffusion de ce concept de machine.
21
1837
1904
Emeric Tapachès
1. Histoire de l’informatique
• Au cours de cette histoire, des ordinateurs et des systèmes d’exploitation de plus en plus performants ont été conçus. Ils se sont livré une guerre sur le marché de l’informatique. Une partie de cette histoire est racontée dans ce documentaire : https://www.youtube.com/watch?v=kkRdFAoE4Ks
• En 2016, les ordinateurs et les systèmes d’exploitation sur le devant de la scène sont :
22
PC fabriqués par différents constructeurs MAC fabriqué par Apple
Systèmes d’exploitation
Ordinateurs
Emeric Tapachès
2. Architecture d’un ordinateur
• Dans la lignée d’Ada Lovelace, en 1945, Jon Van Neumann proposa l’architecture de base utilisée dans la quasi-totalité des ordinateurs modernes.
23
1) l’unité arithmétique et logique (UAL) ou unité de traitement, qui effectue les opérations de base ;
2) l’unité de contrôle, qui est chargée du séquençage des opérations ;
3) la mémoire, qui contient à la fois les données et le programme qui indiquent à l’unité de contrôle quels calculs faire sur ces données. La mémoire se divise en mémoire vive (programmes et données en cours de fonctionnement) et mémoire de masse (programmes et données de base de la machine) ;
4) les dispositifs d’entrées-sorties, qui permettent de communiquer avec le monde extérieur.
Processeur
Emeric Tapachès
2. Architecture d’un ordinateur
24
Carte mère : Les composants
Mémoire vive
Mémoire morte
Emeric Tapachès
2. Architecture d’un ordinateur
25
Utilisateur
Applications/ Logiciels
Systèmes d’exploitation
Matériels et composants informatiques
Communication avec les composants et le matériel informatique
Emeric Tapachès
Ce sont des programmes
26
Utilisateur
Applications/ Logiciels
Systèmes d’exploitation
Matériels et composants informatiques
2. Architecture d’un ordinateur Communication avec les composants et le matériel informatique
Emeric Tapachès
27
Ce sont des programmes
2. Architecture d’un ordinateur
Utilisateur
Applications/ Logiciels
Systèmes d’exploitation
Matériels et composants informatiques
Communication avec les composants et le matériel informatique
Emeric Tapachès
2. Architecture d’un ordinateur
28
Utilisateur
Applications/ Logiciels
Systèmes d’exploitation
Matériels et composants informatiques
Communication avec les composants et le matériel informatique
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • L’humanité a toujours représenté le monde qui l’entoure à
l’aide de nombres pour calculer et de caractères pour communiquer.
29
Comment traduire ces informations en binaire?
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • Les nombres :
▫ Entiers positifs : Il y a 11 moutons !!
30
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • Les nombres :
▫ Entiers positifs : Il y a 11 moutons !!
31
20 21 22 23 24 2.. 2..
1 2 4 8 16 32 …
1 1 0 1 0 0 0
(11)10 = (1011)2
11 = 𝟏 ∙ 23 + 𝟎 ∙ 22 + 𝟏 ∙ 21 + 𝟏 ∙ 20
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • Les nombres :
▫ Les nombres décimaux positifs : Il y a 2,625 de riz
• OK, cela semble fonctionner…mais :
▫ Comment faire pour les nombres négatifs ?
• La normalisation des nombres réels…
32
2 = 𝟏 ∙ 21 + 𝟎 ∙ 20 (2)10 = (10)2
2,625 = 𝟏 ∙ 21 + 𝟎 ∙ 20+𝟏 ∙ 2−1 + 𝟎 ∙ 2−2 + 𝟏 ∙ 2−3 (2,625)10 = (10,101)2
Partie entière Partie fractionnaire
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • Les nombres :
▫ Les nombres réels : Le thermomètre affiche -15,375 °C
• La norme IEEE : représentation à virgule flottante.
▫ 1re étape : Conversion de 15,375 en binaire :
▫ 2e étape : Déplacement de la virgule (normalisation) : il faut garder un seul chiffre significatif non nul pour la partie entière.
déplacement de 3 digits vers la gauche (déplacement compté positif). Ce déplacement correspond à déplacement.
▫ 3emme étape : Construction du mot binaire sur 32 bit (par exemple) :
𝑣𝑎𝑙𝑒𝑢𝑟 = (−1)𝑠𝑖𝑔𝑛𝑒 ∗ 2 𝑑é𝑝𝑙𝑎𝑐𝑒𝑚𝑒𝑛𝑡+𝑑é𝑐𝑎𝑙𝑔𝑒 ∗ 1,mantise
Ici, le décalage vaut 127. On a exposant = 3 + 127 = 130 = (1000 0010)2
33
15,375 = 𝟏 ∙ 23 + 𝟏 ∙ 22 + 𝟏 ∙ 21 + 𝟏 ∙ 20 + 𝟎 ∙ 2−1 + 𝟏 ∙ 2−2 + 𝟏 ∙ 2−3
(15,375)10 = 𝟏𝟏𝟏𝟏, 0𝟏𝟏 𝟐
𝟏𝟏𝟏𝟏, 0𝟏𝟏 ⇒ 𝟏, 𝟏𝟏𝟏0𝟏𝟏
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • Les nombres :
▫ Les nombres réels : Le thermomètre affiche -15,375 °C
• La norme IEEE : représentation à virgule flottante sur 32 bits.
▫ Signe négatif
▫ (15,375)10 = 𝟏𝟏𝟏𝟏, 0𝟏𝟏 𝟐
▫ 𝟏𝟏𝟏𝟏, 0𝟏𝟏 ⇒ 𝟏, 𝟏𝟏𝟏0𝟏𝟏
▫ Exposant = 3 + 127 = 130 = (1000 0010)2
34
1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • Les nombres :
▫ Les nombres réels : Le thermomètre affiche -15,375 °C
• La norme IEEE : représentation à virgule flottante. ▫ Pour augmenter la précision, il est possible de faire la même choses sur 64 ou
80 bits.
• Il y a donc plusieurs formats de mots binaires, ainsi pour traduire un mot il faut connaitre son format (son type) : ▫ Nombre entier => Integer (int)
▫ Nombre réel simple précision (32 bits) et double précision (64 bits) => flottant (float) et flottant double (double)
35
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • Les caractères : Utilisation de la table ASCII
▫ A chaque caractère est associé un mot nombre et donc un mot binaire.
36
ALT 1 ☺ ALT 31 ▼ ALT 61 = ALT 91 [ ALT 121 y ALT 151 ù ALT 181 Á ALT 211 Ë ALT 241 ±
ALT 2 ☻ ALT 32 ALT 62 > ALT 92 \ ALT 122 z ALT 152 ÿ ALT 182 Â ALT 212 È ALT 242 ‗
ALT 3 ♥ ALT 33 ! ALT 63 ? ALT 93 ] ALT 123 { ALT 153 Ö ALT 183 À ALT 213 ı ALT 243 ¾
ALT 4 ♦ ALT 34 " ALT 64 @ ALT 94 ^ ALT 124 | ALT 154 Ü ALT 184 © ALT 214 Í ALT 244 ¶
ALT 5 ♣ ALT 35 # ALT 65 A ALT 95 _ ALT 125 } ALT 155 ø ALT 185 ╣ ALT 215 Î ALT 245 §
ALT 6 ♠ ALT 36 $ ALT 66 B ALT 96 ` ALT 126 ~ ALT 156 £ ALT 186 ║ ALT 216 Ï ALT 246 ÷
ALT 7 • ALT 37 % ALT 67 C ALT 97 a ALT 127 ⌂ ALT 157 Ø ALT 187 ╗ ALT 217 ┘ ALT 247 ¸
ALT 8 ◘ ALT 38 & ALT 68 D ALT 98 b ALT 128 Ç ALT 158 × ALT 188 ╝ ALT 218 ┌ ALT 248 °
ALT 9 ○ ALT 39 ' ALT 69 E ALT 99 c ALT 129 ü ALT 159 ƒ ALT 189 ¢ ALT 219 █ ALT 249 ¨
ALT 10 ◙ ALT 40 ( ALT 70 F ALT 100 d ALT 130 é ALT 160 á ALT 190 ¥ ALT 220 ▄ ALT 250 ·
ALT 11 ♂ ALT 41 ) ALT 71 G ALT 101 e ALT 131 â ALT 161 í ALT 191 ┐ ALT 221 ¦ ALT 251 ¹
ALT 12 ♀ ALT 42 ; ALT 72 H ALT 102 f ALT 132 ä ALT 162 ó ALT 192 └ ALT 222 Ì ALT 252 ³
ALT 13 ♪ ALT 43 + ALT 73 I ALT 103 g ALT 133 à ALT 163 ú ALT 193 ┴ ALT 223 ▀ ALT 253 ²
ALT 14 ♫ ALT 44 , ALT 74 J ALT 104 h ALT 134 å ALT 164 ñ ALT 194 ┬ ALT 224 Ó ALT 254 ■
ALT 15 ☼ ALT 45 - ALT 75 K ALT 105 i ALT 135 ç ALT 165 Ñ ALT 195 ├ ALT 225 ß ALT 255
ALT 16 ► ALT 46 . ALT 76 L ALT 106 j ALT 136 ê ALT 166 ª ALT 196 ─ ALT 226 Ô
ALT 17 ◄ ALT 47 / ALT 77 M ALT 107 k ALT 137 ë ALT 167 º ALT 197 ┼ ALT 227 Ò
ALT 18 ↕ ALT 48 0 ALT 78 N ALT 108 l ALT 138 è ALT 168 ¿ ALT 198 ã ALT 228 õ
ALT 19 ‼ ALT 49 1 ALT 79 O ALT 109 m ALT 139 ï ALT 169 ® ALT 199 Ã ALT 229 Õ
ALT 20 ¶ ALT 50 2 ALT 80 P ALT 110 n ALT 140 î ALT 170 ¬ ALT 200 ╚ ALT 230 µ
ALT 21 § ALT 51 3 ALT 81 Q ALT 111 o ALT 141 ì ALT 171 ½ ALT 201 ╔ ALT 231 þ
ALT 22 ▬ ALT 52 4 ALT 82 R ALT 112 p ALT 142 Ä ALT 172 ¼ ALT 202 ╩ ALT 232 Þ
ALT 23 ↨ ALT 53 5 ALT 83 S ALT 113 q ALT 143 Å ALT 173 ¡ ALT 203 ╦ ALT 233 Ú
ALT 24 ↑ ALT 54 6 ALT 84 T ALT 114 r ALT 144 É ALT 174 « ALT 204 ╠ ALT 234 Û
ALT 25 ↓ ALT 55 7 ALT 85 U ALT 115 s ALT 145 æ ALT 175 » ALT 205 ═ ALT 235 Ù
ALT 26 → ALT 56 8 ALT 86 V ALT 116 t ALT 146 Æ ALT 176 ░ ALT 206 ╬ ALT 236 ý
ALT 27 ← ALT 57 9 ALT 87 W ALT 117 u ALT 147 ô ALT 177 ▒ ALT 207 ¤ ALT 237 Ý
ALT 28 ∟ ALT 58 : ALT 88 X ALT 118 v ALT 148 ö ALT 178 ▓ ALT 208 ð ALT 238 ¯
ALT 29 ↔ ALT 59 ; ALT 89 Y ALT 119 w ALT 149 ò ALT 179 │ ALT 209 Ð ALT 239 ´
ALT 30 ▲ ALT 60 < ALT 90 Z ALT 120 x ALT 150 û ALT 180 ┤ ALT 210 Ê ALT 240
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • Les caractères : Utilisation de la table ASCII
▫ A chaque caractère est associé un mot nombre et donc un mot binaire.
Il faut associé au mot binaire sont type (format)
« char » pour désigner un unique caractère, par exemple : ‘a’, ‘b’ et ‘c’
« string » pour désigner une chaine de caractère, c’est-à-dire un mot.
37
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • Notre perception du monde par nos sens (la vue, l’ouïe, le toucher…) est
analogique.
▫ Les grandeurs physiques que nous percevons varient dans le temps de façon continue. Elles passent par une infinité d’états, par exemple la température de l’air ambiant.
38
Combien y a-t-il de couleurs dans un arc-en-ciel ?
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • Les informations analogiques ne sont pas adaptées aux outils
informatiques (impossible de représenter cette infinité d’informations).
▫ La numérisation :
39
Signal électrique p. ex. signal sonore
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation • Image pixélisée
40
Rouge
Vert
Bleu
1 pixel =
3 x 256 nuances de rouge, vert
et bleu
1 octet = 256 valeurs
possibles
Emeric Tapachès
4. Représentation de l’information en binaire : La numérisation
41
• Toutes les informations sont numérisées et stockées en binaire dans les mémoires de l’ordinateur.
• Les informations nécessaires pour accéder à une information et la traiter sont : ▫ L’adresse ▫ Le type ▫ Le contenu de l’emplacement mémoire
• Ces mots binaires (données) et leurs règles d’interprétation (instructions) constituent le langage de l’ordinateur que l’on appelle le langage machine.
Emeric Tapachès
Do you speak machine??
42
What ?
Problème…
Emeric Tapachès
4. Abstraction du langage machine
• Le langage assembleur ▫ Langage dit de bas niveau
▫ Traduction du langage machine sous une forme lisible par un humain
▫ 1954, premier programme assembleur a été écrit par Nathaniel Rochester pour l'IBM 701
▫ Ce langage est propre à un processeur
43
Exemple : L’instruction « écrire le nombre 97 (la valeur est donnée en hexadécimal : (61)16 = (97)10) dans le registre AL (espacement mémoire) » s’ écrit en binaire : 10 110 000 01100001 avec un processeur de la famille x86 cette instruction peut s’écrire en assembleur : movb $0x61,%al Ce qui est beaucoup plus simple à comprendre…enfin
Emeric Tapachès
4. Abstraction du langage machine
• Langage assembleur
• Plus simple que le langage machine, mais très contraignant à manipuler. Il demande un certain niveau d’abstraction, d’où l’apparition progressive de langages de haut niveau.
44
01010111 01111101 00111001 10 111 000 11 100 010 10 101 011 10 110 101 01101101 10 001 011 11 010 101 11 101 011 01010110
load 2 R1 storer R1 R2 add R0 R2 mul R0 R3 store R0 0 add R2 10
Code assembleur Code machine
Exécuter
Processeur
Exécuter
Processeur
Emeric Tapachès
4. Abstraction du langage machine
• Langage de haut niveau ▫ Ce sont des langages plus proches du langage humain.
▫ Ils sont indépendants de la plateforme de programmation, ils sont donc portables.
▫ Les codes de haut niveau sont soit :
Compiler une seule fois pour toutes par un compilateur en assembleur avant d’être exécuté.
Interpréter et exécuter ligne par ligne à l’aide d’un interprète.
45
01010111 01111101 00111001 10 111 000 11 100 010 10 101 011 10 110 101 01101101 10 001 011 11 010 101 11 101 011 01010110
load 2 R1 storer R1 R2 add R0 R2 mul R0 R3 store R0 0 add R2 10
Code assembleur Code machine
Emeric Tapachès
Int main() { if (a==b) { b = 5; } return 0; }
Code source
4. Abstraction du langage machine
• Langage de haut niveau ▫ Compilation : illustration
46
01010111 01111101 00111001 10 111 000 11 100 010 10 101 011 10 110 101 01101101 10 001 011 11 010 101 11 101 011 01010110
load 2 R1 storer R1 R2 add R0 R2 mul R0 R3 store R0 0 add R2 10
Code assembleur Code machine
Exécuter
Processeur
Emeric Tapachès
4. Abstraction du langage machine
47
Programmer c’est donner des instructions à l’ordinateur avec
langage généralement de haut niveau
Emeric Tapachès
4. Abstraction du langage machine
• Génération 3 ▫ Langages indépendants du processeur ▫ Proches des langues parlées (anglais) ▫ Langages procéduraux, descriptions des opérations à effectuer pour résoudre un problème
Langages : C, Pascal, Fortran (Formula Translation), Cobol (Common Business Oriented Language), Basic
• Génération 4 ▫ Langages descriptifs ▫ Description de ce que l’on désire faire, mais pas de la manière de le faire ▫ Très fortement lié à un domaine (base de données, tables de calcul)
Langages : Uniface, Informix, Oracle, Lotus
• Génération 5 ▫ Langages descriptifs pour la programmation de systèmes experts
Langages : Prolog
• Génération 6 ▫ Orienté objet ▫ Toutes les informations nécessaires à la résolution d’un problème sont réunies dans un objet
Langages : Ada, C++, C#, Delphi, Eiffel, Java, Object Pascal, PHP, Python, Smalltalk
48
Quelques langages de haut niveau :
Emeric Tapachès
5. Focus sur le langage Python
• Langage développé par Guido van Rossum dans les années 80. ▫ Langage intermédiaire : il est interprété, mais il peut
être compilé. ▫ Multiplateforme (Windows, Linux, Mac OS). ▫ Open source (donc gratuit). ▫ Adapter à de nombreux besoins de programmation (il
sait tout faire). ▫ Forte communauté de programmeurs. ▫ Utiliser dans de nombreux établissement d’éducation.
49
Emeric Tapachès
5. Focus sur le langage Python
• Domaines d’application : ▫ Développement web,
▫ Bases de données,
▫ Image de synthèse,
▫ Calcul scientifique,
▫ Programmation orientée-objet.
50
Emeric Tapachès
5. Focus sur le langage Python
• Logiciels ou projets basés sur Python : ▫ Dropbox, ▫ Blender 3, ▫ Cinéma 4D, ▫ World of Tanks, ▫ Battlefield 2, ▫ Django (création site web) ▫ ArcGIS ▫ NASA, Google, Yahoo, EDF… ▫ Pour plus d’info :
https://en.wikipedia.org/wiki/List_of_Python_software
51
Emeric Tapachès
Sources
• http://www.histoire-informatique.org/grandes_dates/
• http://www.apmep.fr/IMG/pdf/Huyghens.pdf
• http://www.groupes.polymtl.ca/circuits-logiques/help/Chapitre02.pdf
• http://www.ai.univ-paris8.fr/~audibert/ens/6-PORTESLOGIQUES.pdf
• http://lehollandaisvolant.net/tuto/computer/
52
Emeric Tapachès
Merci de votre attention
53
Emeric Tapachès
Top Related