Flytta över Patch Tuesday – det är Ada Lovelace Day! PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Flytta över Patch Tuesday – det är Ada Lovelace Day!

Den andra tisdagen i varje månad är Microsofts vanliga dag för säkerhetsuppdateringar, fortfarande känd av nästan alla under sitt inofficiella smeknamn "Patch Tuesday".

Men andra tisdagen i oktober är det också Ada Lovelace Day, firar Ada, grevinnan av Lovelace.

Ada var en sann pionjär inte bara inom databehandling utan också inom datavetenskap och gav sitt namn åt programmeringsspråket Ada.

Ada-språket, intressant nog, uppstod ur ett projekt från USA:s försvarsdepartement som syftade till att "debabelisera" världen av statlig kodning, där varje departement tycktes favorisera ett annat språk eller en annan språkdialekt, vilket gjorde det svårare, dyrare och mindre tillförlitliga för att få dem att arbeta tillsammans.

Ada hade många syntaktiska egenskaper som syftade till att förbättra läsbarheten och undvika vanliga misstag. Till skillnad från kommentarer i C, som börjar med /* och kör till nästa */, kanske många rader senare, ignorerar Ada helt enkelt allt efter -- på en rad, så kommentarer kan inte av misstag köras längre än du tänkt dig. Istället för att omsluta alla flerradiga kodblock inom snirkliga parenteser ({...}, också känd som tandställning), Ada har en unik terminator för varje sorts flerradsblock, t.ex end record, end loop och end if. Ada Lovelace, misstänker vi, skulle ha applåderat tydligheten i hennes namnespråk, men Ada-the-language slog aldrig riktigt fast, och C:s snirkliga parentes-syntax har i stort sett vunnit dagen, med Python kanske det enda språket utan snirkliga parenteser i Utbredd användning. Squiggly parentes är en viktig aspekt av C, C++, C#, Go, Java, JavaScript, Perl, Rust och många andra populära språk.

Ada Lovelaces era

Du kanske blir förvånad över att finna, med tanke på hur starkt Adas namn är förknippat med början av datavetenskap, att hon levde under första hälften av artonhundratalet, långt innan något som vi för närvarande känner igen som en dator, eller till och med en miniräknare, existerade. .

(Ada dog av livmodercancer 1852, bara 36 år gammal.)

Men även om datorer i sin moderna mening inte fanns på 1800-talet, så fanns de väldigt nära gjorde.

Så här gick det nästan till.

Charles Babbage, i början av 1800-talet, utvecklade en berömd mekanisk beräkningsanordning kallad Skillnad motor som åtminstone i teorin skulle kunna lösa polynomekvationer automatiskt i sjätte graden, t.ex. genom att hitta värden för X som skulle uppfylla:

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

Den brittiska regeringen var intresserad, eftersom en sådan anordning kunde användas för att skapa korrekta matematiska tabeller, såsom kvadratrötter, logaritmer och trigonometriska förhållanden.

Och vilken maskin som helst som är bra på trigonometriska beräkningar skulle också vara praktisk för att beräkna saker som kanonbord som kan revolutionera artilleriets noggrannhet till land och till sjöss.

Men Babbage hade två problem.

För det första kunde han aldrig riktigt nå den tekniska precision som behövdes för att få Difference Engine att fungera korrekt, eftersom det involverade tillräckligt många sammankopplade växlar för att backlash (små men kumulativa felaktigheter som ledde till "slarvighet" i mekanismen) skulle låsa den.

För det andra verkar han ha tappat intresset för Difference Engine när han insåg att det var en återvändsgränd – i moderna termer kan du tänka på det som en fickkalkylator, men inte som en surfplatta eller en bärbar dator.

Så Babbage tog ett steg framåt med designen av en ännu mer komplex enhet som han kallade Analytisk motor, som skulle kunna lösa mycket mer allmänna vetenskapliga problem än en sorts polynomekvation.

Kanske föga överraskande, om än tyvärr i efterhand. regeringen var inte särskilt intresserad av att finansiera Babbages mer avancerade projekt.

Med tanke på att han inte hade lyckats bygga den mekanism som behövs för en mycket enklare ekvationslösare, vilken chans hade en gigantisk, ångdriven dator för allmänt bruk att någonsin leverera några användbara resultat?

Den europeiska konferenskretsen

I en nyfiken vändning av internationellt, flerspråkigt samarbete reste Babbage till Italien för att hålla en föreläsning om sin analytiska motor.

I publiken fanns en militäringenjör vid namn kapten Luigi Menabrea, som på så sätt inspirerades att samarbeta med Babbage för att producera ett papper från 1842 som beskrev maskinen.

Även om han var italienare, publicerade Menabrea sin tidning på franska ...

…och det var Ada Lovelace som sedan översatte Menabreas tidning till engelska.

På Babbages uppmaning lade Ada också till en rad Anteckningar av översättaren, som visade sig inte bara vara mer än dubbelt så lång som Menabreas ursprungliga rapport, utan också mer insiktsfull, och förklarade flera viktiga egenskaper hos vad vi nu skulle kalla en allmändator.

Walter Isaacson, i sin utmärkt läsvärda bok Innovatörerna, publicerad 2014, beskriver hur Ada "utforskade fyra koncept som skulle ha historisk resonans ett sekel senare när datorn äntligen föddes":

  • Ada insåg att den analytiska motorn, till skillnad från skillnadsmotorn, verkligen var en enhet för allmänna ändamål, eftersom den inte bara kunde programmeras för att göra en sak, utan också, och relativt enkelt, omprogrammeras för att utföra någon helt annan uppgift.

Med Adas egna ord (det här var en tid då den vetenskapliga litteraturen fortfarande hade mer kontakt med litteraturen än vad den kanske gör idag):

Skillnadsmotorn kan i verkligheten (som redan delvis har förklarats) inte göra annat än att lägga till; och alla andra processer, utom de med enkel subtraktion, multiplikation och division, kan utföras av den endast i den utsträckning i vilken det är möjligt, genom noggrant matematiskt arrangemang och artificer, att reducera dem till en serie additioner. Metoden för skillnader är i själva verket en metod för tillägg; och eftersom den innehåller ett större antal resultat som helt enkelt kan uppnås genom addition än någon annan matematisk princip, valdes den mycket lämpligt som grund för att konstruera en Adding Machine, för att ge till krafterna hos en sådan maskin. bredast möjliga utbud. Den analytiska motorn, tvärtom, kan antingen addera, subtrahera, multiplicera eller dividera med lika lätthet; och utför var och en av dessa fyra operationer på ett direkt sätt, utan hjälp av någon av de andra tre. Detta enda faktum innebär allt; och det är knappast nödvändigt att påpeka, till exempel, att medan skillnadsmotorn bara kan tabulera, och inte kan utvecklas, kan den analytiska motorn antingen tabulera eller utvecklas.

  • Ada insåg att den analytiska motorn inte var begränsad till kodning och beräkning med siffror. Även om de är digitala, och baserat på en förmåga att utföra numeriska beräkningar, kan dessa digitala operationer, förklarade hon, i teorin representera logiska påståenden (som vi tar för givet idag i if ... then ... else ... end if uttalanden), musiknoter och så vidare.

Som Ada uttryckte det:

[Den analytiska motorn] kan agera på andra saker förutom antalet, var föremål som hittades vars ömsesidiga grundläggande relationer kunde uttryckas av de från den abstrakta vetenskapen om operationer, och som också borde vara mottagliga för anpassningar till verkan av den operationella notationen och mekanismen för motorn. Om man till exempel antar att de grundläggande förhållandena mellan tonhöjda ljud i vetenskapen om harmoni och musikalisk komposition var mottagliga för sådana uttryck och anpassningar, kan motorn komponera utarbetade och vetenskapliga musikstycken av vilken grad av komplexitet eller omfattning som helst. Den analytiska motorn är en förkroppsligande av operationsvetenskapen, konstruerad med en speciell hänvisning till abstrakta tal som föremål för dessa operationer.

  • Ada kom på konceptet att återanvända delar av det vi nu kallar program. I den meningen kan hon sägas ha uppfunnit begreppet subrutin, inklusive rekursiva subrutiner (funktioner som förenklar lösningen genom att bryta upp en beräkning i en serie liknande delberäkningar, och sedan kalla sig själva).
  • Ada tog först på ett användbart sätt upp frågan "Kan maskiner tänka?" Detta är en fråga som har oroat oss sedan dess.

Frankenstein-kopplingen

Adas far (även om hon aldrig träffade honom) var den ökända poeten Lord Byron, som minnesvärt tillbringade en regnig semester i Schweiz och skrev skräckhistorier med sina litterära vänner Percy och Mary Shelley.

Byrons och Percy Shelleys ansträngningar i denna vänliga skrivtävling är helt bortglömda idag, men Mary Shelleys framstående roman frankenstein; eller, den moderna Prometheus (utgiven 1818) är populär och välrespekterad än i dag.

Frankenstein-berättelsen utforskade berömt de moraliska dilemman kring vad vi idag kan referera till som artificiell intelligens. (Frankenstein, glöm inte, var vetenskapsmannen som genomförde experimentet, inte AI:n som kom från projektet.)

Ada verkade dock inte dela sin fars väns dystopiska oro för analytiska motorer, eller faktiskt om datorer i allmänhet.

Hon kom med yttrandet i sista avsnittet av henne Anteckningar av översättaren, det där:

Den analytiska motorn har inga som helst anspråk på att skapa något. Den kan göra vad vi än vet hur den ska beordra den att utföra. Det kan följa analys; men den har ingen förmåga att förutse några analytiska relationer eller sanningar. Dess provins ska hjälpa oss att tillgängliggöra det vi redan är bekanta med. Detta beräknas den framför allt och främst naturligtvis åstadkomma genom sina verkställande fakulteter; men den kommer sannolikt att utöva ett indirekt och ömsesidigt inflytande på själva vetenskapen på ett annat sätt. För genom att så distribuera och kombinera sanningarna och analysformerna, så att de lättast och snabbast kan bli mottagliga för motorns mekaniska kombinationer, kastas relationerna och naturen hos många ämnen i den vetenskapen med nödvändighet i nya ljus, och djupare undersökt. Detta är en avgjort indirekt, och en något spekulativ, konsekvens av en sådan uppfinning.

Drygt 100 år senare, när Alan Turing berömt återbesökte frågan om artificiell intelligens i sin egen tidning Datormaskiner och intelligens, och presenterade sin numera berömda Turing Test, dubbade han detta Lady Lovelaces invändning.

Vad göra?

Nästa gång du kommer på att du skriver kod som...

   -- En funky sak: Ackermann-funktionen. -- Beräknarbar, men inte primitiv rekursiv! -- (Du kan inte skriva det med vanlig gammal för -- loopar, men du kan vara säker på att det kommer att sluta, -- även om det tar lång tid.) local ack = function(m,n) if m == 0 sedan returnera n+1 slut om n == 0 sedan returnera ack(m-1,1) slut returnera ack(m-1,ack(m,n-1)) slut

...kom ihåg att rekursiva subrutiner av detta slag alla började i den vetenskapliga fantasin hos någon som visste hur en dator skulle se ut och hur den förmodligen skulle se ut, men som ändå levde (och tyvärr dog mycket ung) 100 år innan någon sådan enhet någonsin fanns för henne att hacka på på riktigt.

Att hacka på faktiska datorer är en sak, men att hacka målmedvetet på imaginära datorer är i dessa dagar något vi bara kan föreställa oss.

Glad Ada Lovelace Day!


Tidsstämpel:

Mer från Naken säkerhet