Siirry Patch-tiistaihin – on Ada Lovelace Day! PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Siirry Patch-tiistaihin – on Ada Lovelace Day!

Joka kuukauden toinen tiistai on Microsoftin säännöllinen tietoturvapäivityspäivä, jonka lähes kaikki tuntevat edelleen epävirallisella lempinimellään "Patch Tuesday".

Mutta lokakuun toinen tiistai on myös Ada Lovelace -päivä, juhlii Ada, Lovelacen kreivitär.

Ada oli todellinen edelläkävijä ei vain tietojenkäsittelyssä, vaan myös tietojenkäsittelytieteessä, ja antoi nimensä ohjelmointikielelle Ada.

Ada-kieli, kiehtovalla tavalla, syntyi Yhdysvaltain puolustusministeriön hankkeesta, jonka tarkoituksena oli "debabelisoida" hallituksen koodauksen maailmaa, jossa jokainen osasto näytti suosivan eri kieltä tai eri kielen murretta, mikä teki siitä vaikeampaa, kalliimpaa ja vähemmän luotettavia saada ne työskentelemään yhdessä.

Adassa oli lukuisia syntaktisia ominaisuuksia, joiden tarkoituksena oli parantaa luettavuutta ja välttää yleisiä virheitä. Toisin kuin C:n kommentit, jotka alkavat kirjaimella /* ja juokse seuraavaan asti */, ehkä monta riviä myöhemmin, Ada yksinkertaisesti jättää huomioimatta mitään sen jälkeen -- millä tahansa rivillä, joten kommentit eivät voi vahingossa jatkua pitemmälle kuin tarkoitit. Sen sijaan, että sulkeisit kaikki moniriviset koodilohkot squiggly-suluissa ({...}, tunnetaan myös olkaimet), Adalla on yksilöllinen pääte jokaiselle moniriviselle lohkolle, esim end record, end loop ja end if. Epäilemme, että Ada Lovelace olisi suositellut kaimakielinsä selkeyttä, mutta Ada-kieli ei koskaan oikein saanut kiinni, ja C:n squiggly hakasulkeiden syntaksi on suurelta osin voittanut päivän, ja Python on ehkä ainoa kieli, jossa ei ole squiggly-sulkeita. yleiseen käyttöön. Squiggly-sulut ovat tärkeä osa C-, C++-, C#-, Go-, Java-, JavaScript-, Perl-, Rust- ja monien muiden suosittujen kielten ominaisuuksia.

Ada Lovelacen aikakausi

Saatat olla yllättynyt huomatessasi, kuinka vahvasti Adan nimi liittyy tietojenkäsittelytieteen alkuun, että hän eli XNUMX-luvun ensimmäisellä puoliskolla, kauan ennen kuin mikään, jonka tällä hetkellä tunnistamme tietokoneeksi tai jopa laskimeksi, oli olemassa. .

(Ada kuoli kohtusyöpään vuonna 1852 vain 36-vuotiaana.)

Mutta vaikka tietokoneita niiden nykyisessä merkityksessä ei ollut olemassa 1800-luvulla, ne hyvin lähellä teki.

Näin se melkein tapahtui.

Charles Babbage kehitti 1800-luvun alussa tunnetusti mekaanisen laskentalaitteen nimeltä Ero moottori joka voisi ainakin teoriassa ratkaista automaattisesti polynomiyhtälöitä kuudennessa asteessa, esim. etsimällä X:lle arvot, jotka täyttäisivät:

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

Ison-Britannian hallitus oli kiinnostunut, koska tällaisella laitteella voitaisiin luoda tarkkoja matemaattisia taulukoita, kuten neliöjuuria, logaritmeja ja trigonometrisiä suhteita.

Ja mikä tahansa kone, joka on hyvä trigonometrisiin laskelmiin, olisi myös kätevä laskettaessa asioita, kuten tykistötaulukoita, jotka voivat mullistaa tykistön tarkkuuden maalla ja merellä.

Mutta Babbagella oli kaksi ongelmaa.

Ensinnäkin hän ei koskaan pystynyt saavuttamaan sitä teknistä tarkkuutta, jota Difference Enginen saamiseen tarvittiin toimimaan kunnolla, koska se sisälsi riittävän monta toisiinsa lukittavaa vaihdetta, jotta välys (pienet, mutta kumulatiiviset epätarkkuudet, jotka johtavat mekanismin "nöyhyyteen") lukitsisivat sen.

Toiseksi hän näyttää menettäneen kiinnostuksensa Difference Engineen, kun hän tajusi sen olevan umpikuja – nykyajan termein voit ajatella sitä taskulaskimena, mutta ei tablet-tietokoneena tai kannettavana tietokoneena.

Joten Babbage hyppäsi eteenpäin suunnittelemalla vielä monimutkaisemman laitteen, jota hän kutsui nimellä Analyyttinen moottori, joka voisi ratkaista paljon yleisempiä tieteellisiä ongelmia kuin yhdenlainen polynomiyhtälö.

Ehkä ei ole yllättävää, jos näin jälkikäteen ajatellen valitettavasti. hallitus ei ollut kovin kiinnostunut rahoittamaan Babbagen edistyneempää hanketta.

Ottaen huomioon, että hän ei ollut onnistunut rakentamaan mekanismia, jota tarvitaan paljon yksinkertaisempaan yhtälön ratkaisijaan, mikä mahdollisuus jättiläismäisellä, höyrykäyttöisellä yleiskäyttöisellä tietokoneella oli koskaan tuottaa hyödyllisiä tuloksia?

Eurooppalainen konferenssikierros

Kansainvälisen, monikielisen yhteistyön omituisena kierteenä Babbage matkusti Italiaan pitämään luennon, jossa hän mainosti Analytical Engineään.

Yleisössä oli sotilasinsinööri nimeltä kapteeni Luigi Menabrea, joka inspiroitui yhteistyöhön Babbagen kanssa tuottaakseen vuoden 1842 paperin, jossa kuvattiin konetta.

Vaikka Menabrea oli italialainen, hän julkaisi paperinsa ranskaksi…

…ja Ada Lovelace käänsi sitten Menabrean paperin englanniksi.

Babbagen kehotuksesta Ada lisäsi myös sarjan Kääntäjän muistiinpanot, joka ei osoittautunut vain yli kaksi kertaa Menabrean alkuperäiseen raporttiin verrattuna, vaan myös oivaltavammaksi, selittäen useita tärkeitä ominaisuuksia siitä, mitä me nyt kutsumme yleiskäyttöiseksi tietokoneeksi.

Walter Isaacson erinomaisesti luettavassa kirjassaan Innovaattorit, julkaistu vuonna 2014, kuvaa kuinka Ada "tutki neljää käsitettä, joilla olisi historiallista resonanssia vuosisataa myöhemmin, kun tietokone vihdoin syntyi":

  • Ada ymmärsi, että analyyttinen moottori, toisin kuin Difference Engine, oli todella yleiskäyttöinen laite, koska sitä ei voitu ohjelmoida vain tekemään yhtä asiaa, vaan se voidaan myös suhteellisen helposti ohjelmoida uudelleen suorittamaan jotain täysin erilaista tehtävää.

Adan omin sanoin (tämä oli aika, jolloin tieteellinen kirjallisuus oli vielä enemmän kosketuksissa kirjallisuuteen kuin ehkä nykyään):

Eromoottori ei voi todellisuudessa (kuten on jo osittain selitetty) tehdä muuta kuin lisätä; ja mitkä tahansa muut prosessit, lukuun ottamatta yksinkertaisia ​​vähennys-, kerto- ja jakolaskuja, voidaan suorittaa sillä vain siinä määrin, että järkevällä matemaattisella järjestelyllä ja keinotekoisin keinoin on mahdollista pelkistää ne yhteenlaskujen sarjaksi. Erotusten menetelmä on itse asiassa lisäysmenetelmä; ja koska se sisältää laajemman määrän yksinkertaisesti lisäämällä saavutettavia tuloksia kuin mikään muu matemaattinen periaate, se valittiin erittäin sopivasti perustaksi lisäyskoneen rakentamiselle, jotta tällaisen koneen tehot olisivat käytettävissä. mahdollisimman laaja valikoima. Analyyttinen kone päinvastoin voi joko lisätä, vähentää, kertoa tai jakaa yhtä suurella mahdollisuudella; ja suorittaa jokaisen näistä neljästä operaatiosta suoraan ilman minkään muun kolmen apua. Tämä yksi tosiasia merkitsee kaikkea; ja on tuskin tarpeellista huomauttaa esimerkiksi, että vaikka erokoneisto voi vain taulukoida, eikä se kykene kehittymään, analyyttinen kone voi joko taulukoida tai kehittyä.

  • Ada tajusi, että analyyttinen kone ei rajoittunut koodaukseen ja numeroiden laskemiseen. Vaikka nämä digitaaliset operaatiot ovat digitaalisia ja perustuvat kykyyn suorittaa numeerisia laskelmia, hän selitti, että ne voisivat teoriassa edustaa loogisia väitteitä (kuten pidämme itsestäänselvyytenä nykyään if ... then ... else ... end if lausunnot), nuotit ja niin edelleen.

Kuten Ada sanoi:

[Analyyttinen kone] saattoi vaikuttaa muihinkin asioihin kuin numeroon, jos löydettäisiin esineitä, joiden keskinäiset perussuhteet voisivat ilmaista abstraktin operaatiotieteen suhteilla ja joiden tulisi myös olla alttiita mukautuville operatiivisen merkinnän ja mekanismin toimintaan. moottori. Jos esimerkiksi oletetaan, että korkeiden äänien perustavanlaatuiset suhteet harmonian ja musiikin sävellyksen tieteen alalla ovat alttiita sellaisille ilmaisuille ja sovituksille, moottori voisi säveltää monimutkaisia ​​ja tieteellisiä musiikkikappaleita minkä tahansa monimutkaisuuden tai laajuuden välillä. Analyyttinen kone on operaatiotieteen ilmentymä, joka on rakennettu erityisellä viittauksella abstraktiin numeroon näiden operaatioiden kohteena.

  • Ada keksi ajatuksen käyttää uudelleen osia siitä, mitä nyt kutsumme ohjelmiksi. Tässä mielessä hänen voidaan sanoa keksineen aliohjelman käsitteen, mukaan lukien rekursiiviset aliohjelmat (funktiot, jotka yksinkertaistavat ratkaisua jakamalla laskelman sarjaan samanlaisia ​​alilaskutoimituksia ja kutsuen sitten itseään).
  • Ada käsitteli ensin hyödyllisesti kysymystä "Voivatko koneet ajatella?" Tämä on ongelma, joka on huolestuttanut meitä siitä lähtien.

Frankensteinin yhteys

Adan isä (vaikka hän ei koskaan tavannut häntä) oli surullisen kuuluisa runoilija Lord Byron, joka vietti ikimuistoisen sateisen loman Sveitsissä kirjoittaen kauhutarinoita kirjallisten ystäviensä Percyn ja Mary Shelleyn kanssa.

Byronin ja Percy Shelleyn ponnistelut tässä ystävällisessä kirjoituskilpailussa unohdetaan nykyään kokonaan, mutta Mary Shelleyn tärkeä romaani Frankenstein; tai Moderni Prometheus (julkaistu vuonna 1818) on suosittu ja arvostettu tähän päivään asti.

Frankensteinin tarinassa tutkittiin tunnetusti moraalisia ongelmia, jotka liittyvät siihen, mitä voisimme kutsua nykyään tekoälyksi. (Frankenstein, älä unohda, oli tutkija, joka suoritti kokeen, ei projektista syntynyt tekoäly.)

Ada ei kuitenkaan näyttänyt jakavan isänsä ystävän dystopisia huolenaiheita analyyttisista moottoreista tai tietokoneista yleensä.

Hän tarjosi mielipiteensä viimeisessä osiossa Kääntäjän muistiinpanot, että:

Analyyttisellä koneella ei ole mitään vaatimuksia saada aikaan mitään. Se voi tehdä mitä tahansa, kuinka voimme tilata sen suorittamaan. Se voi seurata analyysiä; mutta sillä ei ole valtaa ennakoida mitään analyyttisiä suhteita tai totuuksia. Sen provinssin tehtävänä on auttaa meitä saattamaan saataville se, minkä jo tunnemme. Tämän on laskettu tapahtuvan ensisijaisesti ja pääasiassa tietysti johtavien tiedekuntiensa kautta; mutta se todennäköisesti vaikuttaa epäsuorasti ja vastavuoroisesti tieteeseen itseensä toisella tavalla. Sillä kun totuuksia ja analyysikaavoja jaetaan ja yhdistetään niin, että niistä tulee helpoimmin ja nopeimmin sopeutuvia moottorin mekaanisille yhdistelmille, tuon tieteen monien aiheiden suhteet ja luonne joutuvat väistämättä uusiin valoihin, ja tutkittu tarkemmin. Tämä on selkeästi epäsuora ja jonkin verran spekulatiivinen seuraus tällaisesta keksinnöstä.

Hieman yli 100 vuotta myöhemmin, kun Alan Turing käsitteli tunnetusti tekoälyä omassa artikkelissaan. Tietokoneet ja älykkyys, ja esitteli hänen nyt kuuluisa Turingin testi, hän nimitti tämän Lady Lovelacen vastalause.

Mitä tehdä?

Seuraavan kerran, kun huomaat kirjoittavasi koodia, kuten…

   -- Hieno juttu: Ackermann-toiminto. -- Laskennallinen, mutta ei primitiivinen rekursiivinen! -- (Et voi kirjoittaa sitä pelkällä old for -- silmukalla, mutta voit kuitenkin olla varma, että se päättyy, -- vaikka se vie looooooooong aikaa.) local ack = function(m,n) if m == 0 sitten palauta n+1 loppu jos n == 0 sitten palauta ack(m-1,1) end return ack(m-1,ack(m,n-1)) end

…muista, että tämänkaltaiset rekursiiviset aliohjelmat saivat alkunsa jonkun tieteellisestä mielikuvituksesta, joka tiesi, miltä tietokoneen pitäisi näyttää ja miltä se todennäköisesti näyttäisi, mutta joka kuitenkin eli (ja valitettavasti kuoli hyvin nuorena) 100 vuotta ennen mitään sellaista laitetta. oli olemassa, jotta hän voisi hakkeroida sitä todella.

Varsinaisten tietokoneiden hakkerointi on yksi asia, mutta kuviteltujen tietokoneiden tarkoituksellinen hakkerointi on nykyään jotain, jota voimme vain kuvitella.

Hyvää Ada Lovelacen päivää!


Aikaleima:

Lisää aiheesta Naked Security