Intro_Programmation_Informatique

Post on 12-Apr-2017

378 views 1 download

Transcript of Intro_Programmation_Informatique

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

Merci de votre attention

53

Emeric Tapachès