Liikuge üle plaastri teisipäevast – on Ada Lovelace'i päev! PlatoBlockchaini andmete luure. Vertikaalne otsing. Ai.

Liigu üle plaastri teisipäevast – see on Ada Lovelace'i päev!

Iga kuu teine ​​teisipäev on Microsofti tavapärane turvavärskenduste päev, mida peaaegu kõik teavad endiselt mitteametliku hüüdnimega “Patch Tuesday”.

Aga ka oktoobri teine ​​teisipäev on Ada Lovelace'i päev, tähistame Ada, Lovelace'i krahvinna.

Ada oli mitte ainult andmetöötluse, vaid ka arvutiteaduse tõeline pioneer ja andis oma nime programmeerimiskeelele Ada.

Ada keel tekkis intrigeerival kombel USA kaitseministeeriumi projektist, mille eesmärk oli "debabeliseerida" valitsuse kodeerimise maailma, kus iga osakond näis eelistavat erinevat keelt või erinevat keelemurdet, muutes selle keerulisemaks, kallimaks ja kallimaks. vähem usaldusväärsed, et panna need koos töötama.

Adal oli arvukalt süntaktilisi funktsioone, mille eesmärk oli parandada loetavust ja vältida levinud vigu. Erinevalt kommentaaridest C-s, mis algavad tähega /* ja jookse kuni järgmiseni */, võib-olla palju ridu hiljem ignoreerib Ada midagi pärast seda -- ühel real, nii et kommentaarid ei saaks kogemata kaugemale kui olete ette näinud. Selle asemel, et panna kõik mitmerealised koodiplokid kaldsulgudesse ({...}, tuntud ka kui traksid), Adal on iga mitmerealise ploki jaoks unikaalne terminaator, nt end record, end loop ja end if. Arvame, et Ada Lovelace oleks kiitnud oma nimekaimu keele selgust, kuid Ada-keel pole kunagi päriselt silma jäänud ja C käänuline sulgude süntaks on suures osas võitnud päeva, kusjuures Python on võib-olla ainuke sulgkeeleta keel maailmas. laialdast kasutamist. Squiggly sulud on C, C++, C#, Go, Java, JavaScripti, Perli, Rusti ja paljude teiste populaarsete keelte oluline aspekt.

Ada Lovelace'i ajastu

Arvestades, kui tugevalt on Ada nimi seotud arvutiteaduse algusaegadega, võite olla üllatunud, et ta elas XIX sajandi esimesel poolel, ammu enne seda, mida me praegu arvuti või isegi kalkulaatorina tunneme. .

(Ada suri emakavähki 1852. aastal, olles vaid 36-aastane.)

Kuid kuigi arvuteid nende tänapäevases tähenduses 1800. aastatel ei eksisteerinud, olid nad väga peaaegu tegi.

Siin on, kuidas see peaaegu juhtus.

Charles Babbage töötas 1800. aastate alguses kuulsalt välja mehaanilise arvutusseadme nimega Erinevuse mootor mis võiks vähemalt teoreetiliselt automaatselt lahendada polünoomvõrrandid kuuendas astmes, nt leides X väärtused, mis rahuldaksid:

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

Ühendkuningriigi valitsus oli huvitatud, sest seda tüüpi seadet saab kasutada täpsete matemaatiliste tabelite, näiteks ruutjuurte, logaritmide ja trigonomeetriliste suhendite loomiseks.

Ja mis tahes masin, mis oskab hästi teha trigonomeetrilisi arvutusi, oleks mugav ka selliste asjade arvutamiseks nagu kahurilauad, mis võivad muuta suurtükiväe täpsust maal ja merel.

Kuid Babbage'il oli kaks probleemi.

Esiteks ei suutnud ta kunagi päris täpselt saavutada Difference Engine'i õigeks tööks vajalikku tehnilist täpsust, kuna see hõlmas piisavalt palju blokeerivaid käike, et tagasilöök (pisikesed, kuid kumulatiivsed ebatäpsused, mis põhjustavad mehhanismi "lohakust") lukustaksid selle.

Teiseks tundub, et ta kaotas huvi Difference Engine'i vastu, kui sai aru, et see on ummiktee – tänapäeva mõistes võib seda mõelda kui taskukalkulaatorit, aga mitte tahvelarvutit või sülearvutit.

Nii et Babbage hüppas edasi veelgi keerukama seadme disainiga, mille ta nimetas Analüütiline mootor, mis võiks lahendada palju üldisemaid teaduslikke probleeme kui ühte tüüpi polünoomvõrrand.

Võib-olla pole üllatav, kui tagantjärele mõeldes kahetsusväärselt. valitsus ei olnud Babbage'i arenenuma projekti rahastamisest väga huvitatud.

Arvestades, et tal ei olnud õnnestunud luua palju lihtsama võrrandilahendaja jaoks vajalikku mehhanismi, siis milline võimalus oli hiiglaslikul, aurujõul töötaval üldotstarbelisel arvutil kunagi kasulikke tulemusi anda?

Euroopa konverentsiring

Rahvusvahelise ja mitmekeelse koostöö uudishimuliku keerdkäiguna sõitis Babbage Itaaliasse, et pidada loengut, mis tutvustas oma analüütilist mootorit.

Publiku hulgas oli sõjaväeinsener nimega kapten Luigi Menabrea, kes sai seega inspiratsiooni teha koostööd Babbage'iga, et koostada 1842. aastal masinat kirjeldav paber.

Kuigi ta oli itaallane, avaldas Menabrea oma artikli prantsuse keeles…

…ja see oli Ada Lovelace, kes seejärel tõlkis Menabrea paberi inglise keelde.

Babbage'i tungival soovil lisas Ada ka rea Tõlkija märkmed, mis osutus mitte ainult üle kahe korra pikemaks kui Menabrea esialgne aruanne, vaid ka sisukamaks, selgitades mitmeid olulisi omadusi, mida me nüüd nimetaksime üldotstarbeliseks arvutiks.

Walter Isaacson oma suurepäraselt loetavas raamatus Uuendajad2014. aastal avaldatud, kirjeldab, kuidas Ada "uuris nelja kontseptsiooni, millel oleks ajalooline resonants sajand hiljem, kui arvuti lõpuks sündis":

  • Ada tõdes, et erinevalt Difference Engine'ist oli analüütiline mootor tõeliselt üldotstarbeline seade, sest seda ei saa programmeerida mitte ainult ühte asja tegema, vaid ka suhteliselt lihtsalt ümber programmeerida mõne täiesti erineva ülesande täitmiseks.

Ada enda sõnadega (see oli ajastu, mil teaduskirjandusel oli kirjandusega siiski rohkem kontakti kui praegu):

Erinevusmootor ei saa tegelikkuses (nagu juba osaliselt selgitatud) muud teha kui lisada; ja mis tahes muid protsesse, välja arvatud lihtsa lahutamise, korrutamise ja jagamise protsessid, saab see läbi viia ainult niivõrd, kuivõrd on võimalik mõistliku matemaatilise paigutuse ja tehislike vahenditega taandada need liitmiste jadaks. Erinevuste meetod on tegelikult liitmise meetod; ja kuna see sisaldab oma vahenditest suuremat arvu lihtsalt liitmise teel saavutatavaid tulemusi kui ükski teine ​​matemaatiline põhimõte, valiti see lisamismasina koostamise aluseks väga sobivalt, et anda sellise masina võimsused. võimalikult laia valikut. Analüütiline mootor, vastupidi, võib kas liita, lahutada, korrutada või jagada võrdse võimalusega; ja sooritab kõik need neli toimingut otse, ilma ühegi ülejäänud kolme abita. See üks fakt eeldab kõike; ja vaevalt on vaja välja tuua näiteks seda, et kuigi erinevuste mootor suudab lihtsalt tabelit koostada ja seda ei saa areneda, võib analüütiline mootor kas tabeldada või areneda.

  • Ada mõistis, et analüütiline mootor ei piirdunud ainult numbrite kodeerimise ja arvutamisega. Kuigi need on digitaalsed ja põhinevad arvuliste arvutuste tegemise võimel, võivad need digitaalsed operatsioonid kujutada teoreetiliselt loogilisi väiteid (nagu me tänapäeval iseenesestmõistetavaks peame if ... then ... else ... end if avaldused), noodid jne.

Nagu Ada ütles:

[Analüütiline mootor] võis peale arvu toimida ka muudele asjadele, kui leitakse objekte, mille omavahelisi fundamentaalseid seoseid saaks väljendada abstraktse operatsiooniteaduse omadega ja mis peaksid samuti olema vastuvõtlikud kohanemisele operatsioonimärgistuse ja mehhanismi toimega. mootor. Kui oletada näiteks, et harmoonia ja muusikalise kompositsiooni teaduses on helikõrguste põhisuhted sellisele väljendusele ja kohandustele vastuvõtlikud, võib mootor komponeerida keerukaid ja teaduslikke muusikateoseid mis tahes keerukuse või ulatusega. Analüütiline mootor on operatsioonide teaduse kehastus, mis on konstrueeritud omapärase viitega abstraktsele arvule kui nende operatsioonide subjektile.

  • Ada tuli välja ideega taaskasutada osi sellest, mida me praegu nimetame programmideks. Selles mõttes võib öelda, et ta on leiutanud alamprogrammi kontseptsiooni, sealhulgas rekursiivsed alamprogrammid (funktsioonid, mis lihtsustavad lahendust, jagades arvutuse sarnasteks alamarvutusteks ja kutsudes end seejärel välja).
  • Ada käsitles kõigepealt kasulikult küsimust "Kas masinad suudavad mõelda?" See on probleem, mis on meile sellest ajast peale muret valmistanud.

Frankensteini seos

Ada isa (kuigi ta teda kunagi ei kohanud) oli kurikuulus poeet Lord Byron, kes veetis meeldejäävalt vihmase puhkuse Šveitsis, kirjutades koos oma kirjandussõprade Percy ja Mary Shelleyga õudusjutte.

Byroni ja Percy Shelley jõupingutused sellel sõbralikul kirjutamisvõistlusel on tänapäeval täielikult unustatud, kuid Mary Shelley põhjapanev romaan Frankenstein; või Moodne Prometheus (ilmus 1818) on populaarne ja austatud tänaseni.

Frankensteini lugu uuris kuulsalt moraalseid dilemmasid, mis ümbritsevad seda, mida me tänapäeval võime nimetada tehisintellektiks. (Ärge unustage, et Frankenstein oli eksperimendi läbiviija teadlane, mitte projektist välja tulnud tehisintellekt.)

Ada aga ei paistnud jagavat oma isa sõbra düstoopilist muret analüütiliste mootorite ega üldse arvutite pärast.

Ta esitas oma arvamuse viimases osas Tõlkija märkmed, et:

Analüütilisel mootoril pole mingeid pretensioone midagi luua. See võib teha kõike, mida me teame, kuidas seda täita. See võib järgida analüüsi; kuid sellel ei ole jõudu ette näha mingeid analüütilisi seoseid ega tõdesid. Selle provints on aidata meil teha kättesaadavaks see, mida me juba tunneme. Arvatakse, et see mõjub peamiselt ja peamiselt loomulikult oma täitevjõudude kaudu; kuid tõenäoliselt avaldab see kaudset ja vastastikust mõju teadusele endale muul viisil. Sest tõdede ja analüüsi valemite nii jaotamisel ja kombineerimisel, et need saaksid kõige kergemini ja kiiremini alluda mootori mehaanilistele kombinatsioonidele, heidetakse selle teaduse paljude ainete suhted ja olemus tingimata uutesse valgustesse, ja põhjalikumalt uuritud. See on sellise leiutise selgelt kaudne ja mõneti spekulatiivne tagajärg.

Veidi rohkem kui 100 aastat hiljem, kui Alan Turing tegi oma artiklis tehisintellekti teemat kuulsaks. Arvutusmasinad ja intelligentsusja tutvustas oma nüüdseks kuulus Turingi test, dubleeris ta selle Lady Lovelace'i vastulause.

Mida teha?

Järgmine kord, kui leiate end kirjutamas koodi, näiteks…

   -- Tore asi: Ackermanni funktsioon. -- Arvutatav, kuid mitte primitiivne rekursiivne! -- (Seda ei saa kirjutada tavalise vana for -- silmustega, kuid võite olla kindel, et see lõpeb, -- isegi kui see võtab palju aega.) local ack = function(m,n) if m == 0 siis tagasta n+1 lõpp kui n == 0 siis tagasta ack(m-1,1) end return ack(m-1,ack(m,n-1)) end

...pidage meeles, et seda tüüpi rekursiivsed alamprogrammid said alguse kellegi teaduslikust kujutlusvõimest, kes teadis, milline arvuti peaks välja nägema ja milline see tõenäoliselt välja peaks nägema, kuid elas (ja kahjuks suri väga noorelt) 100 aastat enne sellist seadet. olemas, et teda päriselt häkkida.

Tegelikesse arvutitesse häkkimine on üks asi, kuid kujuteldavatesse arvutitesse sihipärane häkkimine on tänapäeval midagi, mida suudame vaid ette kujutada.

Head Ada Lovelace'i päeva!


Ajatempel:

Veel alates Alasti turvalisus