You are on page 1of 88

Introduction ` l’informatique a cours de L1 Miashs, Lille3

I.Tellier

Ce document est soumis ` la licence libre GFDL et aux droits qui en d´coulent. Il a e est aussi disponible aux format HTML (sous forme de page Web) et PDF (t´l´chargeable ee gratuitement) ` partir de la page “enseignement” de son auteur : a http ://www.grappa.univ-lille3.fr/∼tellier/enseignement.html

i

Table des mati`res e
1 Introduction 2 Qu’est-ce que l’informatique ? 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 2 Donn´es discr`tes et codage . . . . . . . . . . . . . . e e 2.1 La notion de bit . . . . . . . . . . . . . . . . . 2.2 Les caract`res alphanum´riques . . . . . . . . e e 2.3 Les nombres entiers . . . . . . . . . . . . . . . 2.4 Grands nombres et nombres d´cimaux . . . . e 2.5 Les tableaux . . . . . . . . . . . . . . . . . . . 2.6 Codage des sons . . . . . . . . . . . . . . . . . 2.7 Codage des images . . . . . . . . . . . . . . . 2.8 Codage num´rique et codage analogique . . . e 2.9 Codages/d´codages et changements de codes . e 2.10 En guise de conclusion : le monde est-il discret 3 Traitements effectifs . . . . . . . . . . . . . . . . . . 3.1 Pr´histoire des algorithmes . . . . . . . . . . . e 3.2 Les probl`mes de Hilbert . . . . . . . . . . . . e 3.3 La machine de Turing . . . . . . . . . . . . . 3.4 Un exemple simple . . . . . . . . . . . . . . . 3.5 La th`se de Church-Turing . . . . . . . . . . . e 3.6 La notion de machine universelle . . . . . . . 3.7 Ind´cidabilit´ . . . . . . . . . . . . . . . . . . e e 3.8 L’h´ritage scientifique de Turing . . . . . . . . e 3.9 L’h´ritage philosophique de Turing . . . . . . e 4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 3 Les ordinateurs 1 Le mat´riel . . . . . . . . . . . . . . . e 1.1 Les composants externes . . . . 1.2 L’architecture de Von Neumann 1.3 La m´moire centrale (RAM) . . e 1.4 L’unit´ de commande . . . . . . e 1.5 L’horloge . . . . . . . . . . . . 1.6 L’unit´ de traitement . . . . . . e 1.7 Les bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ou continu ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 3 3 5 7 8 9 10 12 15 16 17 18 18 20 21 23 26 28 29 30 31 32 34 34 34 36 37 38 41 41 41

ii

2

3

1.8 Le cycle d’ex´cution d’une instruction . . . . . . . . . . . e 1.9 L’architecture de Von Neumann et les autres . . . . . . . 1.10 Les unit´s d’´change . . . . . . . . . . . . . . . . . . . . e e Le logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 langages d’assemblage et langages ´volu´s . . . . . . . . e e 2.2 La d´marche de conception d’un programme . . . . . . . e 2.3 Le syst`me d’exploitation . . . . . . . . . . . . . . . . . e 2.4 La hi´rarchie des r´pertoires (ou dossiers) et des fichiers . e e 2.5 Les autres couches logicielles . . . . . . . . . . . . . . . . Les r´seaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 3.1 La notion de protocole . . . . . . . . . . . . . . . . . . . 3.2 topologie des petits r´seaux . . . . . . . . . . . . . . . . e 3.3 Exemples de protocoles pour les petits r´seaux . . . . . . e 3.4 Les r´seaux maill´s . . . . . . . . . . . . . . . . . . . . . e e 3.5 Deux protocoles possibles dans les r´seaux maill´s . . . . e e 3.6 L’Internet . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 Le Web et son avenir . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42 48 50 52 52 54 56 58 60 62 62 63 66 67 67 69 71 72 72 72 75 75 75 75 76 76 77 77 77 77 78 78 78 79 79 79 80 80 81 81 82 83

4 L’histoire de l’informatique 1 Pr´histoire . . . . . . . . . . . . . . . . . . . . . . . . . . e 2 Ancˆtres et pr´curseurs . . . . . . . . . . . . . . . . . . . e e 3 Histoire contemporaine . . . . . . . . . . . . . . . . . . . 3.1 Premi`re g´n´ration : les monstres . . . . . . . . e e e 3.2 Deuxi`me g´n´ration : int´gration du transistor . e e e e 3.3 Troisi`me g´n´ration : les circuits int´gr´s . . . . e e e e e 3.4 Quatri`me g´n´ration : les micro-ordinateurs . . . e e e 3.5 Cinqui`me g´n´ration : l’interface graphique et les e e e 5 Bibliographie 1 Introductions g´n´rales ` l’informatique e e a 2 Internet et les r´seaux . . . . . . . . . e 3 Autour de Turing . . . . . . . . . . . . 4 Sur l’Intelligence Artificielle . . . . . . 5 R´f´rences ludiques et s´rieuses . . . . ee e 6 Sites Web . . . . . . . . . . . . . . . . 6 Exercices corrig´s e 1 Enonc´s . . . . . e 1.1 Exercice 1 1.2 Exercice 2 1.3 Exercice 3 2 Corrections . . . 2.1 Exercice 1 2.2 Exercice 2 2.3 Exercice 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r´seaux e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

iii

Le terme d’informaticien semble d’ailleurs recoue per une grande diversit´ de m´tiers et d’occupations r´elles. je souhaite que «l’honnˆte homme du XXI`me si`cle» sache et e e e pense de ma discipline. 1 . de fa¸on aussi abordable que possible. appel´e ` coup sˆ r ` un grand d´veloppement dans les ann´es e a u a e e qui viennent.. Ce document se veut (en partie) une r´ponse ` ceux qui se demandent quels e a sont les fondements de l’informatique. Ce n’est a pas non plus un manuel technique ` l’usage de ceux qui souhaitent bricoler leur a machine favorite. Il est mˆme ` l’origine de nouveaux modes de e e a sociabilit´ et d’une nouvelle ´conomie : l’informatique est partout ! e e Pourtant. ce que. en tant e e c qu’informaticienne. e e a e mais qui se place ` un niveau non trivial. en passant par le webmaˆ a e e ıtre. J’ai ici essay´ de d´crire. Si. ordre de grandeurs des performances des machines actuelles. L’informatique dont il sera question ici est une discipline scientifique qui. pourront ˆtre glan´es (vocabulaire sp´cialis´. ou aux novices. Cette pr´sentation rel`ve donc principalement e e d’une d´marche de vulgarisation scientifique destin´e ` un public de non sp´cialistes. De cette discipline. l’ordinateur lui-mˆme demeure pour beaucoup une ´nigme. un objet e e myst´rieux et un peu magique. typologie e e e e de mat´riels.). et dispose pour les e aborder d’outils et de m´thodes sp´cifiques. au fil des pages. des informations utiles ` ces deux cat´gories a e d’utilisateurs.Chapitre 1 Introduction C’est devenu une banalit´ : l’ordinateur s’accapare nos bureaux. tel n’est e pas son objectif premier. e e ee e e e malgr´ le prestige un peu mythique que conservent des projets comme ceux de la e robotique ou de l’intelligence artificielle. modifie nos e modes de travail. difficilement trouvable dans les manuels a habituellement disponibles. on abordera les fone e dements th´oriques ainsi que quelques r´alisations pratiques. Quant ` la nature du travail de a ceux qui font de la «recherche en informatique». a ses propres questions. c’est sans doute (` en juger par les a r´actions auxquelles j’ai moi-mˆme ´t´ confront´e) une myst`re encore plus ´pais. Il n’est pas con¸u pour initier au maniement c pratique des ordinateurs. envahit nos maisons. en tant que telle. ses propres probl`mes. ce n’est pas une introduction ` la bureautique. mais on insistera plus e e sur les concepts que sur la technique. allant du technicien e e e ` l’ing´nieur r´seau. s’int`gre dans les objets les plus quotidiens e et nous propose des loisirs in´dits..

tableurs. «computer science») : non. mˆme en absence d’ordinateur. et de faire ´merger leurs principes sous-jacents. les informaticiens ne connaissent pas n´cessairement toutes les nouvelles versions des programmes e du commerce. les informaticiens ne savent pas n´cessairement r´parer un ordinateur en panne. navigation sur l’Internet.. L’image de l’ordinateur comme «grosse machine ` calculer». e Commen¸ons donc par l’aspect logiciel. pourtant. e a a La comp´tence r´elle des informaticiens n’est ni mat´rielle.. Pour arriver ` une d´finition satisfaisante.Chapitre 2 Qu’est-ce que l’informatique ? 1 Introduction Le statut de l’informatique en tant que discipline est ambigu et mal compris : est-il ` chercher du cˆt´ de la science ou du cˆt´ de la technique ? Quel est l’objet a oe oe d’´tude propre aux informaticiens ? Quelles sont leurs vraies comp´tences ? Avant e e de nous engager sur ces points.. oui l’informatique peut s’´tudier avec un papier et e un crayon. diagnostiquer un e e probl`me ´lectronique ou effectuer des branchements compliqu´s. commen¸ons par ´liminer les mauvaises r´ponses : c e e – l’informatique n’est pas la «science des ordinateurs» (ce que. e e e Alors. mais de fa¸on plus mythique et loine e e c taine. vue au cin´ma. apparemment e a si disparates ? Quelles sont les caract´ristiques partag´es par tous ces logiciels ? e e Pour aborder ces questions. La connaissance commune de l’informac tique se fonde en effet g´n´ralement sur la pratique de quelques logiciels d’usage e e courant : traitements de texte. ils ne sont e e e pas toujours les meilleurs guides quand il s’agit d’acheter un nouveau mod`le e de scanner ou de modem . ils ne savent pas toujours utiliser toutes leurs fonctions. quelque chose de plus abstrait et de plus fondamental sans quoi ni les ordinateurs ni les logiciels ne pourraient fonctionner. ni fonctionnelle.. e – l’informatique n’est pas la «science des logiciels» : non.. fonctionnant pendant des heures pour a r´aliser ses calculs. qu’est ce que l’informatique ? C’est quelque chose entre les deux... laisse croire sa traduction anglaise. reste ´galement pr´sente. on peut commencer par remarquer que tout programme peut ˆtre d´crit par deux aspects fondamentaux : les donn´es qu’il manipule e e e et les traitements qu’il permet de r´aliser sur ces donn´es. Le tableau de la figure e e 2 .. notre a e d´marche sera de partir de ces deux niveaux de description habituels : mat´riel et e e logiciel. Y a-t-il une base commune ` tous ces usages. ils ne passent pas (toujours) leurs journ´es ` tester des jeux ou ` chercher des bugs.

coller. est un composant e quelconque ne pouvant se trouver que dans deux ´tats possibles. en g´n´ral. sons e textes. personnages anim´s. ´change de donn´es e e Fig. changer la casse ou la police. CD-Rom donn´es e caract`res e alphanum´riques e (lettres de l’alphabet. exprimables par des ale e gorithmes.. ´crire e et r´soudre des ´quations. par d´finition. op´rations et e symboles math´matiques e dessins. outils de gestion jeux bases de donn´es. calculer. Un bit.1 permet de r´sumer ces caract´ristiques pour les logiciels les plus couramment e e utilis´s.. chiffres et tous les autres caract`res e du clavier) nombres. e Toutes les donn´es cit´es dans ce tableau (et toutes celles. Les fondements de l’informatique sont ` chercher dans ces deux notions. 2. exclusifs l’un de e l’autre. logie ciels documentaires Internet.logiciel traitement de textes calculs num´riques. e e faire des graphiques appliquer les r`gles du jeu e stocker en m´moire et ree chercher des donn´es e tous les traitements cit´s e pr´c´demment + commue e nication entre machines. effacer. qui signifie en anglais nombre binaire. par exemple : 3 . manie e e e pul´es par les ordinateurs) ont un point commun : ce sont des donn´es discr`tes. il faut cette fois partir des composants e mat´riels qui constituent un ordinateur et aborder quelques notions ´l´mentaires de e ee la th´orie de l’information. images. donn´es e factuelles toutes les donn´es cit´es e e pr´c´demment e e traitemements copier. Ainsi. On peut imaginer bien des dispositifs physiques pouvant r´pondre ` cette e a d´finition. e e e c’est-`-dire distinctes les unes des autres et qu’on peut ´num´rer une par une. e 2 Donn´es discr`tes et codage e e Tout le monde a entendu dire que les ordinateurs «ne fonctionnent qu’avec des 0 et des 1». Qu’est-ce que cela signifie exactement et o` . e 2. sont donc u cach´s ces 0 et ces 1 ? Pour le comprendre. contraction de binary e e digit. et nombre d’entre eux ont ´t´ exploit´s au moins une fois dans l’histoire e ee e de l’informatique. d´placer. tae bleurs.1 – donn´es et traitements des logiciels courants e 2.1 La notion de bit L’unit´ de base de la th´orie de l’information est le bit. dans l’ordinateur. e intervertir. mettre en page. Tous a e e les traitements ´voqu´s ici (et tous les autres traitements possibles en informatique) e e ont ´galement en commun d’ˆtre des traitements effectifs. a que nous allons donc maintenant d´tailler.

e e e – un aimant pouvant ˆtre polaris´ «Sud» ou «Nord» : les m´moires des ordie e e nateurs actuels. pas grand chose.2. sont compos´s de milliards de petits aimants . un «calculateur ` eau» fonctionnant avec des seaux et des tuyaux a remplis d’eau. Par convention. 100. mais e e avec la lumi`re au lieu de l’´lectricit´. ˆtre vus comme des interrupteurs e miniatures. Les fibres optiques r´alisent la mˆme fonction que les fils. utilisaient ainsi des milliers de lampes ou «tubes e ` vide» : un tel dispositif ´tait h´las en panne d`s qu’une lampe grillait . avec les transistors qui peuvent. alors huit combinaisons sont possibles : 000. puisque le bit ajout´ a lui-mˆme deux ´tats possibles. ajouter un bit multiplie par deux le nombre de combinaisons possibles. beaucoup de choses ! Si. le «circuit int´gr´») : c’est ´videmment le composant de base des ordinae e e e teurs. Que faire avec de tels composants aussi ´l´mentaires ? e e ee Avec un seul. leur «disque dur». comme dans la figure 2.2 – arbre des combinaisons possibles de 3 bits En fait. 001. 010. a puisque c’est uniquement cette distinction qui est importante. on dispose de deux bits. e – une surface ayant soit un creux soit une bosse : les CD-audio. eux. 101. 011. A partir de maintenant. les DVD. ` la Cit´ des Sciences de la e e a e Villette. un bit sera donc pour nous un espace dans lequel on pourra soit ´crire 0. mais avec plusieurs. les CD-Rom. – un r´cipient pouvant ˆtre plein ou vide : il y a. 110. On peut repr´senter ces huit combinaisons comme tous les e diff´rents parcours possibles dans un arbre o` chaque branche est un choix entre 0 e u ou 1. On aurait tout aussi bien pu e choisir les symboles a et b ` la place. ainsi que les anciennes disquettes. et l’autre 1. ou tout autre couple de deux signes distincts. ne sont rien d’autre que des morceaux de plastique grav´s de creux et e de bosses tellement minuscules que seul un faisceau laser peut les distinguer . 10 ou 11. Si on en prend trois. 111. Ces deux symboles sont e arbitraires et n’ont pas de signification num´rique. 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Fig. pour s’abstraire de ces contingences mat´rielles. en effet. alors le nombre total d’´tats possibles que e peuvent prendre ces deux bits est de quatre : 00. on appelle l’un des e deux ´tats possibles d’un tel composant 0. soit ´crire 1. 2. 01. a e e e – un fil ´lectrique dans lequel le courant circule ou pas (ou sa version miniatue ris´e. dans les ann´es 40. Dans la repr´sentation arborese e e e 4 .– une lampe ´lectrique qui est soit allum´e soit ´teinte : les tout premiers ordie e e nateurs.

peut apparaˆ pour des raisons ind´pendantes de l’informatique. e e e 7 puisque 2 = 128. De plus. crochets. une cl´ USB entre 64 Mega-octet et 1 Giga octet. Un nouveau symbole.cente. Enfin. £) ou abr´viations comme : &.. On peut en d´duire e e par exemple le nombre d’aimants contenus sur une disquette. C’est pr´cis´ment ce que r´alisait la premi`re version du code e e e e ASCII (pour American Standard for Communication and International Interchange).. accolades. tr´mas et c´dilles en fran¸ais... soit encore au moins quinze dese sins nouveaux. e e 1 octet (byte en anglais) = 8 bits (8 = 23 ) et permet 28 = 256 combinaisons diff´rentes possibles e 1 Kilo-octet = 210 octets = 1024 octets. de 7 bits. Mais ce calcul est trop restrictif. 2.”. comparateurs (<. un e e CD contient environ 600 Mega-octet. e guillemets.. e e a 2. certaines langues utilisent en outre des caract`res sp´ciaux : voyelles accentu´es. ainsi que ceux qui r´sultent des combinaisons de touches. comme celui qui a ´t´ choisi pour ee l’Euro. “ ?”. La a m´moire des disques durs actuels se compte aussi en Giga-octets. §. tilde e e e e e c espagnol. Ce raisonnement permet de montrer que.9 et une vingtaine de notations math´matiques courantes : op´rateurs (+. o 5 . Il est donc ıtre e plus raisonnable de conserver une marge de manoeuvre.. les passages ` la ligne ou les fins de fichier (comptons a en 5). β allemand.. a e nous avons donc au minimum besoin. Come bien existe-t-il de caract`res alphanum´riques ? L’alphabet latin utilise 26 symboles e e diff´rents. Les multiples e e utilis´s se comptent ´galement en puissance de deux. d’apr`s notre calcul pr´c´dent. Voyons maintenant comment coder les donn´es cit´es dans le tableau de la figure 2. on a 2n combinaisons possibles. De nombreux autres caract`res sont utie e e lis´es dans les graphies usuelles : ponctuations (“. des caract`res sp´ciaux sont pass´s ` l’usage courant : syme e e a boles de monnaies ($. e e >). s’ajoutent les 10 symboles de chiffres : 0. tirets. −. Le bit est l’unit´ de comptage de la m´moire des ordinateurs. soit environ 106 octets 1 Giga-octet = 1024 Mega-octets.”. “ :”). parenth`ses.. “ !”. A ces lettres. ce qui fait 52 syme boles.. un ´diteur de textes consid`re comme symbole certains signes invie e sibles comme les espaces blancs. cela revient ` d´doubler chaque «feuille» de l’arbre (chaque dernier ´l´ment). soit environ 109 octets 1 Tera-octet = 1024 Giga-octets. ∗. En effet.2 Les caract`res alphanum´riques e e Les caract`res alphanum´riques sont tous les caract`res disponibles sur un clae e e vier d’ordinateur. apostrophe. “ . Notre tr`s grossier calcul nous am`ne donc ` environ : e e a 52 + 10 + 20 + 15 + 10 + 5 = 112 Pour associer ` chacun de ces caract`res une suite distincte de 0/1 qui le code. signe d’´galit´ (=). 1.. dont chacun existe en version minuscule et majuscule. Comptons-en donc une e dizaine. /). avec n bits. et de prendre plutˆt 8 bits.1 ` l’aide de bits. @. et co¨ ıncide presque avec la d´finition e usuelle du kilo qui vaut 103 1 Mega-octet = 1024 Kilo-octets. a e ee et donc ` multiplier par deux le nombre total de chemins possibles (´gal au nombre a e de feuilles).. un DVD jusqu’` environ 17 Giga-octets. symboles logiques. soit environ 1012 octets Pour avoir un ordre de grandeur de ces valeurs : une disquette a une capacit´ d’environ 1 Mega-octet.

. Ces variations expliquent toutefois que e des messages peuvent ˆtre plus ou moins d´chiffrables quand on les fait passer d’une e e machine ` une autre (parfois mˆme d’un programme ` un autre sur une mˆme maa e a e chine). parce que certains programmes de gestion e ee de ces courriers utilisaient un code rudimentaire (fond´ sur les claviers am´ricains) e e qui les ignorait. Le tableau de la figure 2. Ils permettent donc des substitutions de bits core e respondant ` des codes ASCII. Ils ne sont pas adapt´s ` la mise en page des textes.. Elle r´pertorie environ 250 000 e e caract`res diff´rents. une initiative internationale cherche ` promouvoir une noue a velle mani`re de r´f´rencer tous les caract`res de toutes les langues ´crites (actuelles e ee e e ou ayant exist´) du monde : c’est la norme unicode.3 donne quelques exemples du code ASCII sur 8 bits associ´ ` certains caract`res : ea e code ASCII 00100011 00100100 00100101 01111010 01111011 00100001 00110001 caract`re e # $ % z { ! 1 Fig. Quelle que soit la variante adopt´e. Ce code a donc subi des modifications. coller. d´placer. e 6 . Mais cette norme ne fixe e e ea pas un codage en bits unique. Il a par exemple longtemps ´t´ recommand´ d’´viter d’utiliser les caract`res ee e e e accentu´s dans les courriers ´l´ctroniques. le e e a e codage des textes est ´conomique : sur une disquette (environ 1 Mega-octets) on e peut stocker un livre de 500 pages et sur un CD (environ 600 Mega-octets) une encyclop´die. mais nous ne rentrerons pas dans ces d´tails ici..) les caa e ract`res alphanum´riques «purs». la police et la taille de l’affichage des caract`res. e e Mˆme en prenant en compte les nouveaux codes associ´s ` cette pr´sentation. mais sont largement suffisants pour ´crire des messages a e factuels ou des programmes informatiques.soit un octet. qui permet 256 combinaisons diff´rentes. chacun associ´ ` un nombre distinct. intervertir.. a e a ` leur formatage visuel. effacer.. et peut utiliser un nombre variable de bits (tous les caract`res ne sont pas cod´s avec le mˆme nombre de bits) .3 – quelques exemples de code ASCII Depuis les ann´es 90. Les «´diteurs de textes» (comme le «Bloc Note» de Windows) sont des proe grammes servant ` manipuler (copier. l’aspect «centr´e» e e e ou «justifi´» d’un paragraphe. C’est ce que r´alise le code e e ASCII actuel. 2. et il en existe de multiples variantes. Les logiciels de «traitements de textes» utilisent en outre des codes sp´ciaux e sp´cifiques pour repr´senter la mise en page du texte : les marges. nous ne la d´taillerons e e e e pas non plus ici.. le codage des caract`res alphanum´riques e e e est donc r´alis´ par une association arbitraire et conventionnelle entre un caract`re e e e et une suite de bits.

la num´rotation de position. La valeur r´elle du nombre est alors a e la somme de ces puissances. la mˆme e e valeur (l’un vaut 30. le mieux est d’abord de bien analyser leur repr´sentation usuelle en base 10. Cette repr´sentation e e e fait usage de 10 symboles diff´rents de base : 1. La a a e a repr´sentation des chiffres romains n’utilise pas. nous l’avons a a vu. Ainsi par exemple : 533 = 5 ∗ 100 + 3 ∗ 10 + 3 ∗ 1 = 5 ∗ 102 + 3 ∗ 101 + 3 ∗ 100 2001 = 2 ∗ 1000 + 1 ∗ 1 = 2 ∗ 103 + 0 ∗ 102 + 0 ∗ 101 + 1 ∗ 100 Quand on «lit» un tel nombre. Mais les nombres ont un statut et un usage e particuliers : ils sont compl`tement ordonn´s et servent ` faire des calculs. e e c e e c’est-`-dire par association arbitraire. on attribue ` chaque chiffre qui le constitue. Le tableau suivant donne des exemples de codage de nombres en base 2 : 25 = 32 24 = 16 23 = 8 1 0 0 22 = 4 0 1 1 1 21 = 2 0 1 1 0 7 20 = 1 1 1 1 1 nombre d´cimal e 8+1=9 4+2+1=7 16 + 4 + 2 + 1 = 23 32 + 4 + 1 = 37 1 1 0 . 2. c’est-`-dire celle imm´diatement ` gauche. e e e e Le principe de la num´rotation de position se g´n´ralise ` n’importe quelle base e e e a de repr´sentation en changeant simplement la puissance correspondante : pour la e repr´sentation binaire. 0 correspond bien au chiffre e 0 et 1 au chiffre 1. ind´pendamment de leur position.. en a fonction de sa place dans l’´criture du nombre. 9 et 0 et utilise le principe e de la num´rotation de position. Pour une e fois. elle.3 Les nombres entiers On pourrait proc´der avec les nombres entiers de la mˆme fa¸on que pr´c´demment.2. une certaine puissance de 10. dans l’´criture du nombre 18 en chiffre romains : XVIII. un code ASCII. dite aussi d´cimale. Dans a e un tel syst`me.. l’autre vaut 3). Cette num´rotation a ´t´ invent´e par les indiens au e e ee e V`me si`cle en mˆme temps que le symbole 0 (qu’elle rend n´cessaire). e e Par exemple. . Leur coe e a dage utilise une technique math´matique adapt´e : la num´rotation binaire (ou en e e e base 2). les trois e symboles «I» ` la fin valent tous les trois 1. et transmis e e e e en occident par l’interm´diaire des arabes (d’o` le nom de «chiffres arabes»). Ainsi. Les chiffres de 0 ` 9 ont d’ailleurs. en tant que caract`re. ce sont donc les puissances de 2 qui vont servir. Pour comprendre le codage binaire des nombres. les op´rations math´matiques s’effectuent tr`s difficilement. nous prenons donc nos symboles 0/1 au s´rieux : ici.. Son e u principe est que chacun des symboles constituant un nombre repr´sente en fait une e puissance croissante de 10 lu de droite ` gauche. La «grille de lecture» sous-jacente est donc un tableau de la forme : 103 2 102 5 0 101 3 0 100 3 1 Le principe de la «retenue» dans les additions est alors naturel : une somme de chiffres qui d´passe 10 pour une puissance de 10 donn´e peut ˆtre repr´sent´e en e e e e e passant ` la puissance de 10 suivante. en fait. e les deux symboles «3» du premier nombre ne repr´sentent pas. 3.

Or 2 octets ne permettent que 2 = 65536 combinaisons diff´rentes de 0/1. Concr`tement. Si. e e e Ainsi. on pose 0 a e en bas de cette colonne et une retenue de 1 dans la colonne imm´diatement ` gauche. e Example 1 L’addition 10111 + 101 est ex´cut´e en base 2 ci-dessous. les «retenues» sont n´cessaires d`s que l’on d´passe un total de 2 pour une e e e puissance de 2 donn´e . a e e e 2. les op´rations math´matiques usuelles sur les nombres a a e e e binaires s’effectuent exactement de la mˆme mani`re que sur les nombres d´cimaux. et de coder ind´pendamment la e partie «exposant» et la partie «mantisse» du r´sultat. en revanche. Mais ce codage rend d´licat les calculs avec e e e les nombres n´gatifs. a alors le r´sultat annonc´ du calcul sera faux (c’est le mˆme probl`me que pour le e e e e «bogue de l’an 2000»).4 Grands nombres et nombres d´cimaux e Pour coder les grands nombres sans risquer les erreurs pr´c´dentes. Cette limite e e e va donner lieu ` des erreurs d`s que ces bornes sont d´pass´es dans un calcul. cet espace est insuffisant (` cause des retenues). 1 que le nombre est n´gatif (pour e le nombre 0. le codage en base 2 occupe plus de place que le codage e d´cimal (c’est naturel puisque. mˆme dans les derni`res versions de Turbo Pascal (un environnement de e e programmation pour le langage Pascal encore en usage). comme en base 10. cela signifie que les seuls nombres entiers relatifs e e qui peuvent ˆtre repr´sent´s sont ceux compris entre −32768 et 32767. lors e e e d’un calcul avec des nombres entiers. deux octets ´taient r´serv´s e e e 16 pour tout nombre entier. e Example 2 En base 10. et pour coder e e les nombres d´cimaux (c’est-`-dire avec une virgule). la m´thode adopt´e s’appelle e a e e «repr´sentation en virgule flottante». il utilise moins de symboles distincts e de base). elles consistent. Ainsi. Son principe est de normaliser l’´criture de ces e e nombres.Grˆce ` cette repr´sentation. e Pour un nombre donn´. la valeur de ce bit est alors indiff´rente : 0 a donc dans ce cas deux e repr´sentations diff´rentes possibles). en jouant sur les puissances de la base. e e Pour repr´senter les nombres n´gatifs. il suffit de r´server l’un des bits (par e e e exemple le plus ` gauche) pour coder le signe du nombre : par exemple la valeur a 0 de ce bit signifie que le nombre est positif. e a puisque «10» en base 2 correspond au nombre d´cimal 2). e e 1 1 1 1 0 1 1 1 + 1 0 1 1 1 1 0 0 En base 10. a ajouter 1 dans une e ` colonne plus ` gauche (par exemple : si le r´sultat d’une colonne vaut 2. l’op´ration math´matique correspondante est : 23 + 5 = 28. Pour maˆ ıtriser l’espace m´moire n´cessaire au codage des nombres. D’autres codages plus astucieux (que nous ne d´taillerons pas e e ici) permettent de r´aliser des op´rations math´matiques aussi simplement avec les e e e nombres n´gatifs qu’avec les nombres positifs. on peut ´crire : e 8 . un e e nombre fixe de bits est r´serv´ pour toute donn´e de type «nombre entier».

il suffit par exemple : e – de rep´rer le nombre de lignes et le nombre de colonnes du tableau . dont l’exposant e e e e est tr`s grand en valeur absolue et n´gatif peut ne pas ˆtre repr´sent´ correctement : e e e e e tout ordinateur a sa limite en terme de repr´sentation des nombres (pour les petits e nombres.. Dans la repr´sentation en virgule flottante.5 Les tableaux Les tableaux. e e La repr´sentation en virgule flottante n’exclut pourtant pas tout risque d’erreur : e pour un nombre tr`s grand avec beaucoup de chiffres significatifs. l’ordre de grane deur du nombre sera conserv´ (grˆce au codage de l’exposant) mais le d´tail des e a e d´cimales peut ˆtre perdu. Imaginons par exemple que nous souhaitions coder le e a tableau suivant.10−4 Tout nombre en base 10 peut ainsi s’´crire sous la forme d’un nombre d´cimal e e commen¸ant par 0. 000027 = 0. 27.2101. suivi de ce qui s’appelle la «mantisse». 27. utiles dans les tableurs ou les bases de donn´es. o` 11011 est la mantisse et 101 (qui vaut 5 en base 10) u est l’exposant. qui ne contient que des nombres entiers : 12 -15 -8 5 7 -2 -3 2 0 0 0 1 -1 5 2 Pour repr´senter un tel tableau. e a 2. e – de fixer un nombre de bits permettant de coder ` la fois le nombre de lignes a et de colonnes et chacune des donn´es pr´sentes dans une case du tableau .. Chacune de ces donn´es e a e 9 . e e Par exemple le nombre 27 en base 2 peut s’´crire : e 11011 = 0..27000000 = 0. Le e e e e principe est exactement le mˆme si la base de la num´rotation est 2. Un e e nombre trop grand pour ˆtre cod´ de fa¸on traditionnelle sur deux octets peut ˆtre e e c e cod´ correctement avec ce syst`me.109 0. et un autre est r´serv´ pour coder la valeur de la puissance. e e Les «erreurs d’arrondis» sont une cons´quence directe et in´vitable du codage des e e nombres r´els ` l’aide de symboles discrets. peuvent ˆtre eux e e aussi cod´s ` l’aide de 0/1. et tous les nombres qu’il contient sont inf´rieurs ` 16 = 24 en valeur absolue. e e – de coder successivement chacune de ces donn´es dans une longue chaˆ de e ıne 0/1. 11011. le tableau a 3 lignes et 5 colonnes. on parle de «epsilon machine»). un espace m´moire est r´serv´ pour e e e e coder la mantisse. De mˆme un nombre tr`s proche de 0. Les nombres d´cimaux qui s’´crivent avec un nombre infini non p´riodique de e e e chiffres apr`s la virgule (par exemple : π) n’appartiennent pas au monde du «dise cret» : les coder avec des 0/1 impose donc une part d’approximation irr´m´diable. Dans notre exemple. qui contient les chiffres c significatifs du nombre (et commence donc toujours par un chiffre diff´rent de 0) e et multipli´ par une certaine puissance enti`re de 10 (´ventuellement n´gative).

Le principe du a fameux format de codage appel´ MP3 est.6 Codage des sons Les sons semblent ˆtre de nature diff´rente des symboles et des nombres. a e Les bases de donn´es et les logiciels documentaires sont essentiellement constitu´es e e de tableaux de donn´es h´t´rog`nes. via une part d’approximation.. dans lequel chaque colonne e est d’un type particulier.5. Un son r´el est en fait une superposition de courbes de ce genre. pr´nom auteur e Gustave Victor Victor . on obtient la chaˆ suivante (pour faciliter a ıne la lecture... 2. e e e titre de livre disponible Mme Bovary Notre Dame de Paris Les mis´rables e . constituant ce que nous avons appel´ dans la e ee e e figure 2. Dans ce cas.peut donc ˆtre cod´e sur 5 bits (le premier bit servira pour le signe).1 des «donn´es factuelles». de ne coder que la partie du e e e son que les sens humains per¸oivent. si e chaque case ne peut contenir qu’un nombre ou qu’un caract`re.4. indiquant comment interpr´ter les bits suivants. Fig... e e c’est-`-dire de transformer les param`tres qui la d´finissent (le temps et l’amplitude). on laisse un espace entre chaque donn´e distincte) : e 00011 00101 01100 00101 10011 00000 10001 11111 00111 00010 00000 00101 11000 10010 00000 00001 00010 A partir de cette chaˆ et ` condition bien sˆ r de connaˆ les conventions de ıne. il faut pr´voir d’inclure dans le codage quelques bits qui e e signalent.. c Pour coder une telle courbe continue en bits. on peut enti`rement reconstituer le tableau initial. e De mˆme. les trois premi`res colonnes seraient e de type «chaˆ de caract`res» (il faudrait pr´ciser pour chacune le nombre de caıne e e ract`res maximum qu’elle peut contenir). pour chaque case. a u ıtre codage. la derni`re ´tant de type «nombre entier». En codant e e successivement le nombre de lignes puis le nombre de colonnes et enfin chaque case lue de gauche ` droite et de haut en bas. Dans notre exemple. nom auteur Flaubert Hugo Hugo . a e e qui varient suivant des ´chelles continues. il est n´cessaire de la discr´tiser. le catalogue (simplifi´) d’une bie e blioth`que peut avoir la forme du tableau de la figure 2. date parution 1857 1831 1862 . Par exemple. en param`tres discrets ne pouvant prendre e e 10 . Un son peut (tr`s sch´matiquement) se repr´senter par une e e e courbe exprimant son amplitude en fonction du temps. on peut aussi coder un tableau de donn´es discr`tes h´t´rog`nes (par e e e ee e exemple : dont certaines cases contiennent un nombre et d’autres cases un ou des caract`res).. pr´cis´ment. la nature de la donn´e qu’elle contient. mais l’oreille e humaine n’est pas sensible ` toutes les «harmoniques» qu’il contient. On va e e en fait montrer comment un son. peut se ramener ` a une suite de nombres.. comme sur la figure 2. il suffit de le signaler e par un bit suppl´mentaire (valant 0 pour «caract`re» et 1 pour «nombre») associ´ e e e ` chaque case.4 – d´but d’un catalogue simplifi´ de biblioth`que e e e 2. Par exemple.

avec une fr´quence a e d’´chantillonnage de 1 unit´ par seconde et en n’acceptant que des valeurs enti`res e e e pour l’amplitude. 3. 11.5 – courbe sonore continue qu’un nombre fix´ de valeurs distinctes.Fig. c’est-`-dire ` diviser par deux la largeur de chaque morceau) . On peut d´composer ce processus en deux e e ´tapes : e – on discr´tise le temps. mais en prenant une fr´quence e e d’´chantillonnage tr`s grande et un codage des nombres permettant une grande e e pr´cision pour les r´els. on prend le nombre qui permet de «s’approcher le plus possible» de la courbe r´elle. 11. doubler e e e la fr´quence d’´chantillonnage revient ` multiplier par deux le nombre de more e a ceaux d´coup´s. A condition de connaˆ la fr´quence d’´chantillonnage. Dans notre exemple. 11. on obtient la nouvelle courbe de la figure 2. ces valeurs suca cessives sont approximativement : 4. par exemple. Pour coder cette courbe. en proc´dant ` un ´chantillonnage : le e e a e temps est «d´coup´ en morceaux» ` intervalles r´guliers. il suffit maintenant de coder successivement les valeurs correspondant ` chaque morceau de temps. et donc ` reconstituer les variations du son initial. Dans un CD-audio haute fid´lit´. e e a a – on discr´tise l’amplitude en approchant la courbe par un nombre : pour chaque e intervalle de temps. la courbe discr`te suit de si pr`s la courbe r´elle que le e e e e e son y est parfaitement retranscrit. 7.5. en abscisse. la donn´e de ces nombres suffit ` reconsıtre e e e a truire la courbe discr´tis´e. e e a Sur notre exemple.6. 2. e e 11 . 12. On appelle fr´quence e e a e e d’´chantillonnage le nombre d’intervalles d´coup´s par seconde (ainsi. e En appliquant ce traitement ` la courbe de la figure 2. 2 6. l’approximation semble grossi`re. 7.

a a 12 . 2. de la «discr´tiser». a 1.. Le nombre e e e de bits occup´s par un CD-audio usuel (non cod´ en MP3) est d’environ 500 Mega e e octets.6 – courbe sonore discr´tis´e e e la fr´quence d’´chantillonnage est de 44 100 ´chantillons par seconde. chacun ´tant adapt´ ` un type d’image e e a particulier et ` un usage particulier. Son principe est celui du quadrillage : l’image est d´coup´e ` trae e a vers une grille au maillage plus ou moins fin. et donc que les pixels sont petits. 2. dans un ordre fix´ e e ` l’avance (par exemple de haut en bas et de gauche ` droite). e e a et de coder les couleurs des pixels les unes apr`s les autres.Fig. Le codage «bit map» Ce codage est utilis´ pour num´riser des images existantes (photos.). Cette d´finition est d’autant plus grande que la e e grille est fine.7 Codage des images Il y a plusieurs mani`res de coder une image. Pour coder une image ainsi d´coup´e. reproduce e tions de peintures.. il suffit maintenant d’associer ` chaque pixel sa couleur dominante. On appelle e d´finition d’une image num´rique le nombre de pixels qu’elle contient par e e unit´ d’espace. suivant des lignes horizontales et verticales. donc par cm2 . Cette grille d´coupe donc l’image en petits ´l´ments rectangulaires e ee appel´s «pixels» (par contraction de l’anglais picture element). On distingue e e principalement deux formats de codage. Il est donc plutˆt adapt´ ` l’analyse et au traitement o ea des images.

. donc il y a bien 16 e millions de couleurs diff´rentes qui peuvent ˆtre cod´es par ce syst`me). utilise la d´composition des couleurs ` l’aide des 3 couleurs e a primaires (rouge.. et un code arbitraire sur un e e octet est associ´ ` chacune des nuances (rappel : 1 octet = 8 bits et permet ea donc de coder 28 = 256 couleurs diff´rentes possibles) e – le codage en 16 millions de couleurs : ce codage. vert et bleu).7 montre la mˆme image bit map ` deux e a ´chelles diff´rentes. Il est particuli`rement a e e bien adapt´ aux images qui se pr´sentent sous la forme de sch´mas ou de plans. 13 . e Green. suivant que l’image ` cr´er doit ˆtre vue en 2 ou a e e en 3 dimensions. le deuxi`me la contribution du vert et le a e 8∗3 troisi`me celle du bleu (or 2 vaut environ 16 millions. il faut pr´ciser la d´finition e a e e de l’image et le codage des couleurs souhait´ . 2. comme pour les ´crans de t´l´vision. suivant une association arbitraire (par exemple : 0 pour blanc et 1 pour noir) .. Le codage vectoriel Ce codage sert principalement ` la synth`se d’images. – le codage en 256 couleurs (ou 256 niveaux de gris) : le spectre des couleurs (ou des niveaux de gris) est d´coup´ en 256. Le codage d’une e e image «bit map» ` haute d´finition et ` l’aide de couleurs fines n´cessite un a e a e grand nombre de bits. Dans ce cas.. pour illustrer l’importance de la d´finition dans l’imprese e e sion globale rendue par une telle image. e e e Il y en a plusieurs variantes. aussi appel´ RGB (pour Red. La contribution de chaque couleur primaire ` la d´finition d’une a e certaine couleur est alors cod´e sur 1 octet. Blue). ces 2 param`tres conditionnent e e fortement l’espace m´moire n´cessaire au codage de l’image.7 – images bits map 2. le premier octet code la contribution du rouge ` la couleur du pixel. ce qui n´cessite donc 3 octets e e pour coder chaque pixel. e Fig. Les images bit map sont souvent ce qui occupe le plus de place dans la m´moire des ordinateurs.Les codages des couleurs les plus courants sont les suivants : – le codage en noir et blanc pur : un bit suffit alors pour coder un pixel. Rape ee pelons qu’additionner des faisceaux lumineux tend ` les ´claircir (puisque le a e blanc est la somme de toutes les couleurs) . La figure 2. e e e e Lorsqu’on num´rise une image ` l’aide d’un scanner. les r`gles d’addition des rayons e lumineux ne sont donc pas les mˆmes que celles des additions des couches de e peinture.

Dans ce code. le premier groupe de 3 bit est le code de la figure ellipse. qui sont 14 . sans tenir compte des couleurs.8 – dessin vectoriel Les coordonn´es (suppos´es enti`res) des points extrˆmes peuvent aussi ˆtre e e e e e cod´es sur 3 bits. Par ailleurs..– images en 2D Le codage vectoriel en 2D consid`re qu’une image est une combinaison de e figures g´om´triques standards : ellipses. e – son ´ventuelle couleur de trait et de remplissage (rep´r´e comme pour les e ee images bit map). e e – les coordonn´es (X. Y) de deux points extrˆmes qui permettent de le e e situer sans ambigu¨ e dans l’espace (pour un rectangle : son coin sup´rieur ıt´ e gauche et son coin inf´rieur droit) . Imaginons par exemple que les codes des figures standards soient les suivants : – ellipse : 000 . Contentons-nous ici de dessins «au crayon». rectangles. fl`ches. – rectangle : 001 . Chaque figure ´l´mentaire est alors repr´sent´e par 5 e ee e e groupes de 3 bits chacun. – ligne continue : 010 . Pour rep´rer e e e e une figure particuli`re dans un dessin. d´sign´es habituellement par X et Y. droites.8 est cod´e e par : 000 001 100 101 001. l’espace du dessin est rep´r´ par un syst`me de ee e coordonn´es classiques.. Un e e e code arbitraire peut ˆtre associ´ ` chacune de ces figures (il y en a un e e a nombre fini). 2. les deux suivants codent les nombres 1 et 4. Fig. Par exemple... il suffit de connaˆ : e ıtre – sa nature (par exemple : un rectangle) d´termin´e par son code .8. l’ellipse de la figure 2. et que l’on veuille coder le dessin de la figure 2.

et leur codage num´rique ne pose donc pas de probl`me. e e parall´l´pip`des. l’ordre de superposition de ces figures. e e e a On parle aussi de codage num´rique (0 et 1 sont des nombres). dans lequel on peut ´num´rer chaque entit´ e e e e e distincte les unes apr`s les autres s’oppose au monde du continu.. etc. nous l’avons vu.les coordonn´es (X.Y) du point qui circonscrit cette ellipse en haut ` gauche. de r´alit´ virtuelle. Math´matiquement. e a les deux derniers codent les nombres 5 et 1 qui sont les coordonn´es (X. Le dessin complet se code par a la succession des codes des figures ´l´mentaires (dans un ordre quelconque) ee qui le composent. mais permet a ensuite des applications spectaculaires en simulant les int´ractions op´rant e e dans cet environnement. il est continu s’il peut ˆtre mis en bijection avec e l’ensemble des nombres r´els R. ou pour les effets sp´ciaux num´riques dans e e e e les films.. quand il s’agit de traiter des donn´es de nature discr`te ` l’aide d’un autre e e a 15 . ee e e e e C’est lui qui est utilis´ dans les logiciels de CAO (Conception Assist´ par e e Ordinateur).. c’est-`-dire ´num´rer tous ses ´l´ments les uns apr`s les a e e ee e autres sans en oublier aucun. Les caract`res alphanum´riques et les nombres entiers appartiennent naturellee e ment au monde du discret.) au lieu d’ˆtre des figures de la g´om´trie plane. devraient ee ˆtre ajout´s ` cette suite. contrairement ` N. Le monde du discret. Une autre mani`re de caract´riser les donn´es discr`tes e e e e est pr´cis´ment leur caract`re codable ` l’aide d’un alphabet fini (par exemple 0/1). e e e homoth´ties. cylindres. et c’est aussi la raison pour laquelle il e e e est utilis´ pour cr´er des animations sur Internet avec la technologie «Flash». e e a Le codage vectoriel 2D est celui qui est exploit´ par les logiciels de dese sin usuels comme PaintBrush.. Il n´cessite un effort de mod´lisation consid´rable pour repr´senter e e e e un environnement complet uniquement ` partir de primitives. qu’il ne code que les nombres. e e 2. Plus la mod´lisation est fine. et il permet de faire subir simplement les transformations g´om´triques classiques (translations.. Dans R. sym´tries. mais cela ne signifie e pas. e e En effet. e e – images en 3D Le principe de ce codage est exactement le mˆme que le pr´c´dent. soit par exemple : 000 001 100 101 001 001 011 101 111 010 010 010 101 101 000 ← code de l’ellipse → ← code du rectangle → ← code de la ligne→ D’autres codes repr´sentant la couleur de trait et de remplissage de chaque e figure ´l´mentaires. sauf e e e que les primitives graphiques utilis´es sont des volumes (sph`res.. un ensemble est discret s’il peut ˆtre mis en e e bijection avec N ou une partie de N. e a on ne peut pas “compter”. les donn´es manipul´es par les ordinateurs sont exclusivement des e e e e donn´es discr`tes.8 Codage num´rique et codage analogique e En r´sum´. rotations. plus la capacit´ de e e m´moire et de calcul n´cessaire est importante.) aux images.Y) e du point qui la circonscrit en bas ` droite. ou un de ses intervalles. e Il est tr`s ´conome en espace m´moire. dans lequel ce e n’est pas possible.

transmet des donn´es continues). Les anciennes cassettes vid´o reproduisaient ainsi. n’a droit qu’aux symboles 0 et 1. les nombres r´els. Les photographies “argentiques” e sont r´alis´es ` l’aide d’une surface (quasi) continue de produit chimique r´actif qui e e a e restitue le continuum de nuances du spectre des couleurs. Par ailleurs. transforment des images quelconques (textes ou e photos) en suites de bits codant ces images sous forme «bit map». C’est pourquoi jusqu’` l’´mergence de l’informatique multim´dia. Pour coder num´riquement e e des donn´es continues. e Le codage num´rique. ee e Il sont donc indispensables pour relier les ordinateurs entre eux en passant par le r´seau t´l´phonique fran¸ais (qui. et la d´finition des e e a e photographies num´riques s’approche ` grands pas de la pr´cision des photograe a e phies traditionnelles. c’est-`-dire qu’il pr´serve toute l’ine a e formation. La radio FM et la t´l´vision hertzienne actuelles sont encore transee mises ` l’aide d’ondes continues dont les variations (les «modulations») traduisent a suivant une ´chelle continue les variations du son. il peut parfois ˆtre n´cessaire de passer d’un mode de codage ` c e e e a un autre. a e e leur codage passait plutˆt par un mode analogique : un tel code traduit des donn´es o e continues ` l’aide d’un autre dispositif lui aussi continu. le codage/d´codage est exact. Les plus e courants de ces dispositifs sont les suivants : – les modems (contraction de «modulateur»/«d´modulateur») sont des appae reils qui transforment des donn´es discr`tes sous forme de bits en donn´es e e e analogiques pouvant circuler sur les lignes t´l´phoniques (et r´ciproquement).9 Codages/d´codages et changements de codes e L’´change de donn´es entre mat´riels fonctionnant sous un mode num´rique e e e e ou analogique impose parfois de passer par des phases de num´risation. 2. En revanche.dispositif discret. cod´s e e e e de fa¸on sp´cifiques. une par une. C’est pourquoi e ee on peut ` la fois t´l´phoner et envoyer/recevoir des donn´es en passant pas la a ee e mˆme ligne t´l´phonique avec ces boˆ e ee ıtiers. lui. livebox et a e autres) en sont les versions am´lior´es. les images d’un film sur leur bande. il faut donc passer par une phase de discr´tisation ou num´risation. Les e ee c e boˆ ıtiers fournis pour se connecter ` l’Internet haut d´bit (freebox. les diff´rents types de donn´es ´tant. La qualit´ du son des CD-audio est e n´anmoins sup´rieure ` celle des anciens disques «33 tours». L’ADSL est en effet simplement une e e technologie qui emploie pour transmettre ses donn´es des fr´quences non utie e lis´es par la voie humaine dans les conversations t´l´phoniques. C’est ce que r´alisent des logiciels comme : e – les Optical Character Recognizer (OCR) sont des programmes qui transforment les images sous forme «bit map» d’un texte en une suite de caract`res ASCII. les sons et les images appartiennent au e monde du continu. e e e Ils sont indispensables si on veut «traiter» avec un ´diteur ou un traitement e 16 . le son ´tait cod´ et restitu´ grˆce e e e a ` un sillon continu. e Il peuvent aussi reconnaˆ la mise en page du texte et la traduire dans les ıtre codes sp´cifiques utilis´s pour les repr´senter dans les traitements de textes. comme nous l’avons vu. – les scanners ou num´riseurs. dans les anciens a disques en vinyle et les anciennes cassettes audio. dont la forme reproduisait (par une relation «d’analogie») la a courbe des sons. lui. Par exemple. e e e qui se paie par une part d’approximation.

a ıtre e est indispensable pour savoir comment interpr´ter la suite de 0/1 qui la code. ` l’issue de ce passage en revue de tous les codages utilis´s a e en informatique. e e e Les logiciels de compression de donn´es ont pour objectif de r´duire au maximum e e l’espace m´moire occup´ par le codage d’un certain type de donn´es.. e e Les physiciens ont tendance ` ´crire et ` manipuler des ´quations dont les variables ae a e parcourent un espace continu et dont les fonctions sont aussi continues. Pour le codage d’une sc`ne c e vid´o (correspondant ` une succession d’images «bit map»). et donc e e des codages. e Enfin. entre deux ´tats possibles de n’importe ee e quel dispositif permet une combinatoire suffisante pour apparemment tout «coder». le math´maticien allemand d’origine russe Georg Cantor e e a d´montr´ que l’ensemble infini (et discret) des nombres entiers N est fondamene e talement moins «puissant» que l’ensemble infini (et continu) des nombres r´els R. e e e a 17 .. par rapport auquel ils d´rivent souvent les autres fonctions.4) issu de la num´risation d’un texte ´crit. Notre monde physique. Pour eux. la notion de «particule ´l´mentaire» laisse penser ` ee a une nature discr`te des ´l´ments constituant l’univers. la puissance du monde num´rique : elle vient de la capacit´ ` stocker e ea et ` ´changer des informations de nature tr`s vari´es sur un seul support. est-il discret ou continu ? La r´ponse n’a rien d’´vident. De mani`re g´n´rale. 2. au sens o` ils n´cessitent e u e de r´server un plus ou moins grand nombre de bits pour coder une mˆme donn´e. Les strat´gies e e e e qu’ils mettent en oeuvre varient ´videmment suivant la nature des donn´es. e e – les vectoriseurs d’images transforment les dessins sous forme «bit map» en images vectorielles. le discret est plutˆt con¸u comme une approxiee o c mation du continu. sous forme ae e e de bits. certains codages sont plus ´conomiques que d’autres. abstraite. des caract`res et des nombres) accorde un rˆle prie e o mordial ` la notion de typage ou de format. en effet. Pourtant. Ils sont utilis´s pour traiter des plans techniques ou des e dessins d’architectes. qu’ils ont ` traiter. Le temps. cette strat´gie a rendu possible l’apparition du multim´dia (qui e e e e associe textes. e c’est-`-dire qu’il est impossible de d´finir une bijection entre ces deux ensembles. La distinction ´l´mentaire.de textes un fichier (2. puis seulement la diff´rence entre chaque e e e image et la pr´c´dente. Loin d’ˆtre limit´e. lui. sons et images) dans les CD-Rom ou l’Internet et donn´ naissance e aux «autoroutes de l’information». on peut commencer par coder de fa¸on vectorielle les espaces blancs de la page. e e On comprend mieux. Mais la physique quantique a e ee aussi d´couvert que particules (discr`tes) et ondes (continues) ne sont que les deux e e aspects d’une mˆme r´alit´. est ainsi g´n´ralement e e e consid´r´ comme continu. pour compresser l’image «bit map» d’un texte. Il a e existe en quelque sorte plusieurs niveaux d’infinis. e a e e Par exemple. tout logiciel qui permet de manipuler des donn´es de nae e e e tures diff´rentes (par exemple. ce qui ne contribue pas ` simplifier les choses. on peut se contenter e a de coder compl`tement la premi`re image. Connaˆ le type d’une donn´e. et suivant que la compression vis´e est exacte ou a e approch´e (c’est-`-dire si elle pr´serve ou non toute l’information pr´sente ou pas).10 En guise de conclusion : le monde est-il discret ou continu ? A la fin du si`cle dernier.

a sign´ l’acte de naissance de l’informatique. e e e e Par ailleurs. etc.. c’est sans doute que le codage num´rique e e a de meilleures propri´t´s que le codage analogique. ene e ee tiers ou d´cimaux. images. etc. C et G. e ee Ces deux domaines sont ceux qui permettent la transmission d’information (g´n´tiques e e ou culturelles) d’une g´n´ration ` une autre. un peu plus difficile : comment savoir si un certain e nombre entier n (n’importe lequel) est un nombre premier. et fut utilis´e e e e e e par Leibniz au XVII`me si`cle.1) donne quelques ´l´ments pour comprendre comment la transmission e ee de donn´es discr`tes peut ˆtre rendue robuste par des m´canismes d’auto-correction. c’est-`-dire s’il n’admet a 18 . Nous avons montr´ come e e ment l’on pouvait ramener la diversit´ des donn´es ` des composants ´l´mentaires. e – les langues humaines : elles sont toutes constitu´es. c’est une m´thode syst´matique e e e d´finie ´tape par ´tape et permettant de r´soudre ` coup sˆr et en un nombre fini e e e e a u d’´tapes une certaine classe de probl`mes ou de r´pondre ` une certaine classe de e e e a questions..) sur 2 nombres. en revanche. ou encore de proc´dure de calcul ou d’algorithme (par e la suite. L’enseignement des math´matiques e e passe d’ailleurs par l’apprentissage de nombreux algorithmes : par exemple. comment r´aliser une op´ration ´l´mentaire (addition. les mots. L’exercice 1 (´nonc´ en 1.. Ce qui..1.. e a ee 3. ce n’est ´videmment pas un hasard si l’informatique est de plus en e plus utilis´ pour aider l’expertise humaine dans ces domaines. ces termes seront utilis´s comme des synonymes).1 Pr´histoire des algorithmes e Qu’est-ce qu’un algorithme ? En premi`re approximation. e 3 Traitements effectifs La repr´sentation binaire des nombres ´tait connue bien avant l’apparition des e e ordinateurs . C’est donc un codage discret en base 4 . qui permet de d´crire ce e e que r´alise un ordinateur sur les donn´es qu’on lui fournit. Evidemment.. e e e Partons du probl`me suivant. comment r´soudre une ´quation. De e u e e telles m´thodes ont ´t´ d´couvertes bien avant l’apparition de l’informatique et sont e ee e connues depuis longtemps par les math´maticiens. multiplication. T.Il y a pourtant au moins deux domaines naturels fondamentaux dans lesquels le mode num´rique a pr´valu sur le mode analogique : e e – le code g´n´tique : le patrimoine g´n´tique de tous les ˆtres vivants est cod´ e e e e e e non pas ` l’aide de 0/1 mais sur l’alphabet ` quatre lettres des bases chimiques a a not´es A. le codage num´rique des autres types e e e de donn´es (caract`res. Si la nature a s´lectionn´ des m´canismes e e a e e e discrets pour r´aliser cette transmission. ` chacun de leur niveaux e a (les sons ´l´mentaires utilis´s par une langue donn´e ou phon`mes. puisque le codage peut e y ˆtre exact. ee e e e les r`gles de grammaires. Chacune de ces caract´ristiques va bien sˆ r devoir ˆtre explicit´e. c’est l’explicitation de la noe tion de traitement effectif. e e a ee Nous allons maintenant voir que l’on peut aussi ramener la vari´t´ des traitements ee r´alisables par les ordinateurs ` une combinatoire de traitements ´l´mentaires.) ne s’est g´n´ralis´ que r´cemment. sons. mais les e e e e e e principes qu’il met en oeuvre ne sont pas fondamentalement difficiles. elle fut invent´e d`s le XVI`me si`cle par Francis Bacon. d’une combinatoire d’´l´ments discrets. ee e e corrig´ en 2.).

e – de fonctionner quel que soit le nombre entier n de d´part : elle r´pond bien e e ` une classe de questions (comme «un nombre entier quelconque est-il prea mier ?») et non ` une question particuli`re (comme «le nombre 31457 est-il a e premier ?») . on peut adopter la strat´gie e e suivante : – essayer de diviser n par 2 : ⇒ si la division est juste (le reste est nul). mais elle assure : e e – de toujours savoir ce qu’il faut faire pour obtenir la r´ponse . alors n est divisible par 3 : n n’est pas premier – . essayer de diviser n par 3 : ⇒ si la division est juste (le reste est nul).. (essayer tous les nombres jusqu’` n − 1) : a ⇒ si au moins une division est juste : n n’est pas premier ⇒ si aucune division n’est juste : n est premier Cette strat´gie est tr`s ´l´mentaire (il en existe de bien plus efficaces : par e e ee √ exemple. c’est la fonction f qui ` chaque nombre entier associe a la r´ponse «oui» ou «non» suivant que ce nombre est premier ou non.. appel´ «algorithme d’Euclide» et datant environ de 300 e avant J... On peut e coder cette r´ponse par 0 ou 1 (0 signifie «non». tandis que la r´ponse finale est la donn´e de sortie de e e e e l’algorithme. Le nombre n ` e a tester est la donn´e d’entr´e. on peut s’arrˆter quand on d´passe n). 1 signifie «oui»)..aucun autre diviseurs que lui-mˆme et 1 ? Pour le savoir. de tests (v´rifier si le reste de ee e cette division est nul ou non) et d’une structure d´finie par la fa¸on et l’ordre dans e c lesquels il s’enchaˆ ınent. – de demander un nombre fini de calculs (qui d´pendra n´anmoins du nombre n e e que l’on teste) et de donner toujours une r´ponse correcte. Un des plus anciens algorithmes int´ressants connus (l´g`rement plus compliqu´ e e e e que celui de l’exemple). alors n est divisible par 2 : n n’est pas premier – sinon. essayer de diviser n par. math´maticien e e ee a e persan du IX`me si`cle. On peut donc repr´senter cette fonction ainsi : e f : N −→ {0.C. e Un algorithme peut aussi ˆtre vu comme la r´alisation concr`te d’une certaine e e e fonction : dans notre exemple. connu pour ˆtre l’auteur en 825 d’un trait´ d’arithm´tique o` e e e e e u il transmettait aux arabes des algorithmes de calculs connus des indiens et utilisant la num´rotation de position. qu’elle soit positive e ou n´gative. permet de r´pondre ` la classe de questions suivante : comment savoir si e a deux nombres entiers quelconques sont premiers entre eux (c’est-`-dire s’ils ont un a diviseur commun) ? Le mot «algorithme». 1} n −→ f (n) Notre exemple illustre aussi qu’un algorithme est d´fini ` l’aide d’instructions e a ´l´mentaires (comme de savoir faire une division). a ´t´ cr´´ ` partir du nom de Al Khowarizmi. lui. e 19 .

Pour faire e e e honneur ` la date de la conf´rence. Il serait bon aussi qu’elle soit e d´cidable. de son «programme». A cette ´poque. e Example 3 Quelques exemples d’equations diophantiennes : chercher les valeurs enti`res de x telles que : 3x2 − 5x + 1 = 0 e chercher les valeurs enti`res de x et y telles que : 6xy 2 − y + 7x = 0 e Dans certains cas particuliers (comme dans le premier exemple). en proposant une liste de probl`mes fondamentaux qui. Cette ann´e-l`. Mais pour lui e e e e faire jouer un tel rˆle. la logique est un langage permettant d’exprimer e des ´nonc´s math´matiques et de d´montrer qu’ils sont vrais ou faux. mais dans la plupart des autres aucune m´thode g´n´rale. Sans entrer dans les d´tails. a c e Or les math´maticiens savent depuis longtemps d´montrer qu’une certaine strat´gie. Il n’est bien sˆ r pas question de tous les exposer ici. il esp`re fonder les math´matiques e e e (qui ont travers´ au d´but du XX`me si`cle une «crise des fondements» due ` la e e e e a d´couverte de paradoxes dans certaines th´ories) ` l’aide de la logique. Hilbert. on sait r´soudre e le probl`me. n’est connu et on commence ` soup¸onner qu’il n’en existe peut-ˆtre pas. il faut s’assurer qu’elle-mˆme est «bien fond´e». e Ainsi en 1928. a e a lieu ` Paris le grand congr`s de la soci´t´ des math´maticiens.2 Les probl`mes de Hilbert e L’histoire contemporaine des algorithmes commence en 1900. de nouveau invit´ au congr`s des math´maticiens a e e e (qui a lieu tous les quatre ans jusqu’` aujourd’hui). e e e une certaine m´thode de calcul qu’ils ont invent´e est juste et aboutira toujours au e e r´sultat souhait´. mais comment d´montrer qu’il n’en existe aucune pour r´pondre e e e e ` un probl`me donn´ ? Comment ˆtre sˆ r d’avoir test´ toutes les m´thodes possibles a e e e u e e si on ne fait pas de cette notion de «m´thode» elle-mˆme un objet math´matique e e e sur lequel il sera possible de faire des raisonnements et des d´monstrations ? C’est e l’enjeu de la formalisation de la notion d’algorithme. et il s’´nonce de la e e e e fa¸on suivante : «Existe-t-il une m´thode pour r´soudre n’importe quelle ´quation c e e e diophantienne ?». Mais la n´cessit´ de lui e e donner un contenu. c’est-`-dire qu’il existe une proc´dure effective permettant de savoir si une e a e 20 . e a e e 3. pr´cise les objectifs de sa rea e cherche. vont e dominer les math´matiques du XX`me si`cle : ce sont les d´sormais c´l`bres «23 e e e e ee probl`mes de Hilbert». tr`s grand math´maticien allemand de l’´poque. aucun algoe e e e rithme. une d´finition math´matique pr´cise n’a ´merg´ que tr`s tardie e e e e e vement. e a Celui qui nous int´resse particuli`rement porte le num´ro 10. ` Bologne. alors en plein e e a essor. c’est-`-dire o e e a qu’elle est consistante (elle ne permet pas d’aboutir ` des contradictions) et compl`te a e (toute formule logique doit ˆtre soit vraie soit fausse). qui va se pr´ciser au fil des ans. Une ´quation diophantienne s’exprime sous la forme d’un poe lynˆme dont les coefficients sont des nombres entiers et dont on cherche les racines o enti`res. il choisit de se livrer a l’exercice p´rilleux de la a e ` e prospective. L’invit´ d’honneur a e ee e e y est David Hilbert. selon lui.La notion d’algorithme existe donc depuis longtemps. mais e u il suffit de savoir qu’ils ont effectivement recens´ une bonne partie des recherches e math´matiques ` venir. pour r´pondre ` des interrogations plus g´n´rales.

soit le symbole 1. e e Malheureusement pour Hilbert. et que sa consistance est ind´montrable. la tˆte se trouvait en train de lire la e e e e 21 ↑ . en g´n´ral e e e e en l’´crivant sur une feuille de papier.. soit rester vide (caract`re not´ B e e pour «blanc». C’est un jeune et brillant ´tudiant en math´matiques e e ` Cambridge. a 3. et servant ` s´parer les diff´rentes donn´es). Pour introduire cette d´finition de fa¸on intuitive. n´gative. le logicien autrichien Kurt G¨del d´montre en o e 1929 et surtout 1931 dans un article devenu tr`s c´l`bre que si la logique ´l´mentaire e ee ee est effectivement compl`te. c’est ce que Hilbert appelle e le «Entcheidungsproblem» ou «probl`me de la d´cision». Pour y parvenir. La «machine de e Turing» est le mod`le de base qui fonde l’informatique. et lui-mˆme est fascin´ par la capacit´ humaine de raisonner et a e e e de faire des calculs. tout langage assez puissant pour fonder l’arithm´tique e e est. lui. C’est ce qu’est parvenu ` faire Alan Turing. nous allons donc d´tailler sa e e construction et son fonctionnement. il a en effet fallu d´finir e e pr´cis´ment ce qu’est une proc´dure effective et montrer qu’aucune d’entre elles ne e e e peut r´soudre ce probl`me. en recensant tout ce qui est n´cessaire ee e ` son ex´cution. a Dans son article de 1936. en Angleterre. L’acc`s ` ces donn´es se fait par le biais d’une tˆte de lecture/´criture qui a le e a e e e droit de parcourir le ruban case par case. il propose tout d’abord de formaliser la notion d’algorithme grˆce ` la d´finition d’un dispositif abstrait que depuis on appelle «machine a a e de Turing». Nous la notons par une fl`che sous la case du ruban qui est e e en train d’ˆtre lue (dans le dessin pr´c´dent. Les donn´es de notre a e e e e multiplication peuvent ainsi ˆtre «pos´es» de la fa¸on suivante : e e c 1 1 0 0 1 B 1 1 0 1 B B B B. il cherchera ` construire un «cerveau artificiel».formule logique donn´e quelconque est vraie ou fausse . essayons de d´composer un cale c e cul en «atomes» le plus ´l´mentaires possible. Alan Turing a 24 ans. un peu comme dans un magn´tophone e ou un magn´toscope. Il montre ensuite qu’aucun de ces dispositifs ne sera jamais capable de d´cider si une formule logique quelconque est vraie ou fausse. auteur de e e a l’article qui met fin ` l’Entcheidungsproblem. il faut d’abord «poser le calcul». Son professeur de logique a assist´ ` la conf´rence de a ea e Hilbert ` Bologne. De combien de papier a-t-on besoin ? On e se restreint ` des op´rations portant uniquement sur des donn´es discr`tes.. Soit par exemple une multiplication e entre deux nombres entiers : 25 ∗ 13. n´cessairement incomplet. Pour r´aliser une telle op´ration. Le «proe e gramme de Hilbert» est plutˆt mal parti. qu’en 1936. Par a e e e d´finition. qui ne o e e trouvera sa solution. Reste le probl`me de la d´cision. L’objectif est de construire la machine la plus simple possible caa e pable de r´aliser n’importe lequel de ces calculs. Plus tard. elles peuvent donc ˆtre cod´es ` l’aide d’un alphabet fini : 0 et 1 par e e e a exemple ! Les deux dimensions de la feuille de papier ne sont pas fondamentales : il suffit donc de disposer d’un ruban de papier s´par´ en cases. chaque case pouvant e e contenir soit le symbole 0.3 La machine de Turing En 1936.

chaque instruction ´l´mentaire revient e ee simplement ` substituer certains symboles ` d’autres sur le ruban. Chaque ´tape du calcul revient ` ´crire de nouveaux chiffres sur e ae la feuille blanche en consultant (mentalement ou mat´riellement) une table de mule tiplication ou une table d’addition. au e e moins deux phases successives sont n´cessaires : e – une phase de multiplications ´l´mentaires entre chiffres : 3 ∗ 5 puis 3 ∗ 2 puis ee 1 ∗ 5 puis 1 ∗ 2 . ` l’infini. De mˆme. nous devons passer par plusieurs e e phases. A chaque instant un et un seul de ces ´tat est «actif» et on e l’appelle «´tat courant» : c’est celui dans lequel se trouve la machine ` cet instant-l`. Pour une configuration donn´e. c’est-`-dire : e a – le contenu de la case du ruban lue par la tˆte de lecture . ee e e e De mˆme. des cases not´es B). e e a e Pour comprendre le fonctionnement d’une telle machine. pour r´aliser notre multiplication. ´tat : 2). Ainsi. En effet. une machine de Turing disposera d’un ensemble fini d’´tats distincts. e a a La machine peut passer de n’importe quel ´tat ` n’importe quel autre ` chaque ´tape e a a e du calcul. suivant l’´tape de calcul dans laquelle on se e trouve. R´aliser un calcul avec un tel dispositif e e consiste. Chae e e e e cune suppose en quelque sorte un ´tat d’esprit diff´rent. pour aboutir ` de nouvelles donn´es. e e e e e On appelle configuration d’une machine de Turing l’ensemble constitu´ par le e symbole du ruban sur lequel pointe sa tˆte de lecture et l’´tat courant dans lequel e e elle se trouve. La machine donn´e en exemple jusqu’` pr´sent serait ainsi dans la e a e configuration : (symbole lu : 1. – une phase d’additions ´l´mentaires entre les r´sultats de la phase pr´c´dente. e 22 . a e Le deuxi`me composant fondamental d’une machine de Turing est la notion e d’´tat. Il signifie l’arrˆt de son e a e fonctionnement. nous aurons besoin de poser d’autres donn´es core respondant ` des r´sultats interm´diaires. un ´tat particulier appel´ «´tat final» et not´ F correspondra ` e e e e a l’´tat dans lequel se trouve la machine ` la fin de son calcul.premi`re case). e e eae e en consultant une table. plusieurs ´tapes au cours desquelles l’op´ration r´alis´e est diff´rente. e e que par la suite nous rep´rerons par des nombres dispos´s les uns ` la suite des e e a autres dans un tableau. Dans notre exemple. on doit toujours pouvoir disposer de cases libres sur le ruban : nous supposons donc que celui-ci est infini vers la droite (et contenant initialement. reprenons notre exemple de multiplication. si une machine a trois ´tats possibles (plus F) et se trouve e en ce moment dans l’´tat 2. De mˆme qu’on peut toujours disposer a e e e d’une nouvelle feuille de brouillon. dans une machine de Turing. en tenant compte a a des r´sultats interm´diaires qui y sont d´j` ´crits et de l’´tat courant de la machine. Enfin. a Pour la suite des calculs. fondamentalement. et s’arrˆte d`s qu’elle atteint l’´tat F. nous notons : e 1 2 3 F L’´tat courant est rep´r´ par un cercle. C’est l’´quivalent de la pointe du crayon avec lequel on ´crit quand e e e on effectue le calcul ` la main. ` enchaˆ a ıner des changements de configuration ` partir a des donn´es de d´part. La machine commence toujours en partant e ee de l’´tat initial not´ 1.

Dans notre tableau. celle e ae r´alisant la fonction suivante : e f : N −→ N n −→ n + 1 Notre machine de Turing doit donc ajouter 1 ` un nombre binaire quelconque. 1 1. G. et dont chaque e e e case contient 3 symboles correspondant aux 3 composantes de chaque instruction. e une instruction ´l´mentaire sera. en effet.4 Un exemple simple La machine ` multiplier les nombres (d´cimaux ou binaires) est malheureusea e ment trop compliqu´e ` ´crire. – le nouvel ´tat courant du calcul. D. Son tableau est le suivant : e e ´tat courant \ symbole lu e 1 2 0 0. tandis que l’´tat courant de la machine reste l’´tat 2. cette instruction est : 0. la deuxi`me composante est le d´placement minimal qui permet d’ene e chaˆ les instructions ´l´mentaires les unes apr`s les autres. la case qui se trouve ` l’intersection de la colonne not´e 1 et de a e la ligne not´e 2 contient l’instruction qui doit ˆtre ex´cut´e si la tˆte de lecture est e e e e e en face d’une case du ruban contenant le symbole 1 et que la machine se trouve dans l’´tat 2 (on note les ´tats en gras pour les distinguer des symboles ´crits sur e e e le ruban). 2 B B. puis ` d´placer cette tˆte d’une case vers la gauche sur le a a e e ruban. D. c’est-`-dire le r´sultat du e e a e calcul. e La premi`re et la troisi`me composante d´crivent la nouvelle configuration de e e e la machine.G. En r´sum´. F 1 1. Dans cette e machine. d´finie par 3 composantes : ee e – le symbole ´crit par la tˆte de lecture ` la place de celui qu’elle a lu . La donn´e de sortie de l’algorithme. e 3. 1 0. la tˆte de lecture mise sous la premi`re case du e e e e e ruban et l’´tat 1 fix´ comme ´tat courant. Chaque ´tape du calcul consiste a chere e e e ` cher dans le tableau l’instruction ` ex´cuter et ` l’effectuer. jusqu’` temps que l’´tat a e a a e courant soit l’´tat F.– l’´tat courant de la machine. e e a – le d´placement de la tˆte de lecture : soit une case vers la gauche (G) soit une e e case vers la droite (D) . D. D. infini dans les deux sens (le fait que le ruban soit infini dans e les deux sens est aussi choisi pour simplifier l’´criture de la machine). doit alors ˆtre lisible sur le ruban. La liste des instructions ıner ee e ´l´mentaires constituant un calcul complet peut donc bien figurer dans un tableau ee dont les deux param`tres d’entr´e sont le symbole lu et l’´tat courant. un calcul effectu´ par une telle machine commence une fois les e e e donn´es d’entr´e ´crites sur le ruban. 2 1. le r´sultat du calcul (le nombre initial + 1) va ˆtre ´crit ` la place de la e e e a donn´e de d´part sur le ruban. Nous en prenons une beaucoup plus simple ici. Ce code signifie que l’instruction consiste alors ` ´crire avec la tˆte de lecture/´criture le symbole 0 dans ae e e la case (` la place du 1). G. 2. e e 23 . a ´crit sur son ruban. F Par exemple.

B B 1 0 1 B B B B B B B B. 1.. en pla¸ant la tˆte de lecture sous c e la premi`re case de ce nombre et en fixant l’´tat courant ` 1. et on arrive ` : e a B... ↑ 1 2 F L’instruction suivante ` ex´cuter est : 0. B B 1 0 1 B B B B B B B B. e e Prenons l’exemple du nombre n = 5.. D.. le ruban contient le nombre 5. Et l’´tat courant est l’´tat 1 : e e 1 2 F ↑ L’instruction ` ex´cuter se lit ` l’intersection de la colonne 1 (symbole lu par la a e a tˆte de lecture) et de la ligne 1 (´tat courant) : c’est 1.. la nouvelle configuration de la e e machine ` l’issue de cette instruction est donc : a B... D. Le symbole 1 du ruban e e est recopi´. D.. ↑ 1 2 F Puis. 1.... B B 1 0 1 B B B B B B B B. et la seule modification ` effectuer est donc de d´placer la tˆte de lecture e a e e vers la droite (l’´tat courant restant aussi inchang´) . il faut de nouveau ex´cuter 1. le nouveau e e nombre ´crit sur le ruban doit ˆtre le nombre initial +1. puis en ex´cutant e e a e syst´matiquement les instructions de la table. qui donne lieu ` la situation : a e a B. et donc de l’addition suivante : 1 1 0 + 1 1 1 1 0 Example 4 Au d´but du calcul. ↑ 1 2 F En fait.. B B 1 0 1 B B B B B B B B.Pour v´rifier l’exactitude de cette table. Quand l’´tat F est atteint.. cod´ en binaire e e comme suit : B. cette premi`re s´rie d’instructions n’a fait que parcourir le nombre en e e le recopiant : cette ´tape ´tait n´cessaire au rep´rage de la fin du nombre (par o` e e e e u 24 . 1.. il suffit de la tester en ´crivant sur le e e ruban un nombre binaire (positif) quelconque..

. a e mais change l’´tat courant : e B. e Les instructions de la table peuvent aussi ˆtre repr´sent´es dans un graphe. les instructions de la machine pr´c´dente peuvent ´galement ˆtre repr´sent´es e e e e e e par le graphe de la figure 2.commence l’addition). ↑ 1 2 F L’´tat F ´tant atteint. La d´finition d’un tel e e changement requiert la donn´e de 5 informations : la configuration initiale (2 infore mations). e e – une instruction est figur´e par un arc reliant l’´tat de d´part de l’instruction e e e et l’´tat dans lequel elle m`ne. Le ruban contient la suite de symbole 110 e e e correspondant au nombre 6 en codage binaire.... qui est bien le r´sultat de l’op´ration e e 5 + 1. D. F. le calcul s’arrˆte. ↑ 1 2 F Il reste n´anmoins une retenue ` propager vers la gauche.. 2 r´alise l’addition du dere nier chiffre du nombre ´crit sur la ruban avec 1. C’est ce que r´alise e a e l’instruction : 1. qui ne modifie toujours pas le contenu du ruban..9. e – le symbole ´crit dans la case par la tˆte . G. ´tiquet´ par 3 symboles : e e e e – le symbole lu dans la case par la tˆte . B B 1 0 0 B B B B B B B B. c’este e e `-dire un sch´ma constitu´ d’´tats (repr´sent´s par des ronds) et d’arcs ´tiquet´s a e e e e e e e reliant ces ´tats avec les conventions suivantes : e – les ´tats du graphe correspondent aux ´tats possibles de la machine de Turing . e B.. qui m`ne ` la configuration finale : e a B. la d´finition d’une machine de Turing est e la donn´e d’un ensemble de changements de configuration. e l’instruction ` ex´cuter est B. Cette fois... 2. la tˆte de lecture pointe devant une case blanche . En fait. le r´sultat de e e e l’ex´cution des instructions du tableau am`nera ` ´crire ce nombre +1 sur le ruban : e e ae la machine de Turing r´alise donc bien une fonction. un algorithme. ↑ 1 2 F L’addition va pouvoir commencer : l’instruction 0. B B 1 0 1 B B B B B B B B. la configuration finale (2 informations) et le d´placement (` gauche ou ` e a a 25 . quel que soit le nombre ´crit au d´part sur le ruban.. e e – le d´placement de la tˆte. G. B B 1 1 0 B B B B B B B B. e e Ainsi. En fait...

puisqu’il transforme des donn´es figurant sur un ruban en de nouvelles donn´es. on a a se place devant le dernier chiffre du nombre . les informations en sont pas donn´es dans le mˆme ordre). – l’´tat 2 est celui dans lequel l’addition +1 s’effectue vraiment : e – si le nombre se termine par 0. 3. Elle r´alise donc bien ce qui ressemble ` notre premi`re e e a e 26 . cela signifie que l’on a atteint le d´but e du nombre en propageant la retenue vers la gauche. et qu’il suffit donc maintenant d’´crire cette retenue pour terminer le calcul en rejoignant l’´tat e e F.9 – graphe de la machine de Turing ` ajouter +1 a droite).5 La th`se de Church-Turing e Une machine de Turing est un dispositif tr`s rudimentaire qui r´alise une fonce e tion. Le tableau ou le graphe sont deux moyens possibles de repr´senter des ene sembles de changements de configuration (attention. 2. e – si on rencontre un symbole blanc B.Fig. et de terminer le calcul en rejoignant l’´tat F . e e elles aussi ´crites sur le ruban. a e – si le nombre se termine par 1. c’este `-dire quand on atteint la fin du nombre . et s’arrˆte e e e e quand elle atteint l’´tat F. e e Les ´tats de cette machine ont le sens suivant : e – l’´tat 1 est simplement la lecture et la recopie de gauche ` droite du nombre e a ´crit sur le ruban. en revenant une case ` gauche. alors le chiffre final devient 0 et il faut propager la retenue vers la gauche en restant dans l’´tat 2 . il suffit de transformer le 0 final en 1 pour ajouter 1 ` ce nombre. dans les 2 cas. La machine fonctionne ´tape par ´tape. on le quitte quand on rencontre le premier symbole B.

On comprend mieux. Le ruban ´tant par d´finition e e e infini vers la droite. la mˆme ann´e que Turing. et non un th´or`me e e e e e math´matique. tient lieu d’arguments a e en sa faveur. il ne peut donc e co¨ ıncider qu’avec celles des machines de Turing qui s’arrˆtent aussi toujours. ind´montrable puisque la notion d’algoe e e rithme. ` d´faut de preuves. ape e e pel´ le lambda-calcul (que nous ne d´taillerons pas ici). par nature. La paternit´ de cette th`se est partag´e entre Turing et Church. e e e en effet. maintee e nant. Nous verrons plus loin ce qui. s’est r´v´l´ ˆtre ´quivalent e e e ee e e ` celui des machines de Turing : toute m´thode de calcul pouvant ˆtre d´crite avec a e e e l’un peut l’ˆtre avec l’autre.d´finition des algorithmes. comment se convaincre de la validit´ de cette th`se ? Elle est maintenant e e largement admise et de nombreux arguments plaident en sa faveur : – arguments intuitifs : en parlant d’´tats d’esprit et en partant de l’exemple d’un e calcul simple (ce que Turing faisait d´j` dans son article). n’avait pas de d´finition math´matique pr´cise ` quoi on aurait e e e a pu comparer celle des machines de Turing.1 peuvent e e ˆtre exprim´s par une certaine machine de Turing. remarquons qu’il est facile de construire une machine de Turing qui ne s’arrˆte jamais. consiste ` ´crire 0 sur le ruban et ` d´placer la tˆte de e a e a e e lecture vers la droite (sans changer d’´tat courant). La th`se de Church-Turing pose donc en e fait une d´finition : elle introduit un nouvel objet math´matique (les machines de e e Turing) pour caract´riser formellement une notion intuitive ancienne (la notion d’ale gorithme). Alonzo Church. par e e exemple : – d’utiliser plus de symboles diff´rents sur le ruban (par exemple l’ensemble e des caract`res alphanum´riques) : mais nous avons vu qu’` l’aide de 0/1 on e e a pouvait coder n’importe quel alphabet discret . un algorithme s’arrˆte toujours. Mais Turing va plus loin. Elle signifie en partie culier que tous les traitements cit´s dans la derni`re colonne du tableau 2. de fa¸on g´n´rale personne n’a jamais pu exhiber une c e e proc´dure de calcul r´alisable par un esprit humain qu’une machine de Turing e e ne pourrait pas elle-mˆme r´aliser. ` l’aide d’une machine qui s’arrˆte toujours. Il affirme que tout algorithme e peut ˆtre d´crit de cette fa¸on. Tout d’abord. et il est possible d’´largir leur d´finition pour permettre. – de disposer d’un ruban infini dans les deux sens (ce que nous avons utilis´ e 27 . en 1936. Cette th`se est. Cette e e c a e affirmation est connue sous le nom de th`se de Church-Turing. a proe e e e pos´ un autre formalisme math´matique (extrˆmement diff´rent de celui de Turing) e e e e permettant ´galement de d´crire la notion de proc´dure effective. e Notons ensuite que c’est bien une th`se qui est ´nonc´e. Il est donc naturel de les associer. nous avons essay´ ea e de favoriser l’intuition . Or. l’ex´cution de cette machine sur un ruban contenant une donn´e e e quelconque ne finira jamais. ´tait un logicien am´ricain qui. qui «boucle ` l’infini» : il suffit par exemple que la seule e a instruction figurant dans le tableau. e e – argument de l’extension des machines de Turing : les machines de Turing sont rudimentaires. – de d´placer la tˆte de lecture plus librement en « sautant » par dessus les e e cases : mais en sautant case par case on peut aller aussi loin que l’on veut . Mais cette «th`se» demande quelques ee e justifications. ce qui fait l’int´rˆt de cette definition. quel que soit le contenu de la case lue et quel que soit l’´tat courant. avant elle. e Enfin. Ce formalisme.

Chaque case d’un tel tableau contient un triplet de donn´es e discr`tes. e – le code d’une certaine donn´e d . Tous se sont r´v´l´s avoir une puissance de calcul eae e e ee exactement ´quivalente ` celle des machines de Turing. sur n’importe quelle donn´e. Or. Ce code peut ` son tour ˆtre ´crit sur un ruban et donc e a e e servir de donn´e ` une autre machine.. dont on lui fournit la description. Si vous ˆtres capable de «faire fonctionner» sur du papier une machine e de Turing dont on vous fournit la description (sous la forme d’un tableau ou d’un 28 .dans l’exemple. pour qu’il soit le plus simple possible). Chaque machine particuli`re e repr´sente un algorithme particulier. d)=M(d). il en e e e existe certaines particuli`res qu’il a appel´es des Machines Universelles et que nous e e noterons U. sur une machine classique. il a ´t´ d´montr´ qu’elle ne permettait pas ee e e de r´aliser un calcul qui. e B ← code de M → ← code de d → B B B. e ee Elles permettent sans doute parfois d’aller plus vite et donc d’aboutir plus rapidement au r´sultat de l’algorithme. 2. nous avons vu qu’un tableau de e e e e donn´es peut ˆtre cod´ (cf. d´j` ´voqu´). une machine de Turing peut elle-mˆme ˆtre e e e e e cod´e par une suite de 0/1. aurait ´t´ impossible. o e Mais d´finir une machine de Turing. Une e a e e e machine de Turing est donc plutˆt une m´thode de calcul. e e Une machine universelle est donc en quelque sorte capable de simuler le comportement de n’importe quelle autre machine. un programme. servant ` r´soudre un probl`me pr´cis. de nombreux autres mod`les e de calcul ont ´t´ propos´s pour caract´riser la notion d’algorithme (comme le ee e e lambda-calcul. et mˆme de plusieurs e rubans en parall`le : mais un ruban infini vers la droite uniquement suffit e pour tout calcul . Une telle machine e e est ainsi capable d’ex´cuter n’importe quel algorithme. Ainsi. Le r´sultat de l’ex´cution de U sur ces donn´es est le mˆme que celui qu’on aurait e e e e obtenu en ex´cutant les instructions de M sur la donn´e d. e – argument des autres formalismes : depuis 1936. not´e M . l` encore..6 La notion de machine universelle Une machine de Turing n’est pas un ordinateur. e ee 3. qui tient donc toujours e a lieu de mod`le de r´f´rence. c’est ´quivalent ` d´finir le tableau d’instruce e a e tions de cette machine. on n’augmente pas e a fondamentalement la capacit´ de calcul. e Pour chacune de ces extensions. pourvu qu’on lui en donne e un code.5). sur leur e e ruban. qui est lui-mˆme une donn´e discr`te. Ainsi U(M. qu’on lui fournit ´galement par ailleurs. figure successivement : – le code d’une certaine machine de Turing. De telles machines sont caract´ris´es par le fait que quand. mais jamais d’aboutir ` un r´sultat e a e diff´rent. e a Turing a d´montr´ que parmi les machines qui portent d´sormais son nom. – de donner le choix entre plusieurs instructions possibles dans chaque case du tableau et en choisissant au hasard celle qui doit ˆtre ex´cut´e (on parle e e e alors de machine «non d´terministe») : mais.

De mˆme. abstraits. expos´ par Turing lui-mˆme dans son article fondae e teur. e c’est-`-dire des probl`mes qu’aucun algorithme se sera jamais capable de r´soudre. les ordinateurs actuels ont ´videmment une capacit´ de stockage finie. puisque chacune peut ˆtre cod´e par une suite de 0/1. l’id´e qu’il n’y a pas de diff´rence de nature entre une donn´e et une e e e instruction.. et donc de simuler.7 Ind´cidabilit´ e e Revenons un moment sur les probl`mes qui ont motiv´ la d´finition des machines e e e de Turing. En e particulier. quand on lui fournit le code d’une machine de Turing M et le code d’une donn´e d. tandis qu’un calcul concret n´cessitant quelques e e centaines d’ann´es doit ˆtre consid´r´ comme irr´alisable. d). on peut dire qu’un ordinateur est une machine universelle : quels que soient les donn´es et les programmes qu’on lui fournit. e e e Le tout premier d’entre eux. se retrouve dans e e la m´moire des ordinateurs actuels. il devient possible d’explorer le domaine de l’ind´cidable. maintenant que nous disposons d’une d´finition math´matique e e de ce qu’est un algorithme. qui contient indiff´remment des donn´es et des e e e programmes. mais aucune borne n’est fix´e. alors la machine universelle e e s’arrˆtera aussi sur (M. c’est que vous e e ˆtes devenu vous-mˆme une machine universelle ! e e Cette notion est essentielle car elle est au fondement aussi bien du cˆt´ mat´riel oe e que du cˆt´ logiciel de l’informatique. n’importe quelle machine de Turing. Ainsi. dont e e e les r´alisations mat´rielles ou logicielles ne sont que des approximations. De mˆme.. mais si M «boucle ` l’infini».. En effet. une repr´sentation. est connu sous le nom de «probl`me de l’arrˆt». Les prine e cipales limitations des dispositifs concrets sont l’espace m´moire disponible et le e temps de calcul. Le principe de la machine universelle se retrouve aussi e dans l’architecture interne des ordinateurs (que nous d´taillerons par la suite). a e e De tels probl`mes existent-ils ? Oui ! Et ils sont mˆme tr`s nombreux. de pr´voir si M fonctionnant avec d comme donn´e d’entr´e e e e e s’arrˆtera ou non au bout d’un temps fini ? Remarquons que les machines univere selles ne r´pondent pas totalement ` la question puisqu’elles se contentent de simuler e a ce que ferait M sur la donn´e d : si M s’arrˆte sur d. Il s’exprime ainsi : existe-t-il e e un algorithme capable. ee e Le probl`me de l’arrˆt est ind´cidable : il est impossible de concevoir un ale e e gorithme capable de savoir ` l’avance si une m´thode de calcul appliqu´e ` une a e e a certaine donn´e s’arrˆtera ` coup sˆ r. e e e le temps de calcul des machines de Turing r´alisant un algorithme se doit d’ˆtre e e fini. on peut aussi dire qu’un langage de programmation est une machine e universelle : il permet d’associer un code. alors que les machines de Turing disposent d’un ruban infini. oe En effet. il est capable d’ex´cuter ces e e programmes sur ces donn´es. Les machines de Turing sont n´anmoins des mod`les th´oriques. Comme le fait de s’arrˆter est pr´cis´ment e e a u e e e ce qui distingue les machines de Turing qui sont de vrais algorithmes de celles qui 29 . ` n’importe quelle e a donn´e et ` n’importe quelle instruction. alors la machine universelle e a aussi et elle aura ´t´ incapable de le pr´voir. e a e Tout langage de programmation permet de programmer.graphe) et sur le ruban de laquelle on a mis une donn´e de d´part. e e ee e 3.. et d’int´grer le tout dans un programme.

n’en sont pas. Elle permet dans un premier temps de d´finir la come plexit´ d’un algorithme particulier puis. Un de ses objectifs est la classifie e cation des probl`mes en fonction de leur solvabilit´ effective. e e Un algorithme r´alise une certaine fonction qui. Or. de nombreux probl`mes ind´cidables sont d´couverts chaque e e e ann´e. e e Ce premier probl`me ind´cidable peut sembler un peu abstrait et ´loign´ des e e e e «vrais probl`mes» math´matiques. C’est ce que r´alise la th´orie de la complexit´. e La difficult´ est alors de d´finir un tel crit`re d’efficacit´ qui ne d´pende pas de la e e e e e machine sur laquelle sera ex´cut´ l’algorithme. du type : a e a «´tant donn´ un nombre quelconque.. cela signifie qu’il est impossible de concevoir un algorithme capable de distinguer les vrais algorithmes de ceux qui n’en sont pas ! Nous ne d´taillerons pas e ici la d´monstration de ce r´sultat. une de ses cons´quences directes est e e e qu’il n’existe pas non plus d’algorithme capable de d´cider si une formule logique e quelconque est vraie ou fausse : c’est la solution de Turing au fameux Entcheidungsproblem. depuis 1936. Et.). quand le math´maticien sovi´tique Matijasevic a d´montr´ qu’il n’existe e e e e aucun algorithme capable de r´soudre toutes les ´quations diophantiennes de degr´ e e e sup´rieur ou ´gal 5. ` «paver» enti`rement e e a a e un plan avec ces figures sans laisser de blanc entre les figures. ` chaque donn´e d’entr´e possible. De mˆme. Il est impossible de savoir ` l’avance si ce sera possible. ou du langage de programmation e e dans lequel il sera ´crit. comment savoir s’il est ou non premier ?». dans un deuxi`me temps. ıtre e a 3. quels que soient les progr`s technologiques e e que pourront connaˆ les ordinateurs dans les ann´es ` venir. e e Rappelons qu’un algorithme sert ` r´pondre ` une classe de questions. cela signifie qu’aucun e e e algorithme ne pourra jamais le r´soudre. c’est-`-dire en e a utilisant des ressources (en temps de calcul et en espace m´moire) raisonnables. e a e e associe une r´ponse unique. n’a finalement trouv´ de solution e qu’en 1970. le «10`me probl`me de Hilbert». Par exemple. je mens donc «je dis la v´rit´» donc finalement c’est vrai que «je suis un menteur». dont certains s’´noncent tr`s simplement.. Pourtant. encore faut-il qu’il le soit efficacement. la complexit´ ine e e trins`que d’un probl`me.2). e e Il est important de comprendre qu’un r´sultat d’ind´cidabilit´ est une barri`re e e e e th´orique infranchissable : si un probl`me est ind´cidable. ` a e e e a l’origine lointaine de toute cette histoire (cf. La premi`re distinction e e e fondamentale introduite par Turing est le caract`re d´cidable ou ind´cidable des e e e probl`mes.8 L’h´ritage scientifique de Turing e L’article de 1936 de Turing est le point de d´part d’une nouvelle discipline qu’on e d´signe depuis comme «l’informatique th´orique». e Mais savoir qu’un probl`me est d´cidable (c’est-`-dire qu’il existe des algorithmes e e a qui le r´solvent) ne suffit pas. certains probl`mes de e e e e «pavage du plan» sont ind´cidables. 3. contentons-nous donc d’en e e donner une simple intuition. e e e e Il ne peut ˆtre question d’expliquer ici cette th´orie. il est ´vident que tester le caract`re premier d’un e e e 30 . Ces probl`mes partent de la donn´e de quelques e e e figures g´om´triques (des polygones) et cherchent ` remplir. mais elle se rattache ` la famille des paradoxes e e a logiques dits du «menteur» (en disant «je suis un menteur».

peuvent s’exe e primer de fa¸on algorithmique. e e – le nombre de cases du ruban de la machine de Turing n´cessaires dans le pire e des cas pour donner le r´sultat (complexit´ en espace).. La complexit´ d’un probl`me sera donc rattach´e ` la come e e a plexit´ du meilleur algorithme possible qui le r´sout. Par exemple. Turing lui-mˆme a apport´ sa contribution e e ` la r´flexion ´pist´mologique sur ce th`me. Cette notion e e concerne-t-elle aussi les calculs r´alisables par un humain ? Autrement dit. Dans ce texte. avec un interlocuteur inconnu a a 31 . quel que soit le m´canisme physique qui le r´alise. P d´signe ainsi la classe de tous les probl`mes satisfaisant cette propri´t´. e e e 3. qui d´pendent chacune de cette taille : e – le nombre d’op´rations ´l´mentaires de calcul n´cessaires dans le pire des cas e ee e pour donner le r´sultat (complexit´ en temps) . e e Pour d´finir maintenant la complexit´ intrins`que d’un probl`me. l’esprit e est-il une Machine de Turing Universelle ? Personne. l’oeuvre de Turing pose des questions philoa sophiques fondamentales. Elle est aussi e e ` l’origine de la psychologie cognitive. o` les op´rations mentales sont con¸ues en a u e c termes de traitement de l’information. ´videmment. Cette interrogation est ` la base de la philosophie c a de l’esprit. il passait en revue tous les arguments e qui soutiennent le contraire et tentait de les r´futer minutieusement. en se pla¸ant dans le pire des cas possibles. En 1950. Ce jeu consiste pour un «examinateur» humain e ` dialoguer ` distance. ne pr´tend trouver dans le cerveau l’´quivalent des come e e posants des machines de Turing (ruban. qui s’est surtout d´velopp´e dans les pays anglo-saxons.). La notion d’algorithme qu’il a d´finie caract´rise en effet e e l’ensemble des calculs possibles r´alisables par un dispositif m´canique. Une autre mani`re d’aborder la question consiste ` se demander si les machines e a peuvent . Il proposait e aussi un jeu. on dira qu’il est de complexit´ o e e P. e L’´tude de la complexit´ des algorithmes et des probl`mes est un th`me de ree e e e cherche actif. ` l’aide de plusieurs e e c e a algorithmes possibles. appel´ depuis le «test de Turing».ou pourront un jour .nombre sera d’autant plus long que le nombre en question est grand.. e c Elle se mesure suivant deux fonctions. il ne faut pas e e e e oublier qu’il peut ˆtre r´solu de plusieurs fa¸ons diff´rentes. En revanche. pour une taille fix´e. tableau. si un probl`me e e e peut ˆtre r´solu par un algorithme dont la complexit´ en temps de calcul s’exprime e e e par un polynˆme en fonction de la taille des donn´es. Une e e ee hi´rarchie de telles classes a pu ˆtre d´finie. tˆte de lecture. destin´ ` fonder un crit`re de recone ea e naissance de la pens´e des machines. dans lequel de nombreux r´sultats sont d´couverts chaque ann´e.9 L’h´ritage philosophique de Turing e Au del` de ses aspects techniques. permettant de ranger tous les probl`mes e e e e suivant leur plus ou moins grande «solvabilit´». il e est possible de se demander si les capacit´s de calcul et de raisonnement dont font e preuve les hommes. par un dispositif quelconque.penser. il a publi´ dans une revue a e e e e e philosophique un article o` il cherchait ` montrer qu’il n’y a aucune raison de d´nier u a e aux machines cette capacit´. surtout s’il est effectivement premier et que tous les calculs doivent ˆtre men´s ` terme avant e e a d’aboutir ` la r´ponse finale. La complexit´ d’un algorithme se mesure donc en a e e fonction de la taille de sa donn´e d’entr´e (c’est-`-dire du nombre de bits n´cessaires e e a e pour la coder) et.

Ce mot ee e e c est construit par contraction de «information» et «automatique» et sa d´finition e officielle est «la science du traitement de l’information consid´r´e comme le support ee formel des connaissances». a e e Concr`tement. cette discipline se d´cline suivant de nombreuses variantes. e e e – au niveau fonctionnel ou global. Mais. Le projet de l’«Intelligence Artificielle» est en quelque sorte de r´aliser un tel e programme. Mais elle a une constante : la d´marche d’un informaticien e confront´ ` un probl`me donn´ se caract´rise toujours par un effort de mod´lisation ea e e e e qui op`re ` deux niveaux : e a – d’une part en trouvant un ´quivalent discret. apprentissage. qui n’appartient totalement ni ` l’un ni ` l’autre mais fonde l’un et l’autre. compr´hension du langage. e – au niveau th´orique ou logique. ale e lant de la plus th´orique (´tudier la complexit´ d’un probl`me) ` la plus ludique e e e e a (programmer un jeu). un ordinateur programm´ de telle sorte que son comportement est indiscere nable de celui d’un ˆtre humain.qui peut ˆtre soit un autre humain soit une machine. une bonne repr´sentation . Cette discipline n´e dans les ann´es 50 (le terme date de 1956). les r´alisations concr`tes e e de l’intelligence artificielle sont encore loin de telles performances. L’informatique peut ainsi ˆtre envisag´e suivant trois points e e e de vue diff´rents et non deux seulement : e – au niveau mat´riel ou physique. e e 32 . Si on veut ˆtre encore plus pr´cis. c’est ce dernier niveau qui e e est la comp´tence principale des informaticiens. e Mˆme s’ils ne sont pas sens´s ignorer les deux autres. l’utilisateur a l’impression de manipuler des donn´es ` son ´chelle (que ce soit un tableau de nombres ou un personnage e a e anim´) auxquelles il applique des transformations macroscopiques . et qu’on pourrait appeler le niveau a a th´orique ou logique. on peut d´finir l’informatique e e e e e comme la science de tous les traitements effectifs applicables ` des donn´es discr`tes.. alors que Turing pr´voyait l’av`nement e e e e de machines sortant vainqueur de son «test» vers l’an 2000. devrait ˆtre consid´r´ comme aussi «intelligent» e e ee que lui. et les traitements e e e qui leur sont appliqu´s s’expriment par des algorithmes. cherche e e ` ´crire des algorithmes r´alisant des op´rations que l’on croyait jusque l` l’apaa e e e a nage de l’homme : raisonnement logique.. et de nombreux philosophes ou neurologues contestent maintenant la pertinence du mod`le des mae chines de Turing pour expliquer le fonctionnement de l’esprit humain. des donn´es sont stock´es sur des supports e e e magn´tiques ou optiques et sont transform´es par des impulsions ´lectriques . Pour e a Turing. Cette d´finition est nettement moins fausse que celles e ´voqu´es en 1. La distinction courante entre mat´riel et logiciel en e e e informatique masque un niveau de description essentiel.. Le terme «informatique» lui-mˆme e e a ´t´ propos´ en 1962 par Philippe Dreyfus pour l’Acad´mie Fran¸aise. en cherchant pour elles un bon codage. et ` identifier sa nature. qu’il faudrait intercaler entre les deux autres. num´riques aux donn´es r´elles e e e e du probl`me. 4 Conclusion Que retenir de tout ce parcours ? On peut maintenant revenir a ce qui avait ` motiv´ tous ces d´veloppements.. e les donn´es manipul´es sont des codes stock´s dans des bits. participation ` des jeux de a strat´gie.

– d’autre part en exprimant sous forme de r`gles formelles, d’algorithmes, les e conditions de modifications de ces donn´es permettant d’aboutir ` un r´sultat. e a e Cette m´thodologie est r´sum´e dans le sch´ma de la figure 2.10 (dˆ ` Jacques Arsac, e e e e ua un des pionniers de l’informatique en France).

Fig. 2.10 – d´marche de l’informaticien e

Dans le cas par exemple d’un simulateur de vol, ou d’un programme de pr´vision e m´t´orologique, le r´sultat de cet effort sera d’autant plus r´ussi que l’application des ee e e algorithmes aux donn´es cod´es reproduira les conditions «naturelles» d’´volution e e e des donn´es initiales dans le monde r´el. La nouveaut´, par rapport ` une discipline e e e a comme la physique (qui cherche aussi mod´liser par des ´quations les conditions e e du monde r´el), c’est que cette d´marche peut ´galement s’appliquer aux op´rations e e e e mentales, celles qui permettent de faire un calcul, de chercher une strat´gie gagnante e dans un jeu ou de traduire un texte d’une langue dans une autre. L’objet de l’informatique est de trouver un ´quivalent dans le monde virtuel de ces processus, de e d´finir et de tester des mod`les pour ces m´canismes. e e e Mais la simulation n’a pas de limite : rien n’oblige non plus les programmes informatiques ` s’appuyer sur le monde r´el. Ils permettent de simuler n’importe a e quel environnement, du moment que celui-ci est r´gi par des r`gles qui peuvent e e s’exprimer par des algorithmes. La voie est libre ` l’imagination des cr´ateurs de a e monde virtuels... Si nous avons particuli`rement insist´ sur les aspects th´oriques de l’informatique, e e e c’´tait pour contrebalancer l’image trop «technique» qu’elle v´hicule habituellement. e e Mais il est temps d´sormais de regarder d’un peu plus pr`s le fonctionnement des e e ordinateurs r´els. e

33

Chapitre 3 Les ordinateurs
Le mot «ordinateur» a ´t´ cr´´ en 1955 ` la demande d’IBM, et tire son ´tymologie e e ee a e du terme moyenˆgeux «ordonnateur», d´signant l’autorit´ divine suprˆme... Plus a e e e prosa¨ ıquement, un ordinateur se d´finit comme une instance mat´rielle, concr`te, e e e d’une Machine de Turing Universelle (cf. 3.6). Il est donc capable, dans la limite de ses capacit´s en espace m´moire (n´cessairement finies) et en vitesse de calcul, e e e d’ex´cuter n’importe quel algorithme qu’on lui fournit sous forme de programme, sur e n’importe quelle donn´e discr`te, qu’on lui fournit ´galement. Il se distingue ainsi e e e fondamentalement d’une simple machine ` calculer par sa capacit´ ` enchaˆ a ea ıner plusieurs op´rations en suivant des instructions param´trables, permettant la r´alisation e e e d’op´rations complexes non initialement «cˆbl´es». Toute la difficult´ de concepe a e e tion d’un ordinateur vient donc de cette n´cessit´ de lui faire ex´cuter des suites e e e d’op´rations, en synchronisant l’action de ses diff´rents composants. e e Nous allons passer en revue ici la nature de ces composants et leur organisation interne, en reprenant cette fois la distinction classique entre leur aspect mat´riel, e «hardware» (qui se traduit litt´ralement par : «quincaillerie») et leur aspect logie ciel, «software» (n´ologisme cr´´ par opposition ` «hardware»). L’int´gration r´cente e ee a e e et de plus en plus syst´matique des ordinateurs dans des r´seaux ajoute une couche e e de complexit´ suppl´mentaire ` cette organisation, que l’on tˆchera ´galement d’ine e a a e troduire.

1

Le mat´riel e

Nous nous en tiendrons ici la plupart du temps aux ordinateurs les plus r´pandus, e ` savoir les micro-ordinateurs propos´s aux particuliers, de type «PC» (pour Pera e sonnal Computers) ou «Mac» (pour MacIntosh, leur constructeur).

1.1

Les composants externes

Depuis les ann´es 90, les ordinateurs vivent dans un environnement complexe, e illustr´ par la figure 3.1 e Il convient d’abord de distinguer l’ordinateur lui-mˆme de ses «p´riph´riques», e e e qui ne sont que des constituants annexes. Le coeur d’un ordinateur est constitu´ : e – de l’Unit´ Centrale (UC), ou «microprocesseur», appel´ famili`rement «puce» ; e e e 34

Fig. 3.1 – environnement mat´riel des ordinateurs e 35

– de m´moires, parmi lesquelles on distingue plusieurs types : e – la m´moire ROM (Read Only Memory : m´moire ` acc`s en lecture seule) : e e a e ensemble de bits dont l’´tat est fix´ une fois pour toute, lors de la construce e tion de l’ordinateur. Elle sert ` stocker des informations permanentes (proc´dures a e de d´marrage...) ; e – la m´moire RAM ou «m´moire vive» (Random Access Memory : m´moire e e e ` acc`s al´atoire) : ensemble de bits modifiables ` volont´, o` se trouvent a e e a e u stock´es les donn´es sur lesquelles travaille l’ordinateur. Il ne faut pas come e prendre al´atoire dans le sens de «au hasard», mais par opposition ` s´quentiel ; e a e cela signifie que l’on peut avoir acc`s directement ` tout endroit de cette e a m´moire (comme les chansons dans un CD ou les chapitres dans un film e en DVD), sans avoir ` la parcourir bit ` bit (comme dans les cassettes aua a dio ou vid´o). Cette m´moire est volatile, c’est-`-dire qu’elle ne conserve e e a les donn´es que tant que la machine est sous tension. La m´moire vive des e e meilleurs ordinateurs actuels atteint 1Giga-octet. – les m´moires secondaires ou auxiliaires : ce sont des dispositifs permettant e de stocker des bits de fa¸on stable (qui reste fix´e mˆme si on ´teint la c e e e machine) tout en ´tant g´n´ralement modifiable. On peut inclure parmi e e e elles les disques durs, les disquettes, les bandes magn´tiques, les cl´s USB... e e La capacit´ des disques durs actuels se compte en Giga-octets. e Les autres composants sont donc : – soit des p´riph´riques d’entr´e, c’est-`-dire permettant ` un utilisateur ext´rieur e e e a a e de fournir des informations (donn´es/programmes) ` la machine sous forme e a num´rique : souris, clavier, scanner, joystick, appareil photo num´rique, cae e mescope num´rique... Ces dispositifs peuvent tous ˆtre con¸us comme des e e c num´riseurs puisqu’ils transforment un comportement (l’appui sur la touche e d’un clavier, le mouvement de la souris) ou un objet (une photo analogique pour le scanner, un paysage pour les appareils de prise de vue num´rique !) en e une suite de bits. – soit des p´riph´riques de sortie, c’est-`-dire permettant de visualiser ou de e e a transmettre des donn´es internes ` l’ext´rieur : ´cran, imprimante, IPod, vid´oe a e e e projecteur... A l’inverse des num´riseurs, ces dispositifs traduisent des suites e de bits en information interpr´table par les humains. e La logique de cette organisation est donc celle de la figure 3.2 Les premiers ordinateurs, jusque dans les ann´es 70-80, ´taient r´duits ` une e e e a Unit´ Centrale et des m´moires. Les programmes et les donn´es ´taient alors exclue e e e sivement fournis sous forme de cartes perfor´es et les r´sultats d’un calcul se lisaient e e aussi sur des cartes perfor´es... e

1.2

L’architecture de Von Neumann

Entrons maintenant dans l’organisation interne (on parle aussi «d’architecture mat´rielle») du coeur de notre ordinateur. e Si Turing peut ˆtre consid´r´ comme le p`re de l’informatique th´orique, l’homme e ee e e ` l’origine de la conception des ordinateurs actuels est John Von Neumann. Von a Neumann, n´ en Hongrie, ´tait un tr`s grand math´maticien, ayant laiss´ sa trace e e e e e 36

un e certain Alan Turing. a particip´ au projet «Manhattan». Von e a e Neumann. Pendant la guerre... e e – d’une m´moire centrale interne permettant de stocker aussi bien des donn´es e e que des programmes. Celle-ci est indispensable e e pour r´f´rencer chaque mot m´moire et ainsi retrouver ce qui a ´t´ pr´alablement ee e ee e stock´ dans l’un d’eux. ainsi. Le sch´ma g´n´ral (tr`s simplifi´) de l’architecture de Von Neumann est celui de e e e e e la figure 3. donc). Les deux innovations majeures introduites par Von Neumann par rapports aux calculateurs existant ` son ´poque sont. il a accueilli dans son Universit´ de Princeton. il a ´migr´ aux Etats Unis dans les ann´es 1930.3 La m´moire centrale (RAM) e La m´moire vive d’un ordinateur est compos´e d’un ensemble de «mots m´moire».3. qui a donn´ lieu ` la bombe atomique e e a am´ricaine. pour un stage universitaire. 3. e ee D7. En 1945.). Mais. 1.Fig. Pour bien comprendre comment fonctionne un ordinateur. il nous faut d´tailler e chacun des composants de cette architecture.2 – organisation g´n´rale d’un ordinateur e e dans de nombreux domaines. de mˆme que dans un tableur comme e Excel. y compris en physique (quantique) et en ´conomie e (th´orie des jeux). il a ´crit ` leur intention e a e a un rapport o` il d´taillait les principes qui devaient selon lui pr´sider ` la r´alisation u e e a e d’une machine universelle (un ordinateur. en se consacrant particuli`rement aux calculs balistiques. Sensibilis´ par e e e cette exp´rience ` l’int´rˆt des calculateurs automatiques. L’adresse est simplement un code. En e e e e 1935. il a ensuite travaill´ avec e a ee e des ing´nieurs ` la conception d’un tel calculateur. Le nombre de bits r´serv´ au codage de l’adresse doit ´videmment ˆtre suffisant e e e e 37 . chaque case d’une feuille de calcul est identifi´e par une r´f´rence (comme A2. Ces principes sont depuis connus sous le nom «d’architecture de Von Neumann». e e e qui sont des suites de bits de taille fixe. D’origine juive. Les deux hommes se connaissaient donc mais n’ont jamais pour autant travaill´ ensemble ` la r´alisation d’un ordinateur. et sont ceux encore utilis´s de nos e jours pour la conception des ordinateurs actuels. chaque mot m´moire est identifi´ par son «adresse». donc une autre suite de e bits. l’int´gration : a e e – d’une «unit´ de commande» qui donne les ordres et synchronise les op´rations .

e – le registre d’instruction (ou RI) : il sert ` stocker en permanence l’instruction a en train d’ˆtre ex´cut´e (ou «instruction courante»). La figure 3. On retrouve l` ce qui caract´risait ´galement les e a e e Machines de Turing Universelles. dans l’architecture de Von e e Neumann. Sa taille co¨ ıncide donc avec la taille des adresses de la m´moire (4 bits dans notre exemple) . d’acc`s rapide. encore !). 3. 3. Chaque mot e e e m´moire a donc une adresse comprise entre 0 et 15.6). donc. e Une particularit´ fondamentale de la m´moire centrale.4 e a e montre un exemple de m´moire RAM (ultra simple) constitu´e de 16 mots m´moire e e e de 2 octets chacun (le contenu de la m´moire n’est pas repr´sent´). Cette capacit´ ` e ea coder avec des 0/1 aussi bien des donn´es que des traitements.Fig. pas de s´paration. e e e Les deux registres de l’unit´ de commande sont : e – le compteur ordinal (ou CO) : ce registre sert ` stocker en permanence l’adresse a o` se trouve en m´moire centrale interne l’instruction en train d’ˆtre ex´cut´e u e e e e (on dit aussi «l’instruction courante»). c’est le fondement e de l’informatique. c’est qu’elle sert ` stocker indiff´remment aussi bien des bits codant des a e donn´es que des bits codant des traitements. Il n’y a pas de distinction e entre les deux. Un registre est simplement e e une petite unit´ de m´moire vive (un ensemble de bits.3 – architecture de Von Neumann pour permettre d’associer une adresse diff´rente ` chaque mot m´moire.4 L’unit´ de commande e Cette unit´ fondamentale joue un peu le rˆle de la tˆte de lecture des machines de e o e Turing. des instructions (on verra par la suite e comment coder une instruction dans un mot m´moire). 1. Sa taille est donc la mˆme e e e e 38 . sur le ruban desquelles pouvait figurer aussi bien des donn´es que le code d’une autre machine de Turing (cf. Elle est elle-mˆme compos´e de deux «registres».

3.4 – structure d’une RAM ´l´mentaire ee 39 .Fig.

que celle d’un mot m´moire. 2 Nous d´taillerons simplement le codage des instructions ´l´mentaires de type e ee arithm´tique (addition.5. donn´e 2 → e ← ad. multiplication. e e – la quatri`me. 0001 la multiplication.1 n´cessite e e e e toujours de faire des divisions. donn´e 1 et ad.. e e e Une telle instruction est en fait constitu´e de 4 parties. nous nous contenterons des 4 op´rations arithm´tiques de base et e e nous nous fixons la convention suivante : 0000 code l’addition. Dans notre exemple. r´sultat. Il reste des codes disponibles pour d’autres op´rations possibles. 3. e e Ainsi. telle e e ee qu’elle peut ˆtre stock´e dans un mot m´moire ou dans le registre d’instruction. chaque e partie tiendra donc sur 1 octet soit 4 bits. Les 4 parties du code e de l’instruction ont alors la signification suivante : ← code instr. donn´e 1 → e ← ad.5 – structure de l’unit´ de commande e D´taillons maintenant de quoi est compos´e une instruction ´l´mentaire. r´sultat → e – la premi`re. est le code de l’op´ration ` effectuer. est l’adresse en m´moire o` doit ˆtre stock´ e e e e u e e le r´sultat de l’op´ration. → ← ad. «0011 1001 0011 0001» est l’instruction d’effectuer une division (code 0011) entre le nombre stock´ dans le mot m´moire d’adresse 9 (code e e 1001) et celui stock´ ` l’adresse 3 (code 0011) et de stocker le r´sultat dans le mot ea e m´moire d’adresse 1 (code 0001). donn´e 2 contiennent e e e e e l’adresse en m´moire o` se trouvent stock´es respectivement la premi`re et la e u e e deuxi`me donn´e (dans cet ordre) sur lesquelles l’op´ration arithm´tique doit e e e e ˆtre effectu´e . e – la deuxi`me et la troisi`me partie. Fig. not´e ad. division). e Rappelons-nous en effet qu’un algorithme est une suite d’instructions permettant de r´soudre une classe de probl`mes. not´es ad. Ainsi. par exemple. soustraction. 0010 la soustraction et 0011 la division. mais les nombres ` diviser d´pendent du nombre de a e 40 . e On peut repr´senter l’unit´ de commande de notre machine rudimentaire comme e e dans la figure 3. Dans notre e e a exemple. l’algorithme donn´ en 3. code instr.

dont la valeur compl`te d´pendra e e e e des instances pr´cises du probl`me que l’on voudra r´soudre (et donc. servant respectivement ` stocker les donn´es (que nous notons a e donn´e 1 et donn´e 2) d’une op´ration arithm´tique et son r´sultat : leur taille e e e e e est celle d’un mot m´moire (2 octets dans notre exemple) . Il est lui-mˆme e e e compos´ : e – de trois registres.d´part n (que l’on fournit comme donn´e d’entr´e). e 6 ou plutˆt le Mega-Hertz MH (1MH = 10 Hertz). des donn´es stock´es aux adresses cit´es). dont l’unit´ de mesure est le Hertz. Programmer un algorithme. e 1. plus l’ordinateur est rapide. e e e L’unit´ de traitement se repr´sente habituellement comme dans la figure 3.6 L’unit´ de traitement e L’unit´ de traitement est le composant qui ex´cute les calculs. de prendre les contenus des e e a e deux premiers registres (ceux contenant les donn´es 1 et 2) et de remplir le e troisi`me registre avec le r´sultat de cette op´ration. Elle ne sait faire e e que des op´rations ´l´mentaires (dans notre exemple : simplement les 4 op´rations e ee e arithm´tiques de base). c’est e e e donc bien programmer des instructions g´n´riques. Voici l’ordre de grandeur de la o vitesse des ordinateurs ces derni`res ann´es : e e – en 1985 : de 5 ` 8 Mega-Hertz a – en 1990 : environ 20 Mega-Hertz – en 1995 : environ 200 Mega-Hertz – en 2001 sont sorties les premi`res puces cadenc´es ` 1 Giga-Hertz (soit 109 e e a Hetz) 1. Ces «tops d’horloge» donnent la cadence ` laquelle a e a travaille l’ordinateur et permettent ` l’ensemble des composants de l’Unit´ Centrale a e de se synchroniser. On les appelle pour cela des e 41 . La fr´quence de l’hore e loge se compte en nombre de tops par secondes. Elle est simplement a constitu´e de circuits ´lectroniques cˆbl´s une fois pour toute pour transformer des e e a e 1 en 0 ou des 0 en 1 (c’est-`-dire en fait pour actionner des interrupteurs faisant a passer ou non du courant) de fa¸on ` ce que les bits du registre r´sultat corresc a e pondent bien au codage du r´sultat du calcul qui lui est demand´. e – de l’Unit´ Arithm´tique et Logique (UAL) capable. quand on lui fournit le e e code d’une op´ration arithm´tique ` ex´cuter. Plus les tops sont rapproch´s.6 (on e e rappelle dans l’UAL le code des op´rations ´l´mentaires qui y sont cˆbl´es) : e ee a e L’UAL est ainsi la «machine ` calculer» de l’ordinateur.5 L’horloge L’horloge de l’Unit´ Centrale est un m´tronome ´lectronique qui lance des «tops» e e e ` intervalles de temps r´guliers. comme dans e e e notre instruction ´l´mentaire. ee e e e 1.7 Les bus Les fl`ches reliant les composants entre eux sont en fait des ensembles de fils e permettant de transporter plusieurs bits en parall`le.

u e e a le programme est ex´cut´ ´tape par ´tape.6 – structure de l’unit´ de traitement e bus. Lancer cette ex´cution revient ` mettre dans le compteur ordinal (CO) e e a l’adresse o` se trouve stock´e la premi`re instruction du programme. est e recopi´e dans le registre d’instruction (RI) en transitant par le bus «instruce tions» . dont l’adresse est stock´e dans le CO. Le bus e e e e «instructions» fait transiter les instructions ´l´mentaires des mots m´moire vers le ee e registre d’instruction de l’unit´ de commande. L’ex´cution e ee e e d’une instruction ´l´mentaire.8 Le cycle d’ex´cution d’une instruction e Supposons maintenant que la m´moire centrale de notre ordinateur contienne e un programme et des donn´es. e e Ces diff´rents bus peuvent contenir un nombre de fils diff´rent. et le bus «donn´es/r´sultats» fait e e e circuler (dans les deux sens) le contenu des mots m´moires entre la m´moire et les e e diff´rents registres de l’unit´ de traitement. et que l’on souhaite ex´cuter ce programme sur ces e e donn´es. cod´e suivant la convention expliqu´e en 1. Dans le sch´ma de la figure 3.3. instruction par instruction. e e e 1. Un «mie e e e croprocesseur 32 bits» (ordre de grandeur des puces actuelles) contient donc un bus donn´es/r´sultats compos´ de 32 fils. 3. figurent ainsi 3 bus dont les noms d´signent le e e type de donn´es qu’ils transportent.4 se fait ee e e suivant un cycle comprenant 3 phases : – phase 1 : L’instruction courante. A partir de l`. 42 . Le bus «ordres» sert ` transmettre les demandes e a d’ex´cution d’op´rations de l’unit´ de commande vers l’unit´ de traitement.Fig. Le nombre de e e fils du bus de donn´es/r´sultats d´termine la capacit´ du microprocesseur.

7 montre la situation de d´part. Ces donn´es viennent remplir les registres e e «donn´e 1» et «donn´e 2» de l’UAL en passant pas le bus «donn´es/r´sultats». les trois suivantes montrent l’´tat de l’ordinateur e e apr`s l’ex´cution de chaque phase d’un cycle. e e e e La figure 3. alors ce transfert a dˆ se faire. L’instruction courante a transit´ ` travers le bus «instructions» et se ea retrouve d´sormais dans le registre d’instruction. pour e e pr´parer le cycle suivant. le compteur ordinal est augment´ de 1. Dans notre exemple.8 montre l’´tat de l’ordinateur ` l’issue de la premi`re phase du e a e premier cycle. e Illustrons ce fonctionnement ` l’aide d’un exemple complet sur notre ordinateur a miniature (seuls les bits «utiles» de la m´moire et des registres sont donn´s). a e La figure 3. a La figure 3. La derni`re partie de l’instruction e e e courante indique l’adresse du mot m´moire o` ce r´sultat doit ˆtre stock´. en e e u 4 passages successifs (correspondant chacun ` un top d’horloge). pour la phase 1. on fait ` chaque ´tape figurer en gras les compoa e a e sants actifs ` cette ´tape. ` e e e e a l’adresse r´f´renc´e dans l’instruction. C’est ce e u e e e qui est fait en utilisant de nouveau le bus «donn´es/r´sultats». ainsi e e a le bus «ordres» transf`re le code de l’op´ration (les 4 premiers bits) et le e e bus «donn´es/r´sultats» transf`re dans les registres appel´s «donn´e 1» et e e e e e «donn´e 2» le contenu des mots m´moire se trouvant aux adresses r´f´renc´es e e ee e dans l’instruction . Notons que.9 montre l’´tat de l’ordinateur ` l’issue de la deuxi`me phase du e a e premier cycle. L’UAL a r´alis´ l’op´ration qui lui ´tait demand´e et a e e e e e rempli avec le r´sultat son registre «r´sultat». alors qu’une instruction dans un e e mot m´moire est stock´e sur 2 octets. Ces cycles sont rythm´s par les tops d’horloge. au mieux. pour signifier que l’instruction suivante ` ex´cuter doit se trouver e a e normalement ` l’adresse qui suit imm´diatement la pr´c´dente. qui n´cessite e de faire transiter l’instruction courante de la m´moire vers le RI en utilisant le bus e d’instruction. 4 tops d’horloge seront n´cessaires (car un mot m´moire fait 16 bits e e et le bus n’a une capacit´ que de 4 bits). – phase 3 : l’UAL ex´cute l’op´ration qui lui est demand´e en mettant ` jour e e e a son registre «r´sultat» et transf`re ce r´sultat dans la m´moire centrale.10 montre l’´tat de l’ordinateur ` l’issue de la troisi`me et derni`re e a e e phase du premier cycle. chaque phase correspondant ` un e a nombre fixe de «tops» successifs. si le bus «instructions» e est compos´ de 4 fils. en utilisant le bus «donn´es/r´sultats» .– phase 2 : cette instruction courante est d´cod´e ` destination de l’UAL . comme sur notre sch´ma. ee e e e par ailleurs le CO est automatiquement incr´ment´ (c’est-`-dire qu’il est auge e a ment´ de 1). e e A l’issue de ce cycle. La figure e e 3. qui a reconnu que c’´tait le code d’une addition a e (l’op´ration active dans l’UAL est donc l’addition). e 43 . Les deux suites de 4 bits suivantes e correspondent aux adresses en m´moire o` l’UAL doit aller chercher les donn´es e u e sur lesquelles effectuer cette op´ration. la premi`re instruction ´l´mentaire a ´t´ enti`rement ex´cut´e e ee ee e e e et la machine est prˆte ` d´marrer un nouveau cycle pour ex´cuter la deuxi`me (et e a e e e derni`re) instruction du programme. Par ailleurs. Le bus «ordres» a fait tout d’abord transiter les 4 premiers bits de l’instruction courante ` l’UAL. e e Pour aider ` la compr´hension. Un nouveau a e e e cycle peut commencer alors pour la nouvelle instruction courante.

44 Fig.7 – situation de d´part e . 3.

phase 1 45 .Fig.8 – premier cycle. 3.

phase 2 46 .Fig. 3.9 – premier cycle.

10 – premier cycle. phase 3 47 .Fig. 3.

e Le programme.La figure 3. e e Sur la figure 3. 1100 et 1101 contenaient des donn´es. et pour trouver quel r´sultat ? Reprenons le fil de cet exemple. et bien d’autres dise e positifs. En plus des composants cit´s. e e – la premi`re instruction commandait l’ex´cution d’une addition entre 2 nombres e e stock´s en m´moire que nous appellerons respectivement «nombre 1» et «nombre e e 2» . sur quelles e donn´es. l’algorithme r´alisait donc l’op´ration compos´e suivante : e e e nombre 1 + nombre 2 = nombre 3 nombre 3 * nombre 4 = r´sultat e ou encore : r´sultat = ( nombre 1 + nombre 2 ) * nombre 4 e Les nombres 1.11 montre la situation de l’ordinateur ` la fin de l’ex´cution de ce a e deuxi`me cycle (sans d´tailler les 3 phases.9 L’architecture de Von Neumann et les autres On peut montrer qu’une machine construite suivant l’architecture de Von Neumann a bien la capacit´ de calcul d’une Machine de Turing Universelle : c’est donc e bien un ordinateur. tandis que les mots m´moire dont les e adresses ´taient 1011. l’algorithme compos´ des 2 instructions ex´cut´es par l’ordinateur r´alise la e e e e fonction suivante : f : N3 −→ N (x. elles valaient respectivement (en d´cimal) : x = 5. notre ordinateur a-t-il effectu´.7. De mˆme des codes d’instructions sp´ciaux permettent par exemple de «saue e ter» de l’instruction courante ` une autre instruction non contigu¨ dans la m´moire a e e (c’est-`-dire stock´e ailleurs que dans le mot m´moire suivant imm´diatement celui a e e e contenant l’instruction courante). e e – la deuxi`me instruction demandait de multiplier «nombre 3» (donc. les deux mots m´moire pr´sents aux adresses 0001 et 0010 e e respectivement contenaient des instructions. z) −→ (x + y) ∗ z La valeur r´elle des nombres sur lesquels le calcul a ´t´ effectu´ d´pend de ce e ee e e qui est stock´ dans la m´moire aux adresses utilis´es par le programme. finalement. disons «nombre 4». 48 . le r´sultat e e interm´diaire pr´c´dent) par un nouveau nombre. e ee e e Nombre 3 est un r´sultat interm´diaire et le r´sultat final est not´ «r´sultat». cette fois). Dans notre e e e exemple. elle inclut classiquement un certain nombre e e de registres. mais nous supposons qu’il n’y a plus d’information pertinente ` l’adresse a r´f´renc´e par le CO (ou il y en a une signifiant «FIN») : l’ex´cution du programme ee e e est donc termin´e. pour e e e donner le r´sultat final. La version qui en a ´t´ pr´sent´e ici est n´anmoins extrˆmement ee e e e e simplifi´e. La e valeur du r´sultat final de notre ex´cution est donc : (5 + 14) ∗ 2 = 38. e Mais quel programme. En e e e e e fait. e e 1. le r´sultat ´tant «nombre 3» . y = 14 et z = 2. y. L’exemple a aussi e e montr´ comment l’enchaˆ e ınement de plusieurs op´rations ´l´mentaires pouvait pere ee mettre de r´aliser une op´ration plus complexe. 2 et 4 sont les donn´es sur lesquelles le programme a ´t´ ex´cut´. Un nouveau cycle peut come e mencer. permettant de stocker des r´sultats interm´diaires. ou d’exprimer un «test».

11 – situation ` l’issue du deuxi`me cycle a e 49 . 3.Fig.

u e 1. Les machines les plus rapides au monde appartiennent ` cette a cat´gorie. Ils ne sont n´anmoins pas adapt´s ` tous les types d’applications et sont e e e a beaucoup plus difficiles ` programmer que les ordinateurs s´quentiels. a e e Ces derniers sont construits suivant des principes un peu diff´rents : ils incluent e plusieurs processeurs fonctionnant ind´pendamment les uns des autres et ´changeant e e entre eux des donn´es. La caract´ristique fondamentale de l’are chitecture de Von Neumann. a un statut un peu ` part : il se contente de visualiser une e e e a partie de la m´moire centrale appel´e «m´moire d’affichage». e e e sont ´videmment beaucoup plus rapides que les ordinateurs s´quentiels. puisque e e plusieurs op´rations s’y effectuent en mˆme temps. comme la g´n´ration ou le traitement e e e d’images ou la pr´vision m´t´orologique. De nombreuses variantes sont possibles suivant le nombre de e processeurs pr´sents. lui. la m´moire centrale et un certain e e e e p´riph´rique. le type de m´moire(s) associ´e(s) ` chacun d’eux et leur mode e e e a d’interconnexion. e ee Avec le d´veloppement des r´seaux. ou des projets de bioinformatique) ont mis ` contribution les ordinateurs personnels de particuliers a b´n´voles pour r´partir leurs calculs. il faut qu’une connexion e e e entre eux soit assur´e. via Internet. puisque le a e programmeur doit pr´voir ` l’avance ce que chacun des processeurs sera charg´ de e a e calculer. les plus efficaces dans les ann´es e e 90 ´taient ceux construits suivant l’architecture RISC (pour “ Reduce Intructione Set Computer”). bien sˆ r. L’utilisation de r´seaux d’ordinae e e e teurs demande aussi. On parle pour cela d’ordinateurs s´quentiels. dont la version RISC n’est qu’une variante. Pour que le «coeur» de l’ordinateur a puisse ´changer des informations avec les p´riph´riques. o` sont stock´s les come e e u e posants graphiques des programmes en cours d’ex´cution. quand ils sont utilis´s au maximum de leur capacit´.Ce sch´ma d’organisation interne est celui qui pr´side depuis 1945 ` la r´alisation e e a e de la grande majorit´ des ordinateurs. Chacune est e e e e sp´cialis´e dans l’interface entre l’Unit´ Centrale. dans un ordre fix´ e e e ` l’avance par l’´criture du programme.10 Les unit´s d’´change e e Revenons pour finir ` nos ordinateurs. on peut aussi maintenant simuler le compore e tement d’une machine parall`le en faisant interagir entre eux plusieurs ordinateurs e usuels. Parmi ceux-ci.12. a e e C’est aussi ainsi que fonctionnent les machines de Turing. qui se r´partissent les calculs ` effectuer. dont la particularit´ est de n’int´grer qu’un nombre r´duit d’inse e e tructions ´l´mentaires pr´-cabl´es (comme les op´rations arithm´tiques dans notre ee e e e e exemple) et un grand nombre de registres. On les appelle aussi pour cela e e supercalculateurs. C’est ce que r´alisent des «unit´s d’´changes». est qu’elle ex´cute les instructions d’un programme les unes apr`s les autres. L’organisation mat´rielle e e g´n´rale d’un ordinateur est donc celle du sch´ma de la figure 3. Certains programmes plus ou moins e a scientifiques (comme SETI : Search for Extraterrestrial Intelligence. e e a e e e pouvant se d´composer en sous-probl`mes relativement ind´pendants les uns des e e e autres et n´cessitant chacun de gros calculs. Ils sont donc pour l’instant r´serv´s ` la r´solution de probl`mes tr`s particuliers. e e e 50 . L’´cran. C’est ce ` quoi s’oppose une autre «race» d’ordinateurs appel´s «parall`les». Ces ordinateurs parall`les. une programmation sp´cifique.

12 – relations entre l’UC et les unit´s d’´change e e 51 .Fig. 3.

Mais. e Les programmes ´crits en Assembleur se traduisent imm´diatement en programmes e e ex´cutables.1 langages d’assemblage et langages ´volu´s e e Ecrire un programme.8 pourrait alors s’´crire e e e e en Assembleur de la fa¸on suivante : c ADD 1 2 3 MUL 3 4 5 Dans lequel ADD et MUL signifient respectivement «addition» et «multiplication» et o` les num´ros 1 ` 5 d´signent des registres (il est plus facile d’utiliser les u e a e registres pour stocker des donn´es interm´diaires que de d´signer directement des e e e adresses en m´moire). ces unit´s d’´change peuvent e e elles-mˆmes inclure une Unit´ Centrale sp´cialis´e uniquement dans la gestion d’un e e e e certain p´riph´rique ou d’une certaine fonction. imaginons e un ordinateur similaire ` notre ordinateur rudimentaire. De tels programmes c e e e sont aussi appel´s des «programmes ex´cutables». pendant e e e que leur prix ` qualit´ ´quivalente est divis´ par deux. mais disposant en plus (pour a simplifier la suite) d’une dizaine de registres num´rot´s de 1 ` 10. et de stocker le r´sultat dans le registre 3. et plus particuli`rement de ses programmes.8. 2.Dans les ordinateurs actuels les plus performants. Le mini-programme ex´cut´ en 1. v´rifi´e depuis le d´but des ee e e e ann´es 60 (Moore est un des fondateurs de la soci´t´ Intel) : tous les 18 mois. Par exemple. Dans e e e le disque dur et la m´moire centrale. ae e e Au d´but de l’informatique. depuis e e e les d´buts de l’informatique. Programmer dans un tel langage n´cessite de connaˆ l’architecture e ıtre mat´rielle de l’ordinateur sur lequel il s’ex´cutera . e e e e 52 . ayant chacun la e e a taille d’un mot m´moire. la e ee capacit´ de m´moire des ordinateurs et leur vitesse de calcul sont doubl´es. il y a ainsi presque autant de e e langages d’assemblage diff´rents que de microprocesseurs. programmer revenait ainsi ` e e a ´crire de telles suites d’instructions ´l´mentaires. constituant ce que l’on appelle par e e exemple une «carte graphique». c’est donc ´crire une suite d’instructions ´l´mentaires s’ene ee chaˆ ınant les unes apr`s les autres pour r´aliser un traitement sur des donn´es. les codes se sont superpos´es les uns sur les autres. ces programmes sont cod´s sous forme de bits ` e e a la fa¸on du mini-programme dont l’ex´cution est d´taill´e en 1. Nous allons essayer ici de d´mˆler e e ces couches. e Signalons pour terminer la c´l`bre Loi de Moore. dans les ann´es 50. puisqu’ils sont directement prˆts e e e ` ˆtre ex´cut´s. Mais programmer en Assembleur n’est ni tr`s simple ni tr`s agr´able. Chaque instruction ´l´mentaire est constitu´e exactement de e ee e la mˆme fa¸on que les instructions binaires de notre mini-programme : la premi`re e c e donne ainsi l’ordre d’additionner le contenu du registre 1 avec celui du registre 2. e e constituant ce qu’on appelle des couches logicielles. une «carte son» ou une «carte r´seau». a ee e 2 Le logiciel La partie «logicielle» d’un ordinateur est constitu´e de l’ensemble des codes e stock´s dans sa m´moire. Les langages de programmation les e ee plus proches de ce codage de «bas niveau» sont appel´s «langages d’assemblage» ou e «Assembleurs».

ils doivent euxe mˆmes ˆtre compil´s. Pascal est un langage de ce type. 53 . END. de nouveaux langages de programmation ont peu ` peu ´t´ d´finis pour facia ee e liter la tˆche des programmeurs.. En Pascal. Un compilao e teur est un logiciel capable de transformer un programme ´crit dans un langage de e programmation donn´ L1 en un programme r´alisant le mˆme traitement mais ´crit e e e e dans un autre langage L2 (en g´n´ral un Assembleur). les langues humaines sont beaucoup trop impr´cises et ambigu¨s pour ˆtre traduisibles directement en Assembleur. En inventer un nouveau. une m´thode de traduction (exprimable par un e e algorithme !) entre ce nouveau langage et un langage d’assemblage. nombre5 := nombre3 * nombre4 .13 – rˆle d’un compilateur o Les compilateurs ´tant des programmes. e Ce rˆle de traduction est jou´ par ce qu’on appelle les compilateurs. cela signifie : a – d´finir un langage permettant d’exprimer n’importe quel algorithme ...). e e e Le probl`me est donc de d´finir une langue qui sera traduisible en Assembleur. notre mini-programme peut s’´crire e (` quelques instructions pr`s) : a e BEGIN nombre3 := nombre1 + nombre2 . En effet. ou plus simplement : BEGIN nombre5 := (nombre1 + nombre2) * nombre4 . de fa¸on plus ou moins informelle. La difficult´ vient plutˆt de la seconde condition que de la premi`re. END. De plus.Aussi. 3. Mais les ordinateurs ne c comprennent rien aux langues humaines. Fig. tout algorithme. on peut s’abstraire de la e e connaissance mat´rielle de l’ordinateur sur lequel s’ex´cutera le programme pour se e e concentrer sur sa seule logique. e o e toutes les langues humaines sont en principe capables d’exprimer toute m´thode de e calcul. e e e L’utilisation de compilateurs a permis la d´finition de langages de programmation e de «haut niveau» ou «´volu´s». de e e telle sorte que cette traduction elle-mˆme puisse s’exprimer par un algorithme.13. e – d´finir une correspondance. Dans de tels langages. comme le montre le sch´ma e e e de la figure 3. ils sont eux-mˆmes ´crits dans un certain e e e langage de programmation (et s’ils ne sont pas ´crits en Assembleur.

En Python. En g´n´ral. C’est une instruction. un ordre signifiant e e e que ce qui est ´crit ` droite est la nouvelle valeur qui doit ˆtre stock´e dans la e a e e variable ´crite ` gauche. a e u Tout programme ´crit en Pascal commence par le mot BEGIN et se termine par le e mot END. sans que le e e programmeur ait ` pr´ciser o` il se trouve physiquement. Le programme source est ´crit en langage ´volu´. « :=» et « . e Dans ce sch´ma. c’est donc suivre la e e e d´marche de la figure 3. e mˆme pour informaticien) qui est fourni. abstrait. La premi`re instruction du premier programme (apr`s le BEGIN) signifie e e donc que la variable nomm´e «nombre3» recevra comme contenu le r´sultat de e e l’addition des contenus respectifs des variables nomm´es respectivement «nombre1» e et «nombre2». Le programme source et le programme ex´cutable e sont deux versions num´riques (stock´es sous forme de bits dans la m´moire) du e e e mˆme algorithme. Ainsi. alors que le e e e e programme ex´cutable est le r´sultat de sa compilation. quasiment in´vitables mˆme par les programmeurs exp´riment´s. on e parle de «logiciel libre». Une erreur syntaxique est une faute d’´criture (l’´quivalent d’une faute d’orthoe e graphe ou de grammaire en fran¸ais) . quand on ach`te e e e e e un logiciel dans le commerce. on ´crira cette mˆme e e e instruction : nombre5 = (nombre1 + nombre2) * nombre4 Mais attention : le symbole «=» apparaissant dans cette formule n’est pas une ´galit´ au sens math´matique du terme. 54 .Dans ce programme. ne a d´signent plus une adresse en m´moire ni un registre mais une variable. 2. oublier de le terminer par END ou ne pas s´parer deux instructions ´l´mentaires en e ee Pascal par le symbole « . Ces erreurs. auquel est attribu´ un nom. elle est signal´e par le compilateur quand c e celui-ci ne sait pas comment interpr´ter certaines instructions du programme source e afin de les traduire dans le langage cible (Assembleur).2 La d´marche de conception d’un programme e Concevoir un programme pour r´soudre un probl`me donn´. Quand le code source est aussi fourni.» ainsi que les mots cl´s BEGIN et END sont e des symboles propres au langage Pascal. Par exemple.» constituent des fautes de syntaxe. proviennent d’un non rese e e e pect des pr´conisations (draconiennes !) du langage de haut niveau utilis´ pour le e e programme source. Ce sera au compilateur Pascal de transformer ce programme (appel´ e aussi «programme source» parce qu’il est ´crit dans un langage ´volu´) en la suite e e e d’instructions en Assembleur donn´e plus haut. une instruction comme : e a n=n+1 est tout ` fait recevable. c’est uniquement le programme ex´cutable (illisible. oublier de commencer un programme par BEGIN. puisque tout informaticien peut alors lire le programme (` condition qu’il connaisse le langage dans lequel il est ´crit) et le modifier s’il le a e souhaite. c’est-`-dire e e a un espace m´moire quelconque. eux. en informatique.14. Les mots «nombre1» ` «nombre5». a e elle signifie : la nouvelle valeur de n est son ancienne valeur + 1. alors qu’elle n’aurait pas grand sens en math´matique . alors que les phases de Compilation et d’Ex´cution sont r´alis´es e e e automatiquement par la machine. les phases d’Analyse et de Traduction sont des op´rations intele e lectuelles humaines.

14 – d´marche de conception d’un programme e 55 . 3.Fig.

sur laquelle nous reviendrons. alors que le processeur est toujours e e e unique et s´quentiel) . cette interface prend soit la forme d’un langage de e commande (comme «MS-DOS». e e e sont «multitˆches» . Shell) soit la forme d’objets graphiques ` a manipuler (fenˆtres. le syst`me d’exploitation est la couche logicielle de base qui s’intercale e e e toujours entre l’utilisateur et le mat´riel. ce programme ´tant volumineux. est une notion abstraite. ce qui oblige ` remettre en cause les partis pris de la phase e e a d’Analyse. en effet. ind´pendante e de la nature du support sur lequel les donn´es de ce fichier sont r´ellement e e stock´es) . Les syst`mes d’exploitation les plus couramment install´s sur les ordinateurs e e actuels sont : – MS-DOS (officiellement abr´viation de «MicroSoft Disk Operating System» e 56 . e – contrˆler les usagers en leur donnant des droits diff´rents selon leur statut o e (associ´s par exemple ` diff´rents mots de passe). En tant que programme.. C’est alors l’algorithme lui-mˆme e e e e qui doit ˆtre modifi´..15. masquer les particularit´s de la machine en e e e e substituant aux ressources physiques des abstractions (par exemple. beaucoup plus grave. comme l’illustre le sch´ma suivant de la e e figure 3. e – g´rer les «ressources» de l’ordinateur. lancer une impression. Le syst`me d’exploitation d’un ordinateur est en e quelque sorte son gestionnaire central. et se chargent de r´partir l’occupation des rese e e sources utilis´es par chacun d’eux (par exemple si deux programmes P1 et P2 e sont lanc´s en mˆme temps. il en est un qui est devenu indispensable ` tous a les ordinateurs actuels : c’est le syst`me d’exploitation ou syst`me op´ratoire (trae e e duction de «Operating System»). e Ses rˆles principaux sont les suivants : o – fournir une «interface» entre l’ordinateur et l’utilisateur pour permettre ` ce a dernier de donner des ordres ` la machine (par exemple : lire ou ´crire des a e informations dans la m´moire. En fait.) . quand on allume un ordinateur. de sorte que l’utilisateur aura l’impression a que P1 et P2 sont ex´cut´s en parall`le. son chef d’orchestre.. etc. provient d’une mauvaise conception e de la m´thode suivie pour r´soudre le probl`me. puis de e a nouveau ` un petit bout de P1. menus. la notion de fichier.) ou pour lui signaler e les erreurs d’ex´cution .3 Le syst`me d’exploitation e Parmi les logiciels les plus usuels. e a e En r´sum´. cela signifie qu’ils permettent ` plusieurs programmes de a a s’ex´cuter en mˆme temps. son microproe a e cesseur et ses p´riph´riques : les syst`mes d’exploitation actuels. le syst`me d’exploitation permettra ` un petit e e e a bout de P1 de s’ex´cuter. il peut ˆtre ´crit en Assembleur (sinon.. ` savoir ses m´moires. on provoque automatiquement la recopie du syst`me d’exe ploitation du disque dur vers la m´moire centrale . 2. il est ´crit dans un autre langage et compil´) e e e e et est en permanence actif quand l’ordinateur est sous tension. e – ˆtre ind´pendant du mat´riel. e e c’est ce qui explique que le «d´marrage» d’une machine soit si long. puis laissera la place ` un petit bout de P2..Une erreur s´mantique.

il est associ´ ` des environnements graphiques ea comme «Gnome» ou «KDE».).Fig.«Debian» et «Ubuntu») e a l’ensemble constitu´ par une version de Linux. les outils d’interface e e graphiques (menus.1 inclus (c’est-`-dire que dans ces syst`mes. ee e e multitˆche et multiutilisateur.. certains environnements grae phiques et certains autres programmes n´cessaires ` son installation sur un e a PC. dont la dixi`me version. la prochaine version annonc´e e a e e pour 07 s’appellera Vista . e e not´e OS X. Il est constitu´ d’un langage de come mande (appel´ Shell) et sa particularit´ est d’avoir ´t´ ´crit par des programe e eee meurs b´n´voles.. A l’heure actuelle.. NT : syst`mes d’exploitation multitˆches de Microsoft e a ayant pris la place de MS-DOS (la version NT est plus particuli`rement dese tin´e ` la gestion des ordinateurs en r´seaux). d`s 1984. «Mandriva». 98. ´quipe les MacIntosh de la firme e e e Apple : ces syst`mes ont introduit les premiers. fenˆtres. a a e les manipulations d’objets graphiques ´taient en fait traduits en commandes e MS-DOS) . – la s´rie des MacOS (Mac Intosh Operating System). XP.. d´fini e a e par un langage de commande. malpropre.15 – rˆle du syst`me d’exploitation o e mais il semblerait que le D provienne en fait de «Dirty» : sale. 57 . e – Linux : version pour PC d’un c´l`bre syst`me d’exploitation nomm´ Unix. exclusivement monotˆche. On appelle «distribution Linux» (dont les plus diffus´es ` l’heure actuelle s’appellent «Fedora». dits aussi «stations de travail». Il constituait la base des syst`mes «Windows» e de Microsoft jusqu’` Windows 3. est sortie il y a quelques ann´es. crasseux.) : syst`me en voie de disparition. qui le diffusent de mani`re libre (le code source est disponible) e e e et gratuite. – Windows 95. 3. Les syst`mes actuels de Mac sont en fait des e e variantes du syst`me Linux . destin´ initialement aux gros ordinateurs sciena e tifiques.

Tout est fait pour que l’utilisateur ait l’impression que les fichiers qu’il visualise se pr´sentent comme des suites de donn´es coh´rentes. mais servent d’unit´s e e de rangement.txt» contient e e du texte. De mˆme que pour classer rationnellement des docue e ments papiers.. Mais. Dans un tel arbre.16 correspond ` l’organisation a arborescente de la figure 3.exe» est un programme ex´cutable.4 La hi´rarchie des r´pertoires (ou dossiers) et des fichiers e e Nous avons vu dans la premi`re partie de ce document que les donn´es stock´es e e e par les ordinateurs peuvent provenir de sources tr`s vari´es : textes.. sont plutˆt ` consid´rer comme des boˆ ou e o a e ıtes des classeurs : ils ne contiennent pas directement des donn´es. ee Les dossiers (ou r´pertoires). les fichiers ne peuvent figurer qu’au niveau des feuilles (puisqu’euxmˆmes ne peuvent pas contenir d’autre fichier ou dossier). le syst`me d’exploie tation g`re la m´moire disponible ` l’aide de fichiers et de r´peroires (on parle aussi e e a e de dossiers). Ces 3 lettres permettent de e e e rep´rer avec quel logiciel le fichier a ´t´ rempli : elles indiquent donc indirectement le e ee mode de codage des donn´es stock´es dans ce fichier. e e C’est une unit´ logique : un fichier ne correspond pas ` un espace m´moire r´serv´ e a e e e une fois pour toute.. etc. eux. e ee e Un fichier sert ` stocker des donn´es de mˆme nature (par exemple : caract`res a e e e provenant d’un texte ou fichier son contenant la version num´ris´e d’une chanson). de supprimer. donc est cod´ par une succession de bits correspondant ` des codes ASe a CII.16 est un exemple de copie d’´cran d’un environnement e Windows o` sont pr´sents de tels composants (les traits symbolisant les liens entre u e un dossier et la fenˆtre montrant son contenu ont ´t´ ajout´s).. cod´ sous formes d’instructions e e ´l´mentaires comme en 1. eux.4. Ainsi. Ainsi. Il ne saua e rait pourtant ˆtre question de stocker toutes ces donn´es «en vrac» dans la (les) e e m´moire(s) des ordinateurs.2. chacune correspondant ` un mode de codage sp´cifique.). de d´placer. la e e e e fa¸on dont le syst`me d’exploitation g`re les fichiers est invisible (les informaticiens c e e disent «transparente»). formules math´matiques. les fichiers re¸oivent un nom qui se termine toujours e c par une «extension» de 3 lettres pr´c´d´e d’un point. un fichier «. La figure 3. constie tuent les noeuds interm´diaires et n’apparaissent au niveau des feuilles que quand e ils sont vides. on les range dans des pochettes et des classeurs. e 58 . l’ensemble de fichiers et de dossiers qui appac raissent dans l’environnement Windows de la figure 3. par exemple. pour l’utilisateur. de recopier. un fichier «.. Les dossiers.. un fichier «. pour recevoir soit des fichiers.. Les fichiers et les dossiers sont structur´s dans la m´moire de l’ordinateur de e e fa¸on arborescente. soit d’autres dossiers (ils peuvent aussi rester vides). e e e images. e e e Dans les syst`mes Windows. tout dossier ou fichier. il n’a pas de taille fixe pr´d´finie et les donn´es qu’il contient e e e peuvent ´ventuellement ne pas ˆtre contigu¨s en m´moire.17 (attention : c’est un arbre avec le tronc ou la racine en haut et les feuilles en bas.bmp» code une image bitmap. C’est le syst`me d’exploitation qui g`re toute cette organisation : il permet par e e exemple d’ajouter.

16 – copie d’´cran d’un environnement Windows e 59 . 3.Fig.

Dans cette derni`re figure. 3.19.documents image1. la demande d’ex´cution e e de cette instruction par l’utilisateur est transmise par le logiciel au syst`me d’exe ploitation.txt texte2. Par e e e a exemple. Netscape est un navigateur (ancˆtre de Mozilla et de e e Firefox). seul habilit´ ` lancer une telle commande.txt tableau1.18 donne une reprsentation imag´e de cet «empilement». permettant par exemple de visualiser des vid´os ou d’´couter e e 60 . e Fig.xls tableau3.18 – emplilement du syst`me d’exploitation et d’un logiciel applicatif e Les couches logicielles peuvent bien sˆ r se superposer ind´finiment les unes aux u e autres. quand un logiciel pr´voit une fonction «impression». ea La figure 3.xls classeur Fig. avec qui il ´change les donn´es n´cessaires ` son fonctionnement. comme dans la figure 3. 3.xls tableau2.bmp textes tableaux texte1.17 – arborescence correspondant ` l’environnement pr´c´dent a e e 2. un «Plug-in» est un logiciel donnant des fonctionnalit´s suppl´mentaires e e aux navigateurs Internet.5 Les autres couches logicielles Tout logiciel install´ sur une machine prend place «au dessus» du syst`me d’exe e ploitation.

19 – emplilement de plusieurs logiciels 61 . 3.Fig.

e En contrepartie de cette mise en commun. Une telle organisation en «couches» explique pourquoi quand on installe un nouveau programme dans un ordinateur. Tout se passe donc comme e a si la capacit´ de stockage (la m´moire) et la capacit´ de calcul (processeur) d’une e e e machine mise en r´seau ´taient augment´e de celles des machines auxquelles elle est e e e reli´e.. e e e Le r´seau mis en place ` cette occasion n’est autre que l’ancˆtre de l’Internet.1 La notion de protocole Le r´seau informatique le plus simple que l’on puisse imaginer est celui qui est e constitu´ de deux ordinateurs reli´s entre eux. Pour e e a e rem´dier ` cette faiblesse. la constitution de r´seaux infora e e matiques apporte une dimension suppl´mentaire ` la puissance des machines. e ee L’id´e de connecter des ordinateurs remonte en fait aux ann´es 60. Il est donc primordial de comprendre les principes de e e fonctionnement de ces nouvelles organisations ` la fois mat´rielles et logicielles. il faut tenir compte des autres couches d´j` ea pr´sentes (et principalement du syst`me d’exploitation) : un programme pr´vu pour e e e ´changer des donn´es/ordres avec Linux sera incapable de fonctionner avec Windows e e (et r´ciproquement). e e a Les ordinateurs seront sans doute de plus en plus indissociables des r´seaux e dans lesquels ils sont int´gr´s. Ils e a permettent en particulier de mettre en commun leurs ressources (m´moires. Ainsi.. il est apparu dans ce contexte e e que stocker des informations strat´giques (en particulier militaires) dans un ordinae teur unique rendait le site de ce stockage tr`s vuln´rable ` une attaque cibl´e. Or. De mˆme. ce qui e e e e a a est plus ´conomique que d’en associer ` chacune d’elles. e e e e e Le r´seau t´l´phonique en est un exemple. e a e Au del` des motivations strat´giques initiales. pour faciliter l’usage courant des ordinateurs. des syst`mes de s´curit´ doivent ˆtre e e e e mis en place afin d’´viter que quiconque ayant acc`s aux donn´es disponibles sur un e e e r´seau puisse les modifier ou les d´truire ` sa guise. existant bien avant les ordinateurs. La tendance en informatique est donc d’«internaliser» e e le plus possible de traitements. Chaque couche constitue en quelque sorte une machine sp´cialis´e dans certains services. procese seur et p´riph´riques). e e 62 . plusieurs machines peuvent ˆtre reli´es par l’interm´diaire d’un r´seau ` une imprimante ou ` un scanner.. ` l’int´rieur d’un r´seau. un calcul important peut ˆtre r´parti a e e e entre les processeurs de plusieurs ordinateurs.. Enfin. a e 3. des donn´es stock´es sur une e e a e e e e certaine machine sont disponibles ` toutes les autres qui lui sont reli´es (ce qui ´vite a e e de les recopier ` plusieurs endroits).des fichiers musicaux en MP3. e Les machines vendues dans le commerce ont ainsi tendance ` inclure de plus en a plus de couches pr´-install´es. e e 3 Les r´seaux e Un r´seau est constitu´ de composants reli´s entre eux pour ´changer des donn´es. e e la d´faillance ou la destruction de l’une d’elles pouvant ˆtre compens´e par les autres. C’´tait l’´poque e e e e de la guerre froide entre Am´ricains et Sovi´tiques. des chercheurs am´ricains ont eu l’id´e de r´partir le stoe a e e e ckage de donn´es sensibles entre plusieurs machines distantes mais reli´es entre elles.

c e e Imaginons par exemple deux ordinateurs A et B reli´s physiquement entre eux. une des premi`res questions qui se pose est e sa topologie. Imaginons que la taille du fichier ` transmettre impose de le d´couper en 3 a e trames. Chacune de ces ´tapes correspond ` un ´change de bits : chaque phase de e a e l’´change est cod´e suivant le protocole de communication commun aux deux mae e chines. c’est-`-dire l’organisation. a – B r´pond ` A qu’il est prˆt ` recevoir des donn´es . num´rot´es respectivement 1. Un protocole est ainsi un langage sp´cifique qui comprend ` la fois des mots e a cl´s (pour signifier le d´but ou la fin d’une transmission) et des r`gles (redemander e e e une trame qui a ´t´ mal re¸ue. il ne peut ˆtre question de l’envoyer “d’un seul e e coup” ` travers le cordon. e 3. d’autres sont des e a bits de contrˆle n´cessaires au protocole : il servent ` num´roter les trames. etc. c e – A envoie la troisi`me trame de son fichier . – B accepte la fin de connexion.2 topologie des petits r´seaux e Quand on veut ´tendre la notion de r´seau ` plus de deux composants (qu’ils e e a soient des machines ou autre chose !). Il est bien sˆ r stock´ sous forme de couche ee c u e logicielle dans la m´moire de chaque ordinateur qui l’utilise. Les donn´es doivent tout d’abord ˆtre d´coup´es en parties a e e e e appel´es «trames». Les fins de communications sont ´galement balis´es par a e e e e des formules d’au revoir plus ou moins rituelles. Nous-mˆmes. ` donner o e a e a leur longueur. e e certains sont les bits de donn´es (le code du fichier ` transmettre). Une trame est constitu´e d’un ensemble de bits. un langage commun pour communiquer. a e 63 . 2 et 3.Pour qu’ils puissent s’´changer des donn´es.). Mais cela ne suffit pas ! En e e e effet. Les ´tapes de la transmission du fichier e e e peuvent alors par exemple ˆtre les suivantes : e – A envoie une demande de connexion ` B . Les ordinateurs proc`dent de mˆme. e A doit transmettre ` B le contenu d’un fichier de donn´es. e – B confirme avoir bien re¸u la deuxi`me trame . e a e a e – A envoie ` B la premi`re trame de son fichier . l’architecture concr`te de ses connexions. quand nous t´l´phonons. c e – A renvoie de nouveau la deuxi`me trame . come ment reconnaˆ ıt-il le d´but ou la fin d’une transmission ? Il faut pour cela d´finir e e des conventions d’´change. Parmi ceux-ci. Comme un fichier peut a e ˆtre de taille arbitrairement grande. ces deux ordinateurs doivent tout e e d’abord disposer d’un moyen physique de faire circuler entre eux des bits : en g´n´ral e e un cordon ou un syst`me ´metteur/r´cepteur d’ondes. C’est ce qu’on e appelle un «protocole de communication». a e – B annonce avoir mal re¸u cette deuxi`me trame . e e – A envoie ` B la deuxi`me trame de son fichier . c e – A annonce la fin de la connexion . a e – B confirme la r´ception de cette premi`re trame . e e mais de fa¸on syst´matiquement normalis´es. etc. e – B confirme avoir bien re¸u la troisi`me trame . e ee nous utilisons un protocole implicite qui consiste g´n´ralement ` ´changer un «allˆ» e e ae o puis ` d´cliner son identit´. comment un ordinateur peut-il «savoir» s’il doit attendre des donn´es.

a e Fig.21 – r´seau en anneau e Pour les r´seaux informatiques de petite taille (jusqu’` 100 machines environ). e La solution apparemment la plus simple consiste ` relier physiquement chaque a point ` tous les autres. 3. e e le point central auquel sont reli´es toutes les machines n’est pas lui-mˆme une mae e chine mais un composant particulier (dans les r´seaux informatiques. c’este e `-dire ceux qui permettent de relier des machines ` l’int´rieur d’un mˆme site de a a e e travail (comme une entreprise ou une universit´). e 64 .Ce param`tre est particuli`rement important puisqu’on souhaite que tout point du e e r´seau puisse communiquer avec n’importe quel autre. Ces organisations sont celles employ´es dans les r´seaux locaux. 3.20. e a les topologies adopt´es sont g´n´ralement plutˆt en anneau (figure 3. en ´toile e e e o e (figure 3. Toute topologie «hybride».22) ou en bus (figure 3. on l’appelle e un «hub»). comme sur le sch´ma de la figure 3.20 – r´seau ` connexion compl`te e a e Mais une telle solution n’est pas du tout ´conomique en nombre de connexions e physiques (il faut mettre des fils partout !) et est de ce fait inapplicable. Notons que dans le cas d’un r´seau en ´toile. obtenue en combinant ces diff´rentes possibilit´s. Fig. est e e aussi possible.21).23).

23 – r´seau en bus e 65 . 3.Fig.22 – r´seau en ´toile e e Fig. 3.

alors l’´mission est autoris´e. la machine A veuille transmettre des donn´es ` la machine C. 3. le protocole stipule e e que chaque machine ´mettrice doit attendre pendant un temps al´atoire (tir´ e e e au sort par chacune d’elle) avant de proc´der ` cette r´-´mission.24 – exemple de transmission dans un r´seau en anneau e Le plus simple est de l’illustrer sur un exemple. e e Un tel ´v´nement. Il semblerait e a ee que ce protocole soit efficace pour des r´seaux n’exc´dant pas 1 ` 2 km. e e a Fig. quand une machine veut ´mettre des donn´es ` destination d’une autre. Imaginons donc que dans l’anneau de la figure 3. utilis´ pour les r´seaux en anneaux. Il symbolise le droit d’acc`s ` ce r´seau e a e et peut donc se trouver dans deux ´tats possibles : un ´tat «libre» et un ´tat e e e «occup´». Dans ce protocole. et donc que plusieurs e e trames soient envoy´es ensemble sur la mˆme ligne et entrent en «collision». Un «jeton» est une e e suite de bits circulant en permanence (dans un certain sens. Les protocoles de communication pour l’´change e e de donn´es dans les r´seaux locaux doivent en outre prendre en compte la topoloe e gie avec laquelle ces r´seaux sont constitu´s. dans lequel la fl`che indique le sens de circulation e du jeton. Il y a alors un risque que pluea e e sieurs machines aient effectu´ ce test au mˆme moment. e e Chacune des machines ´mettrices doit donc r´-envoyer la trame perdue. Les e a ´tapes de la transmission d’une trame seront alors les suivants : e – A met le jeton dans l’´tat «occup´» et envoie la trame destin´e ` C (dans e e e a le mˆme sens de circulation que le jeton) . On donne ici la description de deux e e protocoles parmi les plus simples et les plus courants. utilis´ dans les r´seaux locaux e e de type «Ethernet».3. On e a suppose de plus que le jeton arrive dans l’´tat «libre» ` la machine A. e – protocole du jeton. Pour e e ´viter qu’une autre collision se produise imm´diatement. en bus ou en anneau. les collisions entre trames sont incessantes et le r´seau perd beaucoup en a e efficacit´. a pour effet d’interrompre la connexion. Si aucune trame a e a e n’y circule d´j`. toujours le mˆme) e de machine en machine sur l’anneau.24. elle commence par e e a se mettre «` l’´coute» de la ligne ` laquelle elle est reli´e. Le principe du protocole qui l’utilise est qu’une machine ne peut e ´mettre des donn´es qu’` condition qu’elle prenne possession du jeton.3 Exemples de protocoles pour les petits r´seaux e Les trames circulant sur de tels r´seaux doivent sp´cifier les r´f´rences de leur e e ee exp´diteur et de leur destinataire. Au e e a del`. e 66 . – protocole CSMA (Carrier Sense Multi Access). quand il survient.

– C se reconnaˆ comme destinataire des donn´es.4 Les r´seaux maill´s e e Quand il s’agit de relier entre eux un tr`s grand nombre de composants (comme e pour le r´seau t´l´phonique) ou quand on veut interconnecter entre eux une mule ee titude de petits r´seaux locaux (comme pour Internet).25 (les relais sont figur´s par des rectangles noirs. e e a – D fait suivre le tout . les noeuds interm´diaires e a e sont ce que nous appellerons des relais. ils servent d’aiguillage dans le o e maillage. elle se propose de constituer un filet (net en anglais !) dont les points extrˆmes sont les composants ` relier et dont les «mailles». il remet le jeton dans l’´tat «libre» et c e e e le fait suivre. aucune autre u e e machine n’a le droit d’´mettre des donn´es. permet le fonctionnement de r´seaux de plusieurs dizaines e e e de km. r´pondant ` deux e e a types d’usages diff´rents : la commutation de circuits (mode de fonctionnement des e t´l´phones fixes) et la commutation par paquets (qui r´git le fonctionnement de l’Inee e ternet). comme le fait de faire circuler e plusieurs jetons en mˆme temps. Cette fonction a depuis ´t´ automatis´e. Jusque ee dans les ann´es 70 en France. ee e 67 . o` chaque connexion est d´doubl´e.5 Deux protocoles possibles dans les r´seaux maill´s e e Comment transitent les donn´es entre deux points dans un r´seau maill´ ? Quel e e e protocole y est mis en place ? On distingue deux strat´gies. une autre organisation est e n´cessaire. Pendant tout le temps o` le jeton est dans l’´tat «occup´». Un tel protocole. pour mettre en contact les correspondants. e C’est ainsi que fonctionnent les communications entre t´l´phones fixes.– B fait suivre le tout . Plusieurs am´liorations sont possibles. Chacune correspond ` un protocole particulier. ou la constitution d’un r´seau en «double e e boucle». il les conserve donc et envoie ıt e un accus´ de r´ception ` destination de A . les ronds peuvent e eux-mˆmes d´signer des r´seaux locaux) : e e e 3. Un r´seau maill´ peut ainsi prendre la forme e e de la figure 3. Les relais e u e e sont alors plutˆt appel´s des «commutateurs» . des standardistes devaient jouer le rˆle de «come o mutateurs» humains. Comme son nom e e e l’indique. 3. qui englobe les protocoles a pr´c´dents (et constitue donc des couches s’empilant sur celles correspondant ` ces e e a protocoles). afin d’´viter les pannes en cas de u e e e coupure d’une ligne. Cet aiguillage est constant pendant toute la dur´e de la connexion. – la commutation de circuits : Le principe de cette m´thode est de r´server une ligne physique reliant les deux e e points du r´seau durant tout le temps o` ils s’´changent des donn´es. plus contraignant e e que le pr´c´dent. e La topologie la plus adapt´e est alors celle du r´seau maill´. – A re¸oit l’accus´ de r´ception de C.

Son principal inconv´nient est que la recherche d’un circuit e e e libre entre deux points donn´s est une proc´dure difficile et coˆ teuse qui doit e e u ˆtre renouvel´e ` chaque nouvelle ´mission. e a Les relais sont dans ce cas appel´s des «routeurs». – La commutation par paquets : Cette m´thode a constitu´ l’innovation majeure qui a permis le d´veloppement e e e du r´seau Internet. e – les coordonn´es de son destinataire . pour que tout a e se passe bien dans une transmission par commutation de circuits. De plus. Un paquet inclut donc notamment : a – les coordonn´es de son envoyeur . – la place du paquet dans l’ensemble des donn´es ` transmettre.25 – r´seau maill´ e e Cette m´thode est bien adapt´e ` la transmission en continue de grandes quane e a tit´s de donn´es. e e a sous forme d’une ou plusieurs trames) . e – les donn´es elles-mˆmes ` transmettre (du moins une portion d’entre elles. Pour qu’une telle strat´gie e fonctionne. Un paquet contient plus d’information e qu’une trame : il peut contenir plusieurs trames. Enfin. il n’y a rien e e d’autre ` faire que d’attendre la lib´ration d’une ligne.Fig. il faut que les paquets contiennent toutes les informations n´cessaires e ` la reconstitution du message. l’envoyeur et le destinataire doivent fonctionner ` la mˆme vitesse . quand un tel r´seau est satur´. sinon. c’est le point a e le plus lent qui impose sa vitesse. Son principe est de d´couper les donn´es ` transmettre e e e a entre deux points en «paquets» autonomes qui vont transiter dans le r´seau e ind´pendamment les uns des autres. et ´galement en cas de panne en e e a e e cours de communication. Ce sont g´n´ralement euxe e e 68 . 3.

C’est ce qui a permis ` Internet de prendre le pas sur les autres r´seaux naissant ` a e a 69 . ce qui est le cas le plus courant en e informatique. et on parle d´sormais de TCP/IP. e e e ils doivent ˆtre remis dans le bon ordre (soit par le dernier routeur soit par le e r´cepteur) pour que le message complet transmis soit reconstitu´. leur permettant e e e o e des connexions ` distance et des ´changes de courriers ´lectroniques. A leur arriv´e.6 L’Internet L’Internet est certainement le r´seau le plus connu. a e e D`s 1972. Ils peuvent donc stocker provisoirement e e des paquets en attente. Nous ne ferons qu’effleurer ici quelques unes de ses caract´ristiques. a a Cette technique. e e e e A l’´poque. et la litt´rature le concernant e e est pl´thorique. ` ee e a l’initiative de Vint Cerf. plus souple que la pr´c´dente. le chemin des paquets est simplement modifi´ en cours de route sans qu’une nouvelle ´mission soit n´cessaire. le d´partement de la d´fense am´ricain) et est n´ en 1969. La transmission donne alors parfois ee l’impression d’ˆtre hach´e. et des e e a e structures ´quivalentes avaient vu le jour en France et en Angleterre. une telle organisation ne n´cessite pas de synchronisation pr´alable e e entre l’´metteur et le destinataire. des paquets peuvent continuer ` ˆtre ´mis mˆme si le r´seau est sae ae e e e tur´. e e Il est possible d’utiliser le r´seau Internet. c’est un ensemble de protocoles de communication permete tant ` ces structures de communiquer entre elles via des routeurs. e e Internet est en fait un r´seau de r´seaux associant des sous-r´seaux de structures e e e h´t´rog`nes. est bien adapt´e ` des besoins e e e a de connexions simultan´es et multiples. rappelons-le. ces protocoles sortent du secret militaire e et entrent dans le domaine public . n’importe qui peut les utiliser gratuitement. Il inclura plus tard le protocole IP (Internet Protocol). En 1980. ee e 3. Ce ph´nom`ne s’explique justement e e e e par le fait que la conversation orale est alors d´coup´e en paquets et que leur e e r´ordonnancement ` l’arriv´e prend du temps. Elle s’arrange parfaitement de mat´riels e e h´t´rog`nes. qui fonctionne ainsi.mˆmes des ordinateurs qui d´codent les informations de chaque paquet et e e prennent l’initiative de les faire suivre sur une ligne ou une autre. au-del` de leurs a a diff´rences techniques. Les paquets provenant d’un mˆme fichier transitent donc ind´pendamment les uns e e des autres sur le r´seau et peuvent suivre des chemins diff´rents. sont des ordinateurs sp´cialis´s) e e e ont eux-mˆmes une m´moire interne. pour faire e passer des communications t´l´phoniques. C’est ` ce e a moment que le protocole TCP (pour Transmission Control Protocol) a ´t´ d´fini. ee e Ce qui le caract´rise. Enfin. Elle est aussi plus fiable que la pr´c´dente. surtout si l’un d’eux met plus e a e de temps que les autres ` parvenir ` destination. une quarantaine de lieux s’´taient joints ` ce premier r´seau. discontinue. e Internet trouve son origine dans la strat´gie militaire ´voqu´e au d´but de ce e e e e chapitre. e e e De mˆme. il a reli´ quatre universit´s de la cˆte ouest am´ricaine. Son ancˆtre s’appelait ARPAnet (r´seau con¸u pour l’ARPA ou Advanced e e c Research Project Agency. en cas de e e panne d’un des routeurs ou d’une des lignes. parce que les routeurs (qui. En effet.

e e e 70 . A l’heure actuelle. L’abonnement ` un pourvoyeur e a donne g´n´ralement droit ` une adresse ´lectronique et ` la possibilit´ de stocker des e e a e a e pages personnelles sur un serveur. Mais l’acc`s aux routeurs eux-mˆmes est le privil`ge de soci´t´s ou a e e e ee d’organismes qui ont pay´ ce droit et qui s’appellent des «pourvoyeurs de service». Cette e e nouvelle fonction commencera ` prendre un essor consid´rable grˆce ` «Mosaic». e Tout particulier qui souhaite disposer d’un point d’entr´e sur Internet doit donc e s’abonner ` un tel pourvoyeur. Les universit´s fran¸aises sont leur propre pourvoyeur a e c de service : elles sont rattach´es au R´seau ` haut d´bit Renater. etc. bien sˆ r. a Ils sont de plus en plus utilis´s dans les entreprises ou les grandes organisations. le a e a a premier «navigateur» dot´ d’une interface graphique. En plus. e L’acc`s ` chacune de ces fonctions pour un particulier n´cessite un minimum e a e d’´quipements. au point qu’` partir de 1988. c’est-`-dire une machine contenant des donn´es a e accessibles en permanence ` partir de tous les points du r´seau. du protocole HTTP (Hyper Text Transfer Protocol) et la naissance du World Wide Web (litt´ralement «toile d’araign´e mondiale»). du fichage de donn´es personnelles et des droits d’auteurs. o a – l’´change d’informations dans des forums de discussion comme les «News» . les principales fonctions d’Internet sont les suivantes : – l’´change de courriers ´lectroniques . e – la visite des sites multim´dia du Web. le nombre de connexions double chaque e a ann´e. t´l´chargements e e e e ee ill´gaux. on peut s’occuper de son courrier. Elle pose aussi des probl`mes juridiques et ´thiques a e e in´dits dans les domaines de la s´curit´ (paiement ´lectronique. probl`mes e e e amplifi´s par le caract`re «hors fronti`re» de tout ce qui se passe sur Internet.8). charg´ de e e e e e e coordonner Internet en Europe.cette ´poque. e L’explosion actuelle d’Internet semble promettre l’´mergence d’un «nouvelle ´conomie» e e (via notamment le commerce ´lectronique) et de services nouveaux (pour la formae tion ` distance. par exemple). – le contrˆle ` distance d’une machine par «Telnet» . e e – la messagerie instantan´e e – le transfert de fichiers ou FTP (File Transfer Protocol) . un modem ou un boˆ ıtier ADSL est n´cessaire pour relier celui-ci avec le e r´seau t´l´phonique (voir partie 2. un ordinateur a e connect´ physiquement ` Internet ne sera capable d’acc´der vraiment aux donn´es e a e e de ce r´seau que s’il dispose des couches logicielles adapt´es aux protocoles TCP/IP.). bientˆt relay´ par Netscape e o e en 1995. sp´cialement mis en e e a e e place pour la recherche et l’enseignement sup´rieure. «surfer sur le Web» et ´diter des pages e HTML). piratage. Tout d’abord. mais ` un nombre restreint d’utilisateurs. Enfin. d’un e e u ordinateur. Les protocoles TCP/IP peuvent aussi ˆtre utilis´s dans le cadre d’un r´seau local e e e priv´ : on parle alors d’Intranet. e e Ces programmes peuvent ˆtre soit sp´cialis´s dans une certaine fonction («Thundere e e bird» ne permet que de g´rer son courrier ´lectronique) soit plus g´n´ralistes (avec e e e e «Mozilla». et deux informaticiens du CERN (le laboratoire de physique nucl´aire ` la fronti`re franco-suisse) inventent le moyen de d´finir et de e a e e transmettre des documents hypertextes : c’est la cr´ation du langage HTML (Hyper e Text Markup Language). Un tel r´seau rend disponibles les fonctions d’Intere e net (en particulier la visite de pages Web). L’ann´e suivante voit la cr´ation du RIPE (R´seau IP Europ´en). dont l’infrastructure est utilis´e pour se rattae ee e cher ` un routeur. il faut des moyens mat´riels.

La particularit´ du Web est la pr´sence de liens entre pages. a 71 .. Le Web a s’est ainsi d´velopp´ spontan´ment. Il est aussi structur´ en r´seau. appel´e e e e aussi son adresse. e a On peut dire que le Web est ` l’Internet ce que le logiciel est au mat´riel dans un ordia e nateur. Chaque page est d´sign´e par son URL (Uniform Ressource Locator). mais c’est un r´seau virtuel. e e e etc. Il constitue ` l’heure actuelle une source de donn´es et d’informations a e quasi in´puisable.. afin d’am´liorer la recherche d’information et le raisonnement automae tique ` l’´chelle de l’Internet : c’est le projet du «Web s´mantique». e L’un de ses cr´ateurs. e a et l’ensemble des donn´es auxquelles elles donnent acc`s (fichiers sons. grˆce aux multiples contributeurs b´n´voles qui e e e a e e l’ont investi. vid´o. images. Deux pages stock´es dans des e a e e serveurs situ´s aux antipodes l’un de l’autre sur la plan`te peuvent ˆtre tr`s proches e e e e si elles contiennent des liens qui permettent de passer de l’une ` l’autre.3. qui e e permettent justement la «navigation» de page en page par de simples clics de souris. Le Web est n´ en 1991 ` l’initiative d’un informaticien du Cern.7 Le Web et son avenir Le Web d´signe l’ensemble des pages hypertextes lisibles ` partir des navigateurs. ` l’heure actuelle) compr´hensibles non seulement aux humains mais aux a e ordinateurs. dont la structure e e e est compl`tement ind´pendante de la structure physique de l’Internet : la cr´ation e e e de liens est laiss´e ` l’initiative des cr´ateurs de pages. L’aventure du a e e Web n’en est encore qu’` son enfance.). Tim Berners-Lee. Tim Berners-Lee cherche maintenant ` promouvoir une e a ´volution importante : il s’agit de rendre les donn´es du Web (essentiellement texe e tuelles.

forment des questions tandis que d’autres mots y e r´pondent e – XVIe : invention du codage binaire par Francis Bacon (a) et du logarithme (` a l’origine cr´´ pour simplifier des calculs compliqu´s) par Napier (b) ee e 72 . – l´gende juive du Golem (ˆtre d’argile cr´´ par le rabbin Loew et ´voluant dans e e ee e le ghetto de Prague vers 1580). car il nous semble inutile de faire l’arch´ologie d’une discipline dont e e on ne connaˆ pas les principes. e e (b) le calcul automatique (traitements) . 2 Ancˆtres et pr´curseurs e e – XIIIe : fabrication de l’Ars Magna. e – utilisation de bouliers av´r´e depuis tr`s longtemps en Russie et en Asie. en respectant la num´rotation de position . c’est suivre en ıt parall`le l’´volution de 3 domaines : e e (a) les m´thodes de codage (donn´es) . dispos´s dans un certain ordre. Faire l’histoire de l’informatique. par Raymond Lulle (b) : il s’agit d’une «machine logique» faite de cercles concentriques contenant des mots qui.C. ee e Quelques mythes faisant intervenir des ˆtres artificiels (c) : e – il est question de «servantes d’or» dans l’Iliade d’Hom`re .Chapitre 4 L’histoire de l’informatique Nous avons choisi de n’aborder l’histoire de l’informatique qu’` la fin de notre a pr´sentation. (c) la conception d’ˆtre artificiels (simulation). a e 1 Pr´histoire e Quelques m´thodes de calcul dans l’antiquit´ (b) : e e – les premiers «algorithmes» connus datent des babyloniens (1 800 av. e Ces 3 domaines serviront ` baliser chacune des avanc´es ayant contribu´ d’une fa¸on a e e c ou d’une autre ` l’´mergence de l’informatique. e – l´gende antique de Pygmalion (sculpteur) et de Galat´e (une de ses oeuvres e e devenue vivante) . J. – abaques : planches de bois avec des rainures sur lesquelles on faisait glisser des cailloux (calculi).) .

o` l’´lectricit´ donne l’´tincelle de u e e e vie ` un ˆtre compos´ ` partir de morceaux de cadavres (c) a e ea – 1822 : l’ing´nieur anglais Babbage fait les premiers plans de sa «machine ` e a diff´rences». Les automates sont tr`s ` la mode ` cette ´poque. cr´e la «Pascaline». e e qui ´crira les premiers «programmes» qu’aurait pu ex´cuter la machine (le e e langage de programmation ADA sera ainsi nomm´ pour lui rendre hommage). a e le langage informatique PASCAL sera plus tard ainsi nomm´ en son honneur e – 1673 : Leibniz. ` 19 ans. sorte de machine ` calculer m´canique utilisant les logarithmes e a e (b) : trop complexe pour la technologie de l’´poque. fond´s u e e e e sur deux valeurs 0/1 pour coder Vrai/Faux (a) – 1876 : Bell invente le t´l´phone (a) ee – 1884 : L’ing´nieur am´ricain Hollerith d´pose un brevet de machine ` calculer e e e a 73 . radicalise la philosophie de ce dernier et ´crit L’homme machine. qui utilisent des «proe e a grammes» sous forme de cartes perfor´es. e e – 1805 : Jacquart cr´e les m´tiers ` tisser automatiques. fille du po`te Lord Byron. b). il s’int´resse beaucoup ` la num´rotation e a e binaire avec laquelle il essaie de concevoir une «caract´ristique universelle» e dont l’objectif est de r´duire toutes les op´rations logiques ` un calcul (b) e e a – XVIIIe : La Mettrie. expos´s ` u e a paris en 1738 : leur fonctionnement utilise un «arbre ` came» (comme dans a les boˆ ` musique). pour coder les caract`res de l’alphabet e (c’est un code binaire.– 1624 : Wilhem Schickard construit une «horloge automatique calculante» ` a Heidelberg – 1642 : Blaise Pascal. utilisant des cartes perfor´es pour e a e e enchaˆ ıner l’ex´cution d’instructions ´l´mentaires sur un calculateur universel e ee (m´canique) : il passera sa vie et se ruinera ` essayer en vain de construire sa e a machine (a. L’horloger e a a e suisse Vaucansson en construit de tr`s c´l`bres parmi lesquels un joueur de e ee flˆ te et un canard pourvu de fonctions locomotrices et digestives. compos´ uniquement des deux symboles : un trait court e et un trait long) (a) – 1833 : Babbage con¸oit sa «analytical engine». ´galement utilis´es dans les pianos e e e m´caniques (a) e – 1818 : Mary Shelley publie «Frankenstein». o` il d´finit les op´rateurs logiques dits «bool´ens». o` il argumente en faveur d’une vision e u m´caniste du vivant (c) (Descartes lui-mˆme aurait construit un automate ` e e a visage humain). encore plus performante (et c compliqu´e) que la «machine ` diff´rence». Il sera aid´ par Lady Ada Lovelace. Un c´l`bre «joueur ıtes a ee d’´chec artificiel» parcours aussi les cours europ´ennes ` la fin du si`cle (il e e a e aurait notamment battu Napol´on) avant qu’on ne d´masque la supercherie : e e un nain cach´ sous la table actionnait en fait le m´canisme (c). par ailleurs. grand math´maticien. elle ne sera construite e d’apr`s ces plans qu’au XXi`me si`cle. machine ` calculer m´canique a e a e ` base de roues dent´es. e Cette machine aurait pourtant r´pondu aux besoins croissants en calcul dans e la soci´t´ anglaise. am´liore la Pascaline en y ajoutant la e e multiplication et la division . codage binaire du mouvement (a). philosophe disciple de Descartes. ee – 1854 : Le logicien anglais Georges Boole publie son livre The Mathematical Analysis of Logic. capable de faire des additions et des soustractions (b) . e e e – 1832 : invention du langage Morse. notamment pour l’astronomie et la navigation.

e dans une de ses pi`ces (c) e 1925 : Vannevar Bush. e occupe 160m2 et sa m´moire est constitu´e de 18000 tubes ` vide. 1946 : construction de l’ENIAC ` l’Universit´ de Pennsylvanie. e a Wallace Eckler et John Mauchly con¸oivent le Binac (Binary Automatic Comc puter). dernier gros a e calculateur ´lectrique programmable (mais pas universel) : il fait 30 tonnes. le Z1 (b) 1936 : Alan Turing propose sa d´finition des «machines de Turing» et Church e invente le «lambda-calcul». travaille sur les calculs de balistique n´cessaires au e projet Manhattan (conception et r´alisation de la premi`re bombe atomique e e am´ricaine) (b). e 1945 : John Von Neumann ´crit un rapport o` il propose l’architecture interne e u d’un calculateur universel (ordinateur). e ee e qui deviendra en 1924. «International Business Machine» (IBM).. ing´nieur am´ricain. sa puissance e e a est ´quivalente ` celle d’une petite calculette actuelle (b) . premiers ordinateurs europ´ens avec le Z3 de e Konrad Zuse qui. – Alan Turing travaille dans le service anglais de d´cryptage des messages e secrets allemands (cod´s suivant le syst`me appel´ «Enigma») : il r´alise e e e e une machine ` d´crypter qui contribuera ` la victoire des alli´s (a. pendant ce temps. avec l’apport de Von Neumann 1947 : invention du transistor (qui peut ˆtre vu comme un interrupteur miniae ture) 1948 : Claude Shannon publie sa Th´orie math´matique de l’information. qui op`re pour la premi`re fois «en temps r´el» mais ne sera construit e e e qu’en 1949. 1896 : Hollerith cr´e une soci´t´ appel´e «Tabulation Machine Corporation». prestigieuse ´cole d’ing´nieur e e am´ricaine) e 1927 : la t´l´vision et la radio deviennent op´rationnels (a) ee e 1931 : l’allemant Konrad Zuse construit un calculateur automatique. Les besoins industriels en calcul automatique se multiplient. 1921 : invention du mot «robot» par Karel Capek. b) . qui se r´v`lent avoir des capacit´s de calcul ´quivalentes e e e e (b) 1938 : fondation de Hewlett Packard. construit un calculateur analogique e e au MIT (Massachusetts Institute of Technology. il construit le « Colossus » ` l’universit´ de Manchester (bientˆt suivi a e o du Mark I et du Mark II).– – – – – – – – – – – – – – automatique 1890 : Hollerith commercialise des machines ` calculer ´lectriques. soci´t´ de mat´riels ´lectroniques ee e e 1939 : John Atanassoff et Clifford Berry. utilis´es a e e notamment pour traiter automatiquement les donn´es d’un recensement aux e Etats-Unis (b). pour la premi`re fois. auteur dramatique tch`que.. en a e a e 1941. son ´tudiant. con¸oivent un prototype e c appel´ ABC ` l’universit´ de l’Iowa. reconnu comme le premier ordinateur e a e digital (b) 1939-1945 : pendant la guerre. qui existe toujours. o` e e u est introduite la notion de quantit´ d’information d’un objet et sa mesure en e 74 . propose un contrˆle automatique de e o ses op´rations e – John Von Neumann. appel´e d´sormais «architecture de e e Von Neumann».

Les avanc´es conceptuelles les plus spectaculaires concernent. adapt´ ` des e ea applications d’intelligence artificielle – 1960 : conception de ALGOL (ALGOrithmic Language). l’ann´e suivante il construit la premi`re machine ` jouer aux ´checs e e a e 3 Histoire contemporaine A partir de cette date. a e ancˆtre d’Internet . premier ordinateur construit suivant l’architecture de Von Neumann et stockant ses donn´es sur disques magn´tiques e e – 1950 : Turing ´crit un article dans une revue philosophique pour argumenter e que le mod`le des ordinateurs peut r´aliser tout ce que fait l’esprit humain e e – 1952 : IBM commercialise les premiers ordinateurs ` lampes et ` tubes ` vide. encore utilis´ de nos jours pour le calcul scientifique e – 1955 : invention du mot «ordinateur» en France.bits (a) . ` la demande d’IBM a – 1956 : le terme d’Intelligence Artificielle est invent´ lors d’une conf´rence ` e e a Dartmouth. John McCarthy invente le LISP. a a a IBM 650 puis IBM 701 – 1954 : premiers essais de programmation avec le langage FORTRAN (FORmula TRANslator). premier langage de l’Intelligence Artificielle – 1959 : conception de COBOL (Common Business Oriented Language) : langage de programmation sp´cialis´ pour la gestion et le domaine bancaire. est le premier ordinateur int´grant e e des transistors . 64 Koctets de m´moire. e e 3. invention du langage PASCAL par Nicklaus Wirth e 75 . qu’on d´coupe habituellement en termes de a e e e «g´n´rations». l’ordinateur existe et son histoire mat´rielle se r´duit donc e e ` l’´volution des progr`s technologiques.3 Troisi`me g´n´ration : les circuits int´gr´s e e e e e – 1962 : le terme «informatique» est cr´´ en France par contraction de «inforee mation automatique» – 1964 : utilisation des circuits int´gr´s (circuits ´lectroniques miniatures) e e e – 1965 : le premier doctorat (th`se) en informatique est attribu´ ` l’universit´ de e ea e Pennsylvanie . elles. aux Etats-Unis 3. langage ´volu´ de e e calcul scientifique 3. e e e principalement la conception de nouveaux langages de programmation ´volu´s.1 Premi`re g´n´ration : les monstres e e e – 1949 : construction de l’EDVAC.2 Deuxi`me g´n´ration : int´gration du transistor e e e e – 1958 : l’IBM 7044. conception du langage BASIC (Beginners’ All-purposes Symbolic Instruction Code) et du langage PL/1 (Programming Language 1) – 1969 : premier essai de transfert de fichier ` distance par le r´seau Arpanet. ene e core utilis´ de nos jours et du langage LISP (List Processing).

. premier micro-ordinateur largement diffus´ e 3. conception du langage C++. particuli`rement adapt´ ` la programmation e ea et ` l’utilisation de syst`mes d’exploitation a e – 1973 : apparition des premiers micro-ordinateurs munis d’un clavier et d’un ´cran . qui introduit la programmation «orient´e e objet» – 1977 : cr´ation de la soci´t´ Apple par Steve Jobs et Steve Wozniak et come ee mercialisation de l’Apple II.. pour r´pondre ` une demande de la NASA e a – 1984 : Le McIntosh d’Apple introduit pour la premi`re fois une interface grae phique (menus. exa tension du langage PASCAL.. version o orient´e objet du langage C e – 1992 : cr´ation de Mosa¨ au CERN de Gen`ve. le premier magasin sp´cialis´ en informatique ouvre en e e Californie – 1976 : conception du langage Smalltalk. destin´ ` l’initiation p´dagogique aux concepts de la programmation ea e 3. le premier micro-ordinateur fran¸ais. et les ´volutions e majeures r´centes sont plutˆt ` chercher du cˆt´ d’Internet.) e – 1995 : Windows 95 g´n´ralise l’interface graphique sur les PCs. premier navigateur permettant e ıc e de visualiser des pages Web (et donc ancˆtre de Netscape. Firefox. cr´ation de MICRAL. Mozilla. mais ces machines d’un nouveau genre n’ont jamais vu le jour.) et la souris . e e – 1998 : naissance de Google 76 . e o a oe – 1983 : conception du langage ADA (en hommage ` Lady Ada Lovelace). par Alain a Colmerauer – 1975 : Bill Gates commercialise le langage BASIC et cr´e la soci´t´ Microe ee soft avec Paul Allen .4 Quatri`me g´n´ration : les micro-ordinateurs e e e – 1972 : conception du langage C.. conception du langage LOGO.5 Cinqui`me g´n´ration : l’interface graphique et les r´seaux e e e e Les japonais avaient annonc´ pour les ann´es 90 l’apparition d’un nouveau type e e d’ordinateurs «cinqui`me g´n´ration» d´di´s ` des applications d’Intelligence Artifie e e e e a cielle.– 1971 : introduction des disquettes pour l’IBM 370 . et invene e c tion ` Marseille du langage PROLOG (PROgrammation LOGique). icˆnes.

Heilmann Eric : L’option informatique en lyc´e. 1999. Paris. – Ghernaouti-H´lie Solange. La d´couverte. collection «Explicit». Les documents suivants sont donc plutˆt ` consid´r´s soit comme des introductions succinctes ([Ghernaouati et al o a ee 99]. 1996. 1999. Dufourd Ghislaine. Andrew : Alan Turing. soit comme des compl´ments d’information ([Breton 90]. Paris. Paris. Paris. Jean-Luc : Informatique g´n´rale . Jean-Gabriel : Le petit tr´sor : dictionnaire de l’informatique et des e sciences de l’information. [Ganascia e 98]. Paris. 1987. e a – Fdida Serge : Des autoroutes de l’information au cyberespace. [Fayon 99]). Payot. Flammarion. 1998. Paris.Chapitre 5 Bibliographie 1 Introductions g´n´rales ` l’informatique e e a Rares sont les ouvrages se pla¸ant ` un niveau de d´tail comparable ` celui adopt´ c a e a e ici (le plus proche est sans doute [Breton et alii 98]). – Fayon David : L’informatique. 1998. 1997. Flammarion collection «Domino» n 132. collection «Que sais-je ?». Paris. : Un savant dˆ ıner. 1996. Internet et cyberespace. e ˚ 3 Autour de Turing – Casti. 1990. fondements et technologies. John L. e r´´dit´ en collection «Point Sciences». Vuibert. Paris. e 77 . 1988. 1998. ESTAe e Editions de la Roche Haute. Paris. ee e – Breton Philippe. PUF. Paris. Gallimard e e collection «D´couverte» n 280. [Rocuet 96]). Dufour Arnaud : De l’ordinateur ` la soci´t´ de e a ee l’information. – Hodges. ˚ – Gu´don Jean-Claude : La plan`te cyber . Hachette ´ducation. Les deux r´f´rences suie e ee vantes sont des introductions tr`s faciles ` lire. – Breton Philippe : Une histoire de l’informatique. Le Seuil. – Rocuet. l’´nigme de l’intelligence. Flammarion. 2 Internet et les r´seaux e De tr`s nombreux livres sont disponibles sur ce th`me. Paris. e e – Ganascia.

Paris. avec un forum pour poser des questions. Jean-Paul : Jeux math´matiques et math´matiques des jeux. des pr´sentations ludiques : ` aller voir absolument ! e e a – http ://www.fr/ La page de l’´quipe de recherche Grappa. – Delahaye. Jean-Paul : Logique. 1985. – Lemire. 2001.wikiversity. Paris. 1998. – Delahaye. Douglas : G¨del. Jean : Turing. 4 Sur l’Intelligence Artificielle – Arsac. Paris. – Ganascia. e Paris. 78 . Flammarion. Hachette. 5 R´f´rences ludiques et s´rieuses ee e – Delahaye. biblioth`que «Pour la science». 2004. les Brins d’une Guirlande Etero nelle. Paris. a – Crevier. Paris. e – http ://www.info/ Le plus joli site d’initiation ` l’informatique : plein d’articles faciles ` lire.wikipedia. a Le Seuil.org/wiki/Accueil et http ://fr. les enjeux de l’itelligence artificielle. 1987.net/ Un site ax´ sur la technique. e Paris. bie e blioth`que «Pour la science». Le Seuil. collection «champs». e – Hofstadter.commentcamarche. dont sont membres tous les enseignantse chercheurs en informatique de Lille3. e – Delahaye. Le Seuil. des a a vid´os.grappa.– Lass`gue. des jeux. biblioth`que «Pour la science». Jacques : Les machines ` penser. e Paris. 2006. ` lire parfois avec pr´cautions e a e (puisque n’importe qui peut y ´crire) mais les rubriques scientifiques et teche niques sont en g´n´ral fiables. 1998. Escher. collection «Figures du savoir». Jean-Gabriel : L’ˆme machine . 1995 (le premier article traite des machines de Turing). Les Belles Lettres. informatique et paradoxes.org/wiki/Accueil Une source quasi-in´puisable d’informations. e – Ramstein G´rard : Requiem pour une puce. Laurent : Alan Turing. Jean-Paul : L’intelligence et le calcul. l’homme qui a croqu´ la pomme. Paris. Bach . Paris. 1990. e e – http ://interstices. Inter´dition. e 6 Sites Web – http ://fr.univ-lille3. 2002. Daniel : A la recherche de l’IA. 1999. biblioth`que «Pour e la science». Jean-Paul : Complexit´s : aux limites des math´matiques et de l’ine e formatique.

on va utiliser une version simplifi´e de cette m´thode des e e codes correcteurs pour am´liorer la transmission.Chapitre 6 Exercices corrig´s e 1 Enonc´s e Les exercices corrig´s suivants permettent soit d’introduire des notions nouvelles e sans connaissance pr´alable (Exercice 1). – on construit une ligne et une colonne de contrˆle en associant ` chaque ligne o a et ` chaque colonne du tableau un nouveau bit dit «de parit´» ayant la signia e fication suivante : – il vaut 0 si le nombre de bits de valeur 0 dans la ligne (ou la colonne) est pair . n’´tant pas fiable (certains bits peuvent ˆtre modifi´s ou perdus e e e pendant leur transfert).1 Exercice 1 La m´thode des codes correcteur d’erreurs. La ligne a e de transmission. soit de r´capituler plusieurs outils introe e duits au fil de ces pages (Exercice 2). – on transmet les 8 bits suppl´mentaires ainsi d´finis ` la suite des 16 bits inie e a tiaux (d’abord les 4 bits de contrˆle verticaux. Example 5 La suite de bits 1101001101011000 donne lieu au tableau suivant : 79 . Elle consiste ` effectuer les transe a formations suivantes : – on dispose les 16 bits dans un tableau de 4 lignes et 4 colonnes . puis les 4 bits de contrˆle o o horizontaux). Supposons que les donn´es ` transmettre sur un r´seau quelconque soient constitu´es e a e e de 16 bits (ce qui correspond ` un mot m´moire de notre mini-ordinateur). – il vaut 1 sinon. soit enfin d’illustrer une section pr´cise du e document (Exercice 3). permet d’expliquer le e fait que les transmissions num´riques sont plus fiables que les transmissions analoe giques. 1. introduite ici.

1.2 Exercice 2 Voici les codes ASCII. 4. par exemple). Montrer que le message suivant : 111001110010110011110101. o 2. b : 01100010 . Reconstituer autant que possible le message : 1 ? ?1101 ?110 ?0 ?001 ?0 ?1 ?10 3. transmis suivant le mˆme mode. avec leur fonctionnalit´ principale : e – logiciel de reconnaissance vocale : il permet de transformer des paroles prononc´es devant un micro en un texte ´crit dans un ´diteur de texte . e e e – logiciel de gestion et d’interrogation de bases de donn´es : il permet de stocker e des informations de fa¸on structur´e en les r´partissant en «champs» et de les c e e retrouver simplement en fixant la valeur de ces champs. c : 01100011 1. c o` les « ?» repr´sentent des bits inconnus (de valeur incompr´hensible).3 Exercice 3 Ci-jointe une liste de logiciels. le code ASCII de la lettre majuscule correspondante sera stock´e ` e e a l’adresse 1001. Donner la description (sous forme de graphe) d’une machine de Turing permettant de transformer le code ASCII (en binaire) d’une lettre minuscule ´crit e sur son ruban en le code ASCII de la lettre majuscule correspondante. e a 1. sur un octet chacun. C : 01000011 – a : 01100001 . Quelle est l’explication la plus simple pour e e rendre compte de cette incoh´rence et comment y rem´dier ? e e 1. pour lequel e les «champs» sont des donn´es comme : «nom». Leur illustration la plus simple est un annuaire ´lectronique (celui du Minitel. «commune» et e e 80 . de quelques caract`res alphab´tiques : e e – A : 01000001 . «pr´nom». Donner le contenu de la m´moire d’un ordinateur de type Von Neumann (avec e le sch´ma habituel) tel que si le code ASCII d’une lettre minuscule se trouve e stock´ ` l’adresse 0110. alors apr`s ex´cution du programme contenu dans cette ea e e m´moire.1 0 0 1 ligne de controle 0 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 colonne de contrˆle o 1 0 0 1 Les donn´es ` transmettre sont donc : 1101001101011000 1001 0011. Montrer que si on re¸oit le message suivant : 000 ?1 ?011100 ?010100 ?0110. B : 01000010 . il est u e e possible de reconstituer en entier les donn´es qui ont ´t´ envoy´es (y compris e ee e les bits de contrˆle). Quel doivent ˆtre les codes ASCII de D et de d ? De Z et de z ? e 3. est incoh´rent. Ecrire les valeurs en base 10 correspondant ` ces nombres binaires. a 2.

l’interrogation s’effectue en utilisant des commandes du genre : nom=Dupont ET commune=Lille. c’est-`-dire de le transformer en commandes e a ex´cutables par l’ordinateur. Le message reconstitu´ au e e e maximum est le suivant : 1101101111000?00110?1?10 3.. Pour reconstituer la valeur des bits manquant. Le message 1??1101?110?0?001?0?1?10 donne lieu au tableau : colonne de contrˆle o 1 1 0 ? 1 1 1 0 ligne de contrˆle o 1 1 0 1 ? ? 0 1 0 0 1 1 1 0 0 0 Tous les bits inconnus n’ont pas pu ˆtre d´duits.1 Corrections Exercice 1 1.. Le message transmis donne lieu au tableau suivant : 81 . e Dans quel ordre ces diff´rentes couches doivent-elles ˆtre pr´sentes dans un ordie e e nateur (sans oublier le syst`me d’exploitation) pour permettre d’interroger oralement e une base de donn´es ? e 2 2. ee 2. il suffit de reconstituer le tableau ayant servi au calcul de ligne et de la colonne de contrˆle et de v´rifier la o e valeur du bit de parit´ sur chaque ligne et sur chaque colonne de ce tableau. Il faut donc e e o respecter un certain ordre. e Le message 000?1?011100?010100?0110 devient donc : colonne de contrˆle o 1 0 0 1 0 1 1 0 ligne de controle 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 On ne peut d´duire la valeur d’un bit inconnu qu’` condition qu’il soit le seul e a ind´termin´ sur sa ligne ou sur sa colonne (contrˆle compris). – logiciel de compr´hension du langage naturel : il permet de «comprendre» un e texte ´crit en langage courant. Le message envoy´ ´tait donc : 000110011100001010010110.

la machine de Turing la plus simple possible e qui aura l’effet souhait´ est d´crite par le graphe de la figure 6. et que l’instruction ´l´mentaire suivante : «0010 0110 ad 1001» e e ee soit stock´e ` l’adresse r´f´renc´e dans le CO.2 Exercice 2 1. transformer le code ASCII d’une e e e lettre minuscule en celui de la majuscule correspondante revient ` soustraire 32 a ` ce code. diff´rente des adresses impos´es e a e e e par l’´nonc´).2 e a ee e est donc une des solutions possibles (o` ad vaut 0100) . La suite des codes ASCII respectant l’ordre alphab´tique. En termes d’op´ration arithm´tique d´cimale. Si en effet. La raison la plus probable de e o cette incoh´rence est une erreur de transmission du bit situ´ ` l’intersection e ea de cette ligne et de cette colonne. c : 99 2. e Le principe des codes correcteurs d’erreurs est donc d’ajouter des informations redondantes aux donn´es transmises. Pour passer du code ASCII d’une lettre minuscule ` celui de la majuscule a correspondante. Supposons donc que le code ASCII d’une e minuscule soit ´crit sur le ruban.1. u 82 . e e 4. la valeur de ce bit passe de 0 ` a 1. le tableau devient coh´rent. les codes manquant e sont : – D : 01000100 (68 en d´cimal) e – d : 01100100 (100 en d´cimal) e – Z : 01011010 (90 en d´cimal) e – z : 01111010 (122 en d´cimal) e 3. B : 66 .1 0 0 1 ligne de controle 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 colonne de contrˆle o 1 1 1 1 La 3`me colonne et la 4`me ligne de ce tableau (en gras) ne respectent pas e e les r`gles de construction des bits de contrˆle. La configuration de la figure 6. Les valeurs en base 10 correspondant aux codes ASCII fournis sont les suivantes : – A : 65 . Par ailleurs. b : 98 . 2. les deux premiers bits sont toujours ´gaux ` «01» et les 5 a e a derniers bits ne sont pas modifi´s. C : 67 – a : 97 . Cette op´ration suppose donc que le nombre 32 soit stock´ quelque a e e part dans la m´moire (` une adresse not´e ad. il suffit de transformer le 3`me bit en partant de la gauche de e 1 ` 0. pour contrˆler leur coh´rence et donc corriger e o e les erreurs.

Fig.3 Exercice 3 Les couches logicielles. pour obtenir la e r´ponse ` la question pos´e . de la plus «externe» ` la plus «interne». e a e – syst`me d’exploitation. doivent figurer a dans l’ordre suivant : – logiciel de reconnaissance vocale . e e e 83 .1 – graphe de la machine de Turing de l’exercice 2 2. sur lequel s’appuie le logiciel pr´c´dent. – logiciel de gestion et d’interrogation de bases de donn´es. 6. – logiciel de compr´hension du langage (pour transformer une question comme e «Quels sont les Dupond habitant Lille ?» en une commande comme : nom=Dupont ET commune=Lille) .

6.Fig.2 – machine de Von Neumann de l’exercice 2 84 .