211service.com
L'importance durable de Turing
Quand Alan Turing est né il y a 100 ans, le 23 juin 1912, un ordinateur n'était pas une chose, c'était une personne. Des ordinateurs, dont la plupart étaient des femmes, ont été embauchés pour effectuer des calculs répétitifs pendant des heures. La pratique remontait aux années 1750, lorsqu'Alexis-Claude Clairaut recruta deux collègues astronomes pour l'aider à tracer l'orbite de la comète de Halley. L'approche de Clairaut consistait à découper le temps en segments et, à l'aide des lois de Newton, à calculer les changements de position de la comète lorsqu'elle passait Jupiter et Saturne. L'équipe a travaillé pendant cinq mois, répétant le processus encore et encore tout en traçant lentement la trajectoire des corps célestes.
Aujourd'hui, nous appelons ce processus la simulation dynamique ; Les contemporains de Clairaut appelaient cela une abomination. Ils voulaient une science des lois fondamentales et de belles équations, pas des tables et des tables de nombres. Pourtant, son équipe a fait une prédiction précise du périhélie de la comète de Halley. Au cours du siècle et demi suivant, les méthodes informatiques en vinrent à dominer l'astronomie et l'ingénierie.
Cette histoire faisait partie de notre numéro de mars 2012
- Voir le reste du numéro
- S'abonner
Au moment où Turing entra au King's College en 1931, les ordinateurs humains avaient été utilisés à des fins très diverses et souvent assistés par des machines à calculer. Des cartes perforées ont été utilisées pour contrôler les métiers à tisser et tabuler les résultats du recensement américain. Les appels téléphoniques étaient commutés à l'aide de numéros composés sur une sonnerie et interprétés par une série de relais à 10 étapes. Les caisses enregistreuses étaient omniprésentes. Un millionnaire n'était pas seulement une personne très riche, c'était aussi une calculatrice mécanique qui pouvait multiplier et diviser à une vitesse étonnante.
Toutes ces machines étaient fondamentalement limitées. Ils n'étaient pas seulement plus lents, moins fiables et considérablement plus pauvres en mémoire que les ordinateurs d'aujourd'hui. Fondamentalement, les machines à calculer et à commuter des années 1930 - et celles qui seront introduites pendant de nombreuses années à venir - ont chacune été construites dans un but spécifique. Certaines machines pouvaient effectuer des manipulations mathématiques, certaines pouvaient même suivre une séquence d'instructions variable, mais chaque machine disposait d'un répertoire fini d'opérations utiles. Les machines n'étaient pas polyvalentes. Ils n'étaient pas programmable.
Choses examinées
Cathédrale de Turing : aux origines de l'univers numérique
Georges Dyson
Livres du Panthéon, 2012Quand les ordinateurs étaient humains
David alan Grier
Presse universitaire de Princeton, 2005
Alan Turing : L'énigme
Andrew Hodges
Simon & Schuster, 1983
Pendant ce temps, les mathématiques étaient en difficulté.
Au début des années 1920, le grand mathématicien allemand David Hilbert avait proposé de formaliser toutes les mathématiques en termes d'un petit nombre d'axiomes et d'un ensemble de preuves cohérentes. Hilbert a imaginé une technique qui pourrait être utilisée pour valider des déclarations mathématiques arbitraires - prendre une déclaration telle que x + y = 3 et x - y = 3 et déterminer si elle était vraie ou fausse. Cette technique ne reposerait pas sur la perspicacité ou l'inspiration du mathématicien ; il devait être reproductible, enseignable et suffisamment simple pour être suivi par un ordinateur (au sens de Hilbert du terme). Un tel système de preuve d'énoncé serait en effet puissant, car de nombreux aspects du monde physique peuvent être facilement décrits comme un ensemble d'équations. Si l'on était capable d'appliquer une procédure reproductible pour savoir si un énoncé mathématique est vrai ou faux, alors les vérités fondamentales sur la physique, la chimie, la biologie - même la société humaine - seraient découvertes non pas par des expériences en laboratoire mais par des mathématiciens à un tableau noir. .
Mais en 1931, un logicien autrichien nommé Kurt Gödel a présenté son théorème d'incomplétude dévastateur. Il a montré que pour tout système mathématique utile, il est possible de créer des énoncés qui sont vrais mais ne peuvent pas être prouvés. Puis est venu Turing, qui a conduit le dernier enjeu dans le projet de Hilbert et, ce faisant, a ouvert la voie à l'avenir de l'informatique.
Comme Turing l'a montré, le problème n'est pas seulement que certaines affirmations mathématiques sont impossibles à prouver ; en fait, aucune méthode ne peut être conçue qui puisse déterminer dans tous les cas si une déclaration donnée est prouvable ou non. C'est-à-dire que toute déclaration au tableau peut être vraie, peut être fausse, peut être impossible à prouver… et il est souvent impossible de déterminer laquelle. Les mathématiques étaient fondamentalement limitées, non par l'esprit humain, mais par la nature des mathématiques elles-mêmes.
La chose brillante et étonnante était la façon dont Turing procédait à sa preuve. Il a inventé un formalisme logique qui décrivait comment un ordinateur humain, appris à suivre un ensemble complexe d'opérations mathématiques, les exécuterait réellement. Turing ne comprenait pas comment fonctionnait la mémoire humaine, il l'a donc modélisé comme une longue bande qui pouvait aller et venir et sur laquelle des symboles pouvaient être écrits, effacés et lus. Il ne savait pas comment fonctionnait l'apprentissage humain, alors il l'a modélisé comme un ensemble de règles que l'humain suivrait en fonction du symbole actuellement devant elle et d'une sorte d'état d'esprit interne. Turing a décrit le processus avec une telle précision qu'en fin de compte, un ordinateur humain n'était même pas nécessaire pour l'exécuter - une machine pourrait le faire à la place. Turing appelait cette entité théorique la machine automatique ou une machine ; aujourd'hui, nous l'appelons une machine de Turing.
Dans un article de 1936, Turing a prouvé que l'a-machine pouvait résoudre n'importe quel problème informatique pouvant être décrit comme une séquence d'étapes mathématiques. De plus, il a montré qu'une a-machine pouvait simuler une autre a-machine. Ce qui a donné à la machine ce pouvoir, c'est que sa bande pouvait stocker à la fois des données et des instructions. Selon les mots de l'historien des sciences George Dyson, la bande contenait les deux chiffres qui moyenne des choses et des nombres qui faire des choses.
Le travail de Turing était transformateur. Il était clair pour les concepteurs des premiers ordinateurs électroniques que les machines à calculer n'avaient pas besoin d'un énorme inventaire d'instructions ou d'opérations fantaisistes - tout ce dont ils avaient besoin était de quelques registres toujours disponibles (l'état d'esprit) et d'une mémoire pouvant contenir à la fois des données et du code. Les concepteurs pouvaient procéder avec la certitude mathématique que les machines qu'ils construisaient seraient capables de résoudre n'importe quel problème que les humains pourraient programmer.
Ces idées ont fourni la formulation mathématique des ordinateurs numériques d'aujourd'hui, bien que ce soit John von Neumann qui ait repris les idées de Turing et soit crédité de la conception des machines. La conception de Von Neumann avait un noyau central qui récupérait à la fois les instructions et les données de la mémoire, effectuait des opérations mathématiques, stockait les résultats, puis se répétait. La machine peut également interroger le contenu de plusieurs emplacements en mémoire si nécessaire. Ce que nous appelons maintenant l'architecture von Neumann est au cœur de chaque microprocesseur et mainframe de la planète. C'est nettement plus efficace que la machine a, mais mathématiquement, c'est la même chose.
Incidemment, cette caractéristique essentielle des ordinateurs aide à expliquer pourquoi la cybersécurité est l'un des problèmes les plus troublants de l'ère moderne. D'une part, Turing a montré que toutes les machines a sont équivalentes les unes aux autres, ce qui permet à un attaquant de prendre le contrôle d'un ordinateur cible et de lui faire exécuter un programme de son choix. De plus, parce qu'il n'est pas toujours possible de discerner ce qui peut être prouvé, une machine de Turing ne peut pas, peu importe la quantité de mémoire, la vitesse ou le temps dont elle dispose, évaluer la conception d'une autre machine de Turing et déterminer de manière fiable si la deuxième machine, une fois qu'elle lui a été donnée une certaine entrée, finira jamais ses calculs. Cela rend impossible la détection parfaite des virus. Il est impossible pour un programme d'évaluer un logiciel inédit et de déterminer s'il est malveillant sans l'exécuter. Le programme pourrait être bénin. Ou il peut fonctionner pendant des années avant d'effacer les fichiers de l'utilisateur. Il n'y a aucun moyen de savoir avec certitude sans exécuter le programme.
En 1938, Turing a commencé à travailler avec le gouvernement britannique et a finalement aidé à concevoir une série de machines pour déchiffrer les codes utilisés par les Allemands pendant la Seconde Guerre mondiale. La meilleure source pour cette histoire est la biographie d'Andrew Hodges Alan Turing : L'énigme. Malheureusement, certains détails sur le travail de Turing en temps de guerre n'ont été déclassifiés qu'en 2000, 17 ans après le livre de Hodges (et près de 50 ans après le suicide de Turing). En conséquence, ses contributions complètes n'ont pas été bien racontées.
De nombreuses histoires de l'informatique donnent l'impression qu'il s'agissait d'un simple ensemble de décisions d'ingénierie d'utiliser des cartes perforées, puis des relais, puis des tubes et enfin des transistors pour construire des machines informatiques. Mais ce n'était pas le cas. Les machines à usage général nécessitaient la compréhension fondamentale de Turing selon laquelle les données et le code peuvent être représentés de la même manière. Et gardez à l'esprit que tous les ordinateurs d'aujourd'hui ont été développés à l'aide d'ordinateurs plus lents, qui à leur tour ont été conçus avec des ordinateurs encore plus lents. Si Turing n'avait pas fait sa découverte quand il l'a fait, la révolution informatique aurait pu être retardée de plusieurs décennies.
ENFANTS rédacteur en chef adjoint Simson L. Garfinkel est professeur agrégé d'informatique à la Naval Postgraduate School. Ses opinions ne représentent pas la politique officielle du gouvernement des États-Unis ou du ministère de la Défense.
