Passez au Patch Tuesday : c'est le jour d'Ada Lovelace ! Intelligence des données PlatoBlockchain. Recherche verticale. Aï.

Déplacez-vous sur Patch Tuesday - c'est Ada Lovelace Day!

Le deuxième mardi de chaque mois est le jour régulier de Microsoft pour les mises à jour de sécurité, encore connu par presque tout le monde sous son surnom officieux de "Patch Tuesday".

Mais le deuxième mardi d'octobre est aussi Journée d'Ada Lovelace, célébrer Ada, comtesse de Lovelace.

Ada était une véritable pionnière non seulement de l'informatique, mais aussi de l'informatique, et a donné son nom au langage de programmation Ada.

Curieusement, le langage Ada a émergé d'un projet du Département américain de la Défense visant à « débabéliser » le monde du codage gouvernemental, où chaque département semblait favoriser une langue différente, ou un dialecte différent, ce qui le rendait plus difficile, plus coûteux et plus coûteux. moins fiables pour les faire travailler ensemble.

Ada avait de nombreuses fonctionnalités syntaxiques visant à améliorer la lisibilité et à éviter les erreurs courantes. Contrairement aux commentaires en C, qui commencent par /* et courir jusqu'au prochain */, peut-être plusieurs lignes plus tard, Ada ignore simplement quoi que ce soit après -- sur n'importe quelle ligne, afin que les commentaires ne puissent pas s'étendre accidentellement plus loin que prévu. Au lieu d'enfermer tous les blocs de code multiligne entre crochets ondulés ({...}, aussi connu sous le nom bretelles), Ada a un terminateur unique pour chaque type de bloc multiligne, par exemple end record, end loop ainsi que end if. Ada Lovelace, nous soupçonnons, aurait applaudi la clarté de son langage homonyme, mais Ada-le-langage n'a jamais vraiment fait son chemin, et la syntaxe des crochets ondulés de C a largement gagné la journée, avec Python peut-être le seul langage sans crochets dans utilisation généralisée. Les crochets ondulés sont un aspect essentiel de C, C++, C#, Go, Java, JavaScript, Perl, Rust et de nombreux autres langages populaires.

L'ère d'Ada Lovelace

Vous pourriez être surpris de découvrir, étant donné à quel point le nom d'Ada est associé aux débuts de l'informatique, qu'elle a vécu dans la première moitié du XIXe siècle, bien avant que tout ce que nous reconnaissons actuellement comme un ordinateur, ou même une calculatrice, n'existe. .

(Ada est décédée d'un cancer de l'utérus en 1852 à seulement 36 ans.)

Mais bien que les ordinateurs dans leur sens moderne n'existaient pas dans les années 1800, ils très proche de fait.

Voici comment cela s'est presque passé.

Charles Babbage, au début des années 1800, a conçu un dispositif de calcul mécanique appelé le Moteur de différence qui pourrait, en théorie du moins, résoudre automatiquement des équations polynomiales au sixième degré, par exemple en trouvant des valeurs pour X qui satisferaient :

aX6 +bX5 +cX4 +dX3 +ex2 + fX + g = 0

Le gouvernement britannique était intéressé, car un dispositif de ce type pouvait être utilisé pour créer des tables mathématiques précises, telles que des racines carrées, des logarithmes et des rapports trigonométriques.

Et toute machine douée pour les calculs trigonométriques serait également pratique pour calculer des choses comme les tables de tir qui pourraient révolutionner la précision de l'artillerie sur terre et sur mer.

Mais Babbage avait deux problèmes.

Tout d'abord, il n'a jamais pu atteindre la précision technique nécessaire pour que le moteur de différence fonctionne correctement, car il impliquait suffisamment d'engrenages imbriqués pour que le jeu (infimes mais cumulatives inexactitudes conduisant à un «négligence» dans le mécanisme) le bloque.

Deuxièmement, il semble avoir perdu tout intérêt pour le Difference Engine lorsqu'il s'est rendu compte que c'était une impasse - en termes modernes, vous pouvez le considérer comme une calculatrice de poche, mais pas comme une tablette ou un ordinateur portable.

Babbage a donc pris les devants avec la conception d'un appareil encore plus complexe qu'il a surnommé le Moteur analytique, qui pourrait résoudre des problèmes scientifiques beaucoup plus généraux qu'une sorte d'équation polynomiale.

Peut-être sans surprise, si malheureusement avec le recul. le gouvernement n'était pas très intéressé à financer le projet plus avancé de Babbage.

Étant donné qu'il n'avait pas réussi à construire le mécanisme nécessaire pour un solveur d'équations beaucoup plus simple, quelle chance avait un ordinateur géant à vapeur à usage général de jamais fournir des résultats utiles ?

Le circuit européen des conférences

Dans une étrange tournure de coopération internationale et multilingue, Babbage s'est rendu en Italie pour donner une conférence faisant la promotion de son moteur analytique.

Dans le public se trouvait un ingénieur militaire du nom de capitaine Luigi Menabrea, qui fut ainsi inspiré de coopérer avec Babbage pour produire un article de 1842 décrivant la machine.

Bien qu'italien, Menabrea a publié son article en français…

… et c'est Ada Lovelace qui a ensuite traduit l'article de Menabrea en anglais.

À la demande de Babbage, Ada a également ajouté une série de Notes du traducteur, qui s'est avéré non seulement plus de deux fois plus long que le rapport original de Menabrea, mais aussi plus perspicace, expliquant plusieurs caractéristiques importantes de ce que nous appellerions maintenant un ordinateur à usage général.

Walter Isaacson, dans son livre très lisible Les innovateurs, publié en 2014, décrit comment Ada "exploré quatre concepts qui auraient une résonance historique un siècle plus tard, lorsque l'ordinateur serait enfin né":

  • Ada a reconnu que le moteur analytique, contrairement au moteur de différence, était vraiment un appareil à usage général, parce qu'il pouvait non seulement être programmé pour faire une chose, mais aussi, et relativement facilement, être reprogrammé pour effectuer une tâche complètement différente.

Selon les propres mots d'Ada (c'était une époque où la littérature scientifique était encore plus en contact avec la littérature qu'elle ne le fait peut-être aujourd'hui):

Le Difference Engine ne peut en réalité (comme cela a déjà été expliqué en partie) rien d'autre qu'ajouter ; et tous les autres processus, sans en excepter ceux de simple soustraction, multiplication et division, ne peuvent être exécutés par lui que dans la mesure où il est possible, par un arrangement et des artifices mathématiques judicieux, de les réduire à une série d'additions. La méthode des différences est, en fait, une méthode des additions ; et comme il comprend dans ses moyens un plus grand nombre de résultats pouvant être obtenus par addition simple, que tout autre principe mathématique, il a été très justement choisi comme base sur laquelle construire une machine à additionner, afin de donner aux pouvoirs d'une telle machine la gamme la plus large possible. La Machine Analytique, au contraire, peut soit additionner, soustraire, multiplier ou diviser avec une égale facilité ; et effectue chacune de ces quatre opérations d'une manière directe, sans l'aide d'aucune des trois autres. Ce seul fait implique tout ; et il est à peine nécessaire de souligner, par exemple, que tandis que la Machine Différente peut simplement tabuler, et est incapable de développer, la Machine Analytique peut soit tabuler, soit développer.

  • Ada s'est rendu compte que le moteur analytique ne se limitait pas à l'encodage et au calcul avec des nombres. Bien que numériques, et basées sur une capacité à effectuer des calculs numériques, ces opérations numériques, a-t-elle expliqué, pourraient en théorie représenter des propositions logiques (comme nous le tenons pour acquis aujourd'hui dans if ... then ... else ... end if déclarations), des notes de musique, etc.

Comme le dit Ada :

[La machine analytique] pourrait agir sur d'autres choses que le nombre, si des objets étaient trouvés dont les relations fondamentales mutuelles pourraient être exprimées par celles de la science abstraite des opérations, et qui devraient également être susceptibles d'adaptations à l'action de la notation opératoire et du mécanisme de le moteur. En supposant, par exemple, que les relations fondamentales des sons accordés dans la science de l'harmonie et de la composition musicale soient susceptibles de telles expressions et adaptations, le moteur pourrait composer des morceaux de musique élaborés et scientifiques de n'importe quel degré de complexité ou d'étendue. a machine analytique est une incarnation de la science des opérations, construite avec une référence particulière au nombre abstrait comme sujet de ces opérations.

  • Ada a proposé le concept de réutiliser des parties de ce que nous appelons maintenant des programmes. En ce sens, on peut dire qu'elle a inventé le concept de sous-programme, y compris les sous-programmes récursifs (fonctions qui simplifient la solution en décomposant un calcul en une série de sous-calculs similaires, puis en s'appelant elles-mêmes).
  • Ada a d'abord utilement abordé la question « Les machines peuvent-elles penser ? C'est une question qui nous préoccupe depuis.

La connexion Frankenstein

Le père d'Ada (bien qu'elle ne l'ait jamais rencontré) était le tristement célèbre poète Lord Byron, qui a passé des vacances mémorables en Suisse en écrivant des histoires d'horreur avec ses copains littéraires Percy et Mary Shelley.

Les efforts de Byron et Percy Shelley dans ce concours amical d'écriture sont totalement oubliés aujourd'hui, mais le roman fondateur de Mary Shelley Frankenstein; ou, Le Prométhée moderne (publié en 1818) est populaire et respecté à ce jour.

L'histoire de Frankenstein a exploré les dilemmes moraux entourant ce que nous pourrions aujourd'hui appeler l'intelligence artificielle. (Frankenstein, n'oubliez pas, était le scientifique qui a mené l'expérience, pas l'IA qui a émergé du projet.)

Ada, cependant, ne semblait pas partager les préoccupations dystopiques de l'ami de son père concernant les moteurs analytiques, ou même les ordinateurs en général.

Elle a exprimé l'avis, dans la dernière partie de son Notes du traducteur, cette:

La machine analytique n'a aucune prétention à générer quoi que ce soit. Il peut faire tout ce que nous savons comment lui ordonner de fonctionner. Il peut suivre l'analyse ; mais il n'a aucun pouvoir d'anticiper des relations analytiques ou des vérités. Son domaine est de nous aider à mettre à disposition ce que nous connaissons déjà. C'est ce qu'il est calculé pour effectuer principalement et principalement, bien sûr, par l'intermédiaire de ses facultés exécutives ; mais elle est susceptible d'exercer une influence indirecte et réciproque sur la science elle-même d'une autre manière. Car, en distribuant et en combinant les vérités et les formules d'analyse de manière à ce qu'elles deviennent le plus facilement et le plus rapidement susceptibles de se soumettre aux combinaisons mécaniques du moteur, les relations et la nature de nombreux sujets dans cette science sont nécessairement jetées sous de nouveaux éclairages, et plus profondément étudié. C'est une conséquence décidément indirecte, et quelque peu spéculative, d'une telle invention.

Un peu plus de 100 ans plus tard, quand Alan Turing a revisité la question de l'intelligence artificielle dans son propre article Informatique et intelligence, et a présenté son désormais célèbre test de Turing, il a surnommé cela L'objection de Lady Lovelace.

Que faire?

La prochaine fois que vous vous retrouverez à écrire du code tel que…

   -- Une chose géniale : la fonction Ackermann. -- Calculable, mais pas récursif primitif ! -- (Vous ne pouvez pas l'écrire avec de simples boucles for --, mais vous pouvez être sûr qu'il se terminera, -- même si cela prend beaucoup de temps.) local ack = function(m,n) if m == 0 puis retour n+1 fin si n == 0 alors retour ack(m-1,1) end return ack(m-1,ack(m,n-1)) end

… rappelez-vous que les sous-programmes récursifs de ce type ont tous commencé dans l'imagination scientifique de quelqu'un qui savait à quoi un ordinateur devrait ressembler et à quoi il ressemblerait probablement, mais qui a pourtant vécu (et malheureusement est mort très jeune) 100 ans avant un tel appareil jamais existait pour elle de pirater pour de vrai.

Le piratage sur des ordinateurs réels est une chose, mais le piratage délibéré sur des ordinateurs imaginaires est, de nos jours, quelque chose que nous ne pouvons qu'imaginer.

Bonne journée Ada Lovelace !


Horodatage:

Plus de Sécurité nue