Gå over Patch Tuesday – det er Ada Lovelace Day! PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Gå over Patch Tuesday – det er Ada Lovelace Day!

Den andre tirsdagen i hver måned er Microsofts vanlige dag for sikkerhetsoppdateringer, fortsatt kjent av nesten alle under det uoffisielle kallenavnet "Patch Tuesday".

Men andre tirsdag i oktober er det også Ada Lovelace Day, feirer Ada, grevinne av Lovelace.

Ada var en sann pioner ikke bare innen databehandling, men også innen datavitenskap, og ga navnet sitt til programmeringsspråket Ada.

Ada-språket, interessant nok, dukket opp fra et amerikansk forsvarsdepartement-prosjekt som hadde som mål å "debabelisere" verden av statlig koding, der hver avdeling syntes å favorisere et annet språk eller en annen språkdialekt, noe som gjorde det vanskeligere, dyrere og mindre pålitelig for å få dem til å fungere sammen.

Ada hadde mange syntaktiske funksjoner rettet mot å forbedre lesbarheten og unngå vanlige feil. I motsetning til kommentarer i C, som starter med /* og løp til neste */, kanskje mange linjer senere, ignorerer Ada rett og slett alt etter -- på en linje, så kommentarer kan ikke ved et uhell kjøres lenger enn du hadde tenkt. I stedet for å omslutte alle flerlinjers kodeblokker innenfor snirklete parenteser ({...}, også kjent som bukseseler), Ada har en unik terminator for hver type flerlinjeblokk, f.eks. end record, end loop og end if. Ada Lovelace, mistenker vi, ville ha applaudert klarheten i navnebrorens språk, men Ada-the-language fanget aldri helt opp, og Cs snirklete parentes-syntaks har stort sett vunnet dagen, med Python som kanskje det eneste språket uten snirklete parenteser i utbredt bruk. Squiggly brackets er et viktig aspekt av C, C++, C#, Go, Java, JavaScript, Perl, Rust og mange andre populære språk.

Ada Lovelace sin tid

Du kan bli overrasket over å finne, gitt hvor sterkt Adas navn er assosiert med begynnelsen av informatikk, at hun levde i første halvdel av det nittende århundre, lenge før noe som vi for tiden gjenkjenner som en datamaskin, eller til og med en kalkulator, eksisterte. .

(Ada døde av livmorkreft i 1852 bare 36 år gammel.)

Men selv om datamaskiner i deres moderne forstand ikke eksisterte på 1800-tallet, var de veldig nesten gjorde.

Her er hvordan det nesten skjedde.

Charles Babbage, på begynnelsen av 1800-tallet, utviklet en berømt mekanisk beregningsenhet kalt Forskjell motor som i det minste i teorien kunne løse polynomlikninger automatisk i sjette grad, f.eks. ved å finne verdier for X som vil tilfredsstille:

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

Den britiske regjeringen var interessert, fordi en enhet av denne typen kunne brukes til å lage nøyaktige matematiske tabeller, for eksempel kvadratrøtter, logaritmer og trigonometriske forhold.

Og enhver maskin som er god på trigonometriske beregninger, vil også være nyttig for å beregne ting som skytebord som kan revolusjonere nøyaktigheten til artilleri til lands og til sjøs.

Men Babbage hadde to problemer.

For det første kunne han aldri helt oppnå den tekniske presisjonen som trengs for å få Difference Engine til å fungere ordentlig, fordi den innebar tilstrekkelig mange sammenlåsende gir til at tilbakeslag (små men kumulative unøyaktigheter som førte til "slurv" i mekanismen) ville låse den opp.

For det andre ser det ut til at han har mistet interessen for Difference Engine da han skjønte at det var en blindvei – i moderne termer kan du tenke på det som en lommekalkulator, men ikke som et nettbrett eller en bærbar datamaskin.

Så Babbage gikk videre med utformingen av en enda mer kompleks enhet som han kalte Analytisk motor, som kan løse mye mer generelle vitenskapelige problemer enn en slags polynomligning.

Kanskje ikke overraskende, om beklageligvis i ettertid. regjeringen var ikke spesielt interessert i å finansiere Babbages mer avanserte prosjekt.

Gitt at han ikke hadde klart å bygge mekanismen som trengs for en mye enklere ligningsløser, hvilken sjanse hadde en gigantisk, dampdrevet, generell datamaskin for noen gang å levere nyttige resultater?

Den europeiske konferansekretsen

I en merkelig vri av internasjonalt, flerspråklig samarbeid, reiste Babbage til Italia for å holde et foredrag som promoterte sin analytiske motor.

I publikum var en militæringeniør ved navn kaptein Luigi Menabrea, som dermed ble inspirert til å samarbeide med Babbage for å produsere et papir fra 1842 som beskrev maskinen.

Selv om han var italiensk, publiserte Menabrea papiret sitt på fransk ...

…og det var Ada Lovelace som deretter oversatte Menabreas artikkel til engelsk.

På oppfordring fra Babbage la Ada også til en serie med Notater fra oversetteren, som viste seg ikke bare å være mer enn dobbelt så lang som Menabreas opprinnelige rapport, men også mer innsiktsfull, og forklarte flere viktige kjennetegn ved det vi nå vil kalle en generell datamaskin.

Walter Isaacson, i sin utmerket lesbare bok Innovatørene, utgitt i 2014, beskriver hvordan Ada "utforsket fire konsepter som ville ha historisk resonans et århundre senere da datamaskinen endelig ble født":

  • Ada erkjente at den analytiske motoren, i motsetning til Difference Engine, virkelig var en generell enhet, fordi den ikke bare kunne programmeres til å gjøre én ting, men også, og relativt enkelt, omprogrammeres til å utføre en helt annen oppgave.

Med Adas egne ord (dette var en tid der vitenskapelig litteratur fortsatt hadde mer kontakt med litteratur enn kanskje i dag):

Difference Engine kan i virkeligheten (som allerede delvis har blitt forklart) ikke gjøre annet enn å legge til; og alle andre prosesser, ikke unntatt de med enkel subtraksjon, multiplikasjon og divisjon, kan utføres av det bare i den grad det er mulig, ved fornuftig matematisk arrangement og kunstgrep, å redusere dem til en serie addisjoner. Metoden for forskjeller er faktisk en metode for tillegg; og ettersom den inkluderer et større antall resultater som kan oppnås ved enkel addisjon, enn noe annet matematisk prinsipp, ble det meget passende valgt som grunnlag for å konstruere en addisjonsmaskin, for å gi kraften til en slik maskin bredest mulig utvalg. Den analytiske motoren, tvert imot, kan enten addere, subtrahere, multiplisere eller dividere med lik fasilitet; og utfører hver av disse fire operasjonene på en direkte måte, uten hjelp fra noen av de tre andre. Dette ene faktum innebærer alt; og det er knapt nødvendig å påpeke, for eksempel, at mens forskjellsmotoren bare kan tabulere, og ikke er i stand til å utvikle seg, kan den analytiske motoren enten tabulere eller utvikle seg.

  • Ada innså at den analytiske motoren ikke var begrenset til koding og databehandling med tall. Selv om de er digitale, og basert på en evne til å utføre numeriske beregninger, kan disse digitale operasjonene, forklarte hun, i teorien representere logiske påstander (som vi tar for gitt i dag i if ... then ... else ... end if utsagn), musikknoter og så videre.

Som Ada sa det:

[Den analytiske motoren] kan virke på andre ting enn antall, ble gjenstander funnet hvis gjensidige grunnleggende relasjoner kunne uttrykkes av de fra den abstrakte vitenskapen om operasjoner, og som også burde være mottakelige for tilpasninger til handlingen til den operasjonelle notasjonen og mekanismen til motoren. Hvis vi for eksempel antar at de grunnleggende forholdene mellom tonehøyde lyder i vitenskapen om harmoni og musikalsk komposisjon var mottakelige for slike uttrykk og tilpasninger, kan motoren komponere forseggjorte og vitenskapelige musikkstykker av enhver grad av kompleksitet eller omfang. Den analytiske motoren er en legemliggjøring av operasjonsvitenskapen, konstruert med særegne referanser til abstrakte tall som gjenstand for disse operasjonene.

  • Ada kom på konseptet med å gjenbruke deler av det vi nå kaller programmer. Slik sett kan hun sies å ha oppfunnet begrepet subrutinen, inkludert rekursive subrutiner (funksjoner som forenkler løsningen ved å dele opp en beregning i en serie med lignende delberegninger, og deretter kalle seg selv).
  • Ada tok først nyttig opp spørsmålet "Kan maskiner tenke?" Dette er et problem som har bekymret oss siden.

Frankenstein-forbindelsen

Adas far (selv om hun aldri møtte ham) var den beryktede poeten Lord Byron, som minneverdig tilbrakte en regnfull ferie i Sveits og skrev skrekkhistorier med sine litterære venner Percy og Mary Shelley.

Byrons og Percy Shelleys innsats i denne vennlige skrivekonkurransen er helt glemt i dag, men Mary Shelleys banebrytende roman Frankenstein; eller, The Modern Prometheus (utgitt i 1818) er populær og godt respektert den dag i dag.

Frankenstein-historien utforsket de moralske dilemmaene rundt det vi i dag kan referere til som kunstig intelligens. (Frankenstein, ikke glem, var forskeren som utførte eksperimentet, ikke AI-en som dukket opp fra prosjektet.)

Ada så imidlertid ikke ut til å dele farens venns dystopiske bekymringer om analytiske motorer, eller faktisk om datamaskiner generelt.

Hun ga sin mening i den siste delen av henne Notater fra oversetteren, at:

Den analytiske motoren har ingen anelser om å skape noe. Den kan gjøre alt vi vet hvordan den skal utføres. Det kan følge analyse; men den har ingen makt til å forutse noen analytiske relasjoner eller sannheter. Dens provins skal hjelpe oss med å gjøre tilgjengelig det vi allerede er kjent med. Dette er det beregnet å oppnå primært og hovedsakelig, selvfølgelig, gjennom sine utøvende fakulteter; men det vil sannsynligvis øve en indirekte og gjensidig innflytelse på selve vitenskapen på en annen måte. For ved å distribuere og kombinere sannhetene og analysens formler på en slik måte at de lettest og hurtigst kan bli mottagelige for de mekaniske kombinasjonene av motoren, blir relasjonene og naturen til mange fag, ved at vitenskapen nødvendigvis kastet inn i nye lys, og grundigere undersøkt. Dette er en desidert indirekte, og en litt spekulativ konsekvens av en slik oppfinnelse.

Litt over 100 år senere, da Alan Turing berømt tok opp spørsmålet om kunstig intelligens i sin egen avis. Datamaskiner og intelligens, og introduserte sin nå kjente Turing Test, kalte han dette Lady Lovelaces innvending.

Hva gjør jeg?

Neste gang du kommer på å skrive kode som...

   -- En funky ting: Ackermann-funksjonen.
   -- Beregnbar, men ikke primitiv rekursiv!
   -- (Du kan ikke skrive det med vanlig gammel for
   -- løkker, men du kan være sikker på at den blir ferdig,
   -- selv om det tar lang tid.)

   lokal ack = funksjon(m,n)
      hvis m == 0, returner n+1 slutt
      hvis n == 0 så returner ack(m-1,1) end
      return ack(m-1,ack(m,n-1))
   slutt

…husk at rekursive subrutiner av denne typen startet i den vitenskapelige fantasien til noen som visste hvordan en datamaskin skulle se ut, og hvordan den sannsynligvis ville se ut, men som likevel levde (og dessverre døde veldig ung) 100 år før noen slik enhet noensinne eksisterte for at hun kunne hacke på ekte.

Hacking på faktiske datamaskiner er én ting, men målrettet hacking på imaginære datamaskiner er i disse dager noe vi bare kan forestille oss.

Gratulerer med Ada Lovelace-dagen!


Tidstempel:

Mer fra Naken sikkerhet