Informatique Machines à calculer en théorie et en pratique



Documents pareils
Machines virtuelles Cours 1 : Introduction

Calculabilité Cours 3 : Problèmes non-calculables.

Algorithmique et Programmation Fonctionnelle

Évaluation et implémentation des langages

"Calcul et hyper-calcul"

Histoire de l Informatique

Cours 1 : La compilation

Éléments de programmation et introduction à Java

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Utilisation des tableaux sémantiques dans les logiques de description

6. Les différents types de démonstrations

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Introduction à l Informatique licence 1 ère année Notes de Cours

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur

Architecture matérielle des systèmes informatiques

Corps des nombres complexes, J Paul Tsasa

Rappels sur les suites - Algorithme

Initiation au binaire

Réalisabilité et extraction de programmes

La physique quantique couvre plus de 60 ordres de grandeur!

Informatique Générale

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Intelligence Artificielle et Robotique

Algorithme. Table des matières

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Chapitre 2. Eléments pour comprendre un énoncé

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

TP 1. Prise en main du langage Python

Faut-il tout démontrer?

Initiation à la Programmation en Logique avec SISCtus Prolog

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

La fonction exponentielle

Introduction à l étude des Corps Finis

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Algèbre binaire et Circuits logiques ( )

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Cours de Master Recherche

Photons, expériences de pensée et chat de Schrödinger: une promenade quantique

STAGE IREM 0- Premiers pas en Python

Conversion d un entier. Méthode par soustraction

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

UNIVERSITY OF MALTA FACULTY OF ARTS. French as Main Area in an ordinary Bachelor s Degree

TO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Initiation à l algorithmique

Factorisation d entiers (première partie)

Peut-on tout programmer?

Bases de programmation. Cours 5. Structurer les données

La Tête à Toto par Henri Bokilo

Filtrage stochastique non linéaire par la théorie de représentation des martingales

TABLE DES MATIÈRES CHAPITRE I. Les quanta s invitent

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

statique J. Bertrand To cite this version: HAL Id: jpa

Il y a trois types principaux d analyse des résultats : l analyse descriptive, l analyse explicative et l analyse compréhensive.

CH.3 SYSTÈMES D'EXPLOITATION

Les indices à surplus constant

Représentation d un entier en base b

Table des matières. I Mise à niveau 11. Préface

Fondements de l informatique Logique, modèles, et calculs

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Présentation du langage et premières fonctions

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Calcul quantique : algèbre et géométrie projective

L ordinateur quantique (suite)

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Qu est-ce qu un ordinateur quantique et à quoi pourrait-il servir?

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

Introduction à la Sécurité Informatique

Théorie des Langages

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Programmes des classes préparatoires aux Grandes Ecoles

Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte

1 L évolution de l informatique

Informatique et Société : une brève histoire

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Représentation des Nombres

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

DOCM Solutions officielles = n 2 10.

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

Maple: premiers calculs et premières applications

Définitions. Numéro à préciser. (Durée : )

Conception des systèmes répartis

Calculateur quantique: factorisation des entiers

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Premiers pas avec Mathematica

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Correction de l examen de la première session

MPI Activité.10 : Logique binaire Portes logiques

Table des matières. Introduction

Transcription:

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