Licence Physique-Chimie Histoire des Sciences Informatique Machines à calculer en théorie et en pratique Notes de Cours 1 Introduction Étymologie En Allemagne (1957) le terme «Informatik» est créé par l ingénieur Karl Steinbuch En France (1962) le néologisme «Informatique» est proposé par Philippe Dreyfus (ancien dir. du centre de calcul Bull), comme contraction de "information" et "automatique" Aux Etats-Unis (1962) la société Informatics Inc. enregistre son nom en tant que marque et poursuit toutes les universités qui utilisent ce mot pour décrire la nouvelle discipline. => Computer Science Notre Objet d Étude : Histoire de l Informatique "Informatique" vs "Computer Science" Est-il possible de faire de l informatique sans ordinateurs? Y a-t-il une histoire de l informatique avant les ordinateurs? Oui : la période présentée ici courera de 1820 à 1950 ; bien avant les ordinateurs actuels. Informatique Académie Française (1966) En 1966, l académie française consacre l usage du terme Informatique en tant que science du traitement automatique de l information mais aussi technologies du traitement automatique de l information E. Godard http://www.lif.univ-mrs.fr/~egodard/ens/histoire/
Note Importante Cet exposé ne traitera pas de l histoire de l Information mais plutôt de l histoires des machines (réelles et théoriques) permettant ce traitement automatique de l information Plan de l Exposé Table des matières 1 Introduction 1 2 La Préhistoire de l Informatique 2 3 Machines en Pratique 6 4 Machines en Théorie 10 5 Machines Universelles 12 6 Et Les Vrais Ordinateurs Alors? 16 7 Conclusion 18 2 La Préhistoire de l Informatique Commençons par la Conclusion Il y aura toujours des questions sans réponses! Vignette extraite de Logicomix 2
La Science ou La Recherche de LA Vérité La Puissance du Raisonnement et du Calcul L apport des mathématiques est très important pour les autres sciences. calculs astronomiques dès l Antiquité équations de Newton probabilités... Est-il possible de mathématiser les mathématiques? Création de la Logique : un calcul pour faire des preuves George Boole et Gottlob Frege Vers l Axiomatisation des Mathématiques Axiomatisation L axiomatisation des mathématiques est la tentative de mécaniser les mathématiques : évidences initiales simples (axiomes) méthodes d inférence logique très simples Par composition, il s agit d atteindre toute vérité mathématique. Certains Paradoxes Subsistaient Déf. Un paradoxe logique est un raisonnement apparemment très correct mais dont le résultat semble faux intuitivement. Exemple : un paradoxe de Zénon (-480-420) Zénon se tient à huit mètres d un arbre, tenant une pierre. Il lance sa pierre dans la direction de l arbre. Avant que le caillou puisse atteindre l arbre, il doit traverser la première moitié des huit mètres. Il faut un certain temps, non nul, à cette pierre pour se déplacer sur cette distance. Ensuite, il lui reste encore quatre mètres à parcourir, dont elle accomplit d abord la moitié, deux mètres, ce qui lui prend un certain temps. Puis la pierre avance d un 3
mètre de plus, progresse après d un demi-mètre et encore d un quart, et ainsi de suite ad infinitum et à chaque fois avec un temps non nul. Zénon en conclut que la pierre ne pourra pas frapper l arbre, puisqu il faudrait pour cela que soit franchie effectivement une série infinie d étapes, ce qui est impossible. Mais ce n est plus un paradoxe En terme moderne, on manipule l infini et on dit que 1 2 + 1 4 + 1 8 +... = 1 On écrit même sans... + k=1 1 2 k = 1 Russel : Le Paradoxe du Barbier Bertrand Russell (1872 1970) philosophe, logicien, homme politique,... Lettre à Frege, le 16 juin 1902 Le Barbier «Dans le village, le barbier rase toutes les personnes qui ne se rasent pas ellesmêmes» Mais qui rase le barbier?!? Si le barbier ne se rase pas lui-même alors c est le barbier (ie lui-même) qui doit le raser. Contradiction Si le barbier se rase lui-même, alors ce n est pas le barbier qui le rase. Re-Contradiction Plus Mathématiquement Cela renvoie à la notion d ensemble : x X : x est élément de X C est un objet simple et universel avec lequel (on espère) baser (solidement) les fondations des mathématiques. Considérons maintenant R = {X X / X} l ensemble des ensembles qui ne se contiennent pas eux-mêmes Est-ce que R R?... Mathématiquement, R R R / R. Tout-à-fait contradictoire. Est-ce que les mathématiques sont vraiment correctes? 4
Autres Exemples de Paradoxe Paradoxe du Crétois «Épiménide, penseur crétois, émit une affirmation immortelle : "Tous les Crétois sont des menteurs."» Comme il est Crétois, il ment, donc l affirmation est fausse, et il n est donc pas menteur! s il dit la vérité, alors c est contradictoire!?!?... La langue naturelle est trop "souple" et permet d écrire des phrases syntaxiquement correcte mais se révélant des énoncés faux, contradictoire ou sans aucun sens. => Logique mathématique comme langage rigoureux et opératoire. Revenons au Paradoxe de Russell Considérons R = {X X / X}. Le problème c est que la définition de R utilise la propre définition de R : auto-référence. L auto-référence désigne un procédé par lequel un énoncé parle de lui-même. Ex. : Cette phrase est vraie. Le terme "cette" renvoie à la phrase elle-même où le terme est utilisé. => Supprimons l auto-référence. C est ce qu essaie de faire Russell et Whitehead dans leur livre principia Mathematica. Cela permet d obtenir une théorie (à base de type) qui semble correcte, mais qui est assez complexe à définir, à cause des précautions à prendre pour éviter l auto-référence. Un Coup d Arrêt : le Théorème d Incomplétude Déf. Une théorie est complète si, pour tout énoncé φ, on peut déduire de ses axiomes soit une preuve de φ soit une preuve de φ C était l objectif : prouver rigoureusement toute vérité mathématique. 1. si on a une preuve de φ, alors φ est vrai 2. si on a une preuve de φ, alors la négation de φ est vraie, donc p hi est faux. Théorème d Incomplétude - Gödel (1931) Soit un système logique assez riche, alors soit sa théorie est contradictoire soit sa théorie est incomplète La vérité est différente de ce qui est prouvable 5
Assez riche signifie formellement : pouvant exprimer l arithmétique (les calculs sur les entiers). Dans ces systèmes, il existe des énoncés qui sont vrais mais dont il n existe pas de preuve. (ou bien l arithmétique est contradictoire ; ce qui est encore pire) Idée de la Preuve Considérons le théorème appelé φ G : φ G : Le théorème φ G n a pas de preuve. Ce théorème est vrai ou faux. S il est faux, il a une preuve. Contradiction. Ce théorème ne peut être que vrai, ou bien notre système est contradictoire. NB. Ici on prouve que le théorème φ G est vrai, pas qu il a une preuve. Ce sont deux choses distinctes. Mais n avait-on pas interdit l auto-référence?!? Certes mais Gödel va "ruser"... Un Peu Plus en Détails Numérotons les énoncés (de théorème). On utilise un encodage des énoncés en entiers naturels : appelé encodage de Gödel. 1. Th. 123 : Le nombre 23 est premier. 2. Th. 1234 : Le nombre 1234 est premier. 3. Th. 12345 : Le théorème 1234 n est pas démontrable. 4. toujours pas d autoréférence, ça va... 5. Th. 54321 : Le théorème 54321 n est pas démontrable 6. Si le système est assez riche, il n est pas possible d interdire l autoréférence Encodage de Gödel 3 Machines en Pratique Début de l Informatique Toute la Vérité n est pas atteignable, mais que peut-on atteindre? Théorème de Complétude, Gödel (1930) Dans un système du premier ordre, tout ce qui est vrai possède une preuve. Ici, "premier ordre" signifie que les énoncés peuvent parler d éléments d ensembles, mais pas d ensembles, d ensembles d ensembles, d ensembles d ensembles d ensembles d... Peut-on décider, de manière automatique, si un théorème est vrai (ie possède une preuve)? 6
Qu Est-Ce Qui Est Automatique? Règles simples et "mécaniques". Le Calcul Arithmétique addition, multiplication, division Formules Tables de logarithmes Charles Babbage (1791 1871) Charles Babbage était un mathématicien, philosophe, et ingénieur mécanicien. Il fut le premier à énoncer le principe d un ordinateur. C est en 1834, pendant le développement de la machine différentielle. qu il eut l idée d y incorporer des cartes du métier Jacquard, dont la lecture séquentielle donnerait des instructions et des données à sa machine, et donc imagina l ancêtre mécanique des ordinateurs d aujourd hui. 7
Babbage : Machine Différentielle (1822..) Il s agissait d une machine destinée au calcul et à l impression de tables mathématiques. Elle fonctionne en calculant efficacement, par différence, un polynôme de coefficients et degré arbitraires. Ceci permet d approximer les fonctions courantes (logatrithmes, fonctions trigonométriques, etc...) Babbage : Machine Analytique (1834..) Pour cette machine, Babbage définit les principaux concepts sur lesquels reposent les machines informatiques, soit : 8
un dispositif d entrée avec deux lecteurs de cartes perforées (programmes et données) ; un organe de commande gérant le transfert des nombres et leur mise en ordre pour le traitement ; un "magasin" permettant de stocker les résultats intermédiaires ou finaux ; un mécanisme (moulin) chargé d exécuter les opérations sur les nombres ; trois types d imprimantes. Cette machine peut être "programmée" en utilisant des cartes perforées (à la "jacquart"). Elle ne sera pas achevée du vivant de Babbage. L ingénierie des engrenages nécessitant une extrême précision. Ada Lovelace (1815 1852) It may be desirable to explain, that by the word operation, we mean any process which alters the mutual relation of two or more things, be this relation of what kind it may. This is the most general definition, and would include all subjects in the universe. In abstract mathematics, of course operations alter those particular relations which are involved in the considerations of number and space, and the results of operations are those peculiar results which correspond to the nature of the subjects of operation. But the science of operations, as derived from mathematics more especially, is a science of itself, and has its own abstract truth and value ; just as logic has its own peculiar truth and value, independently of the subjects to which we may apply its reasonings and processes. Augusta Ada, Comtesse de Lovelace, 1842 Ada Lovelace décrit le premier programme, permettant de calculer les nombres de Bernouilli. Le terme "programme" est en fait anachronique ici. 9
4 Machines en Théorie Alan Turing (1912 1954) Alan Turing était un mathématicien, un logicien, un cryptanalyste pendant la deuxième guerre mondiale, et un informaticien. C est également une icône de l Informatique comme en témoigne le "Google doodle" pour le centième anniversaire de sa naissance l an dernier. Une Machine à Calculer Simple et Universelle De quoi a-t-on besoin pour calculer? Collection de règles simples Une "feuille" pour écrire les calculs intermédiaires L opérateur doit suivre et appliquer les règles de manière "bureaucratique". La Machine de Turing Déf. un ensemble fini d états Q une table finie de règles de transitions T ( programme ) un ruban infini, sur lequel écrire des symboles de Σ ( mémoire ) une tête de lecture Etat du programme = état courant + position de la tête + ruban 10
Mode Opératoire Une opération consiste à lire la valeur sur le ruban à la position de la tête de lecture : x en fonction de l état courant q Q et de x, prendre la règle de T correspondante écrire une nouvelle valeur sur le ruban déplacer la tête à droite ou à gauche changer d état courant Calcul d une Fonction par une Machine de Turing Tableau de règles Les règles sont du type T : Q Σ Σ {g, d} Q (q 1, a) (b, g, q 2 ) Arrêt Lorsque plus aucune règle n est applicable, la machine s arrête. Pour obtenir le résultat On enregistre la valeur d entrée sur le ruban. On lance le calcul en suivant les règles. à l arrêt le résultat peut être lu sur le ruban 11
Une Machine Non-Electronique Vitesse d horloge : 0,05Hz :) Vidéo Cet ordinateur fonctionne sans électricité! 5 Machines Universelles Qu Est-Ce Qu Un Calcul? La machine de Turing est très séduisante par sa simplicité mais peut-être est-il possible de concevoir des machines plus puissantes. Fonctions Récursives Gödel remarque qu il est possible de faire des calculs très complexes avec l opération élémentaire de récursion. Exemple : calcul de factorielle f (n + 1) = (n + 1) f (n) 12
Une Autre Approche Church propose une approche plus "maths" : tout est fonction. On utilise la notation λ : λx.a + x 2 2 donne a + 4 => λ calcul Exemples pour le Calcul des Prédicats TRUE := λx.λy.x FALSE := λx.λy.y AND := λp.λq.p q p OR := λp.λq.p p q NOT := λp.λa.λb.p b a IFTHENELSE := λp.λa.λb.p a b On peut calculer 1 0 AND TRUE FALSE (λp.λq.p q p) TRUE FALSE β TRUE FALSE TRUE (λx.λy.x) FALSE TRUE β FALSE β représente la β réduction Unification Le Grand Modèle Unifié de l Informatique Machines de Turing = Récursivité = λ calcul Toutes ces méthodes de calculs ont la même puissance : elles permettent de calculer les mêmes fonctions (les fonctions calculables). 13
Auto-référence Th. de Gödel : on ne peut éviter l autoréférence. Peut-on l utiliser (en bien)? Machine de Turing Universelle Th. de Gödel : Moralité en Termes Modernes Programme et données sont la même chose : ce ne sont que des suites de symboles... Il existe une machine de Turing UNIV qui peut exécuter toutes les autres. Implications 1. Chaque machine M peut être décrite sous forme d une suite de 0 et 1. 2. On peut également calculer M 1 < M 2 >, ie effectuer le calcul M1 avec comme entrée M 2. 3. Un programme qui prend comme entrée d autre programmes est un compilateur. 4. On peut même calculer M < M > (=> autoréférence!) 5. En pratique, un compilateur de source C, lui-même écrit en C, peut se compiler luimême. 14
Indécidabilité : «Les Problèmes sans Solutions» Problème de l Arrêt Etant donné une machine M et une entrée E, est-ce que le calcul de M sur E s arrête? Est-ce qu il existe une machine HALT répondant à cette question? HALT < M, E >= 0 si M s arrête sur E, HALT < M, E >= 1 si M ne s arrête pas sur E. Ce problème n a pas de solution : Supposons que H ALT existe, Soit P < M >:= si HALT < M, M >= 0, alors boucler ; sinon s arrêter Que va faire P < P >? si ce calcul s arrête alors HALT < P, P >= 1 ce qui signifie que P < P > ne s arrête pas. Contradiction Des Ordinateurs Plus Puissants? Les machines de Turing ne peuvent tout calculer. Ne peut-on trouver d autre machines plus puissantes? La Thèse de Church-Turing Tout ce qui est calculable (au sens intuitif) l est par une machine de Turing. Affirmation philosophique que l on ne peut formellement prouver. Thèse généralement très bien admise. On vient donc de prouver qu il y aura toujours des problèmes sans solution. En pratique, cela signifie qu il n est pas possible d écrire un programme qui vérifie qu un logiciel n a pas de bug! 15
6 Et Les Vrais Ordinateurs Alors? Mais Les Ordinateurs? Von Neumann propose une architecture qui est très proche de la machine de Turing universelle : mémoire (qui contient données et programme) unité de contrôle (qui effectue le calcul) différences : unité arithmétique et logique : calculs spécialisés (pour calculer plus vite) entrées/sorties : interactivité (déjà présente chez Babbage) L Invention du Transistor (1947) En 1947, dans les laboratoires Bell, est mis au point un semi-conducteur. Un interrupteur que l on peut contrôler électriquement : l auto-référence électronique. 16
Conférence : Informatique H ISTOIRE DES S CIENCES Licence Physique-Chimie Tous Les Ordinateurs? Tous les ordinateurs ne sont capables que de faire les mêmes calculs que celui en Lego. Et les Langages de Programmation? Tous les langages de programmation standard sont Turing-complets. Ie, ils sont capables de faire les mêmes calculs que la machine de Turing. En particulier, il sotn capables de s interpréter eux-mêmes. Impératifs Basic, C, Fortran, Cobol, PHP, python, etc... Fonctionnels Haskell, Lisp, OCaml, Scheme,... Déclaratifs Prolog, Clips Et Internet? Le Réseau des réseaux, internet, relie des millions d ordinateurs entre eux. C est un système informatique complexe. Est-il plus puissant qu une machine de Turing? Non, il n est capable que d être ou plus rapide (systèmes parallèles) ou plus décentralisé et robuste aux pannes (systèmes distribués) Les Ordinateurs Quantiques? Un ordinateur quantique exploite les propriétés quantiques de la matière : superposition et intrication d états quantiques dans l espoir de construire des ordinateurs non pas plus puissant (même puissance qu une machine d e Turing) mais beaucoup plus rapides. bit classique : 0 ou 1 17
q-bit : superposition d états et intrication Rapide historique : en 1994, Peter Shor, chercheur chez AT&T, montre qu il est possible de factoriser des grands nombres dans un temps non exponentiel à l aide d un algorithme quantique. le 19 décembre 2001, IBM crée un calculateur quantique de 7 qubits et factorise le nombre 15 (!) grâce à l algorithme de Shor. en 2012, à l Université de Bristol un dispositif quantique optique est capable de factoriser le nombre 21 (!) 2013, la société D-Wave annonce une puce à 439 qbits... 7 Conclusion Machines Théoriques et Pratiques 1. L auto-référence induit des paradoxes logiques 2. L auto-référence est inévitable 3. L auto-référence est utilisable en pratique 4. Il n est pas possible de tout calculer 5. Les machines de Turing et autres peuvent toutes calculer la même chose y compris ce que calculent les ordinateurs actuels : il n existe qu un seul type d ordinateur 6. Tous les "nouveaux" modèles d ordinateurs ne sont pas plus puissants (mais calculent plus vite) pour augmenter la puissance, il faudrait pouvoir faire une "infinité" d opérations en un pas de calcul Crédits Figures Wikimedia CC-BY-SA 18