Beweeg over Patch Tuesday – het is Ada Lovelace Day! PlatoBlockchain-gegevensintelligentie. Verticaal zoeken. Ai.

Move over Patch Tuesday - het is Ada Lovelace Day!

De tweede dinsdag van elke maand is de vaste dag van Microsoft voor beveiligingsupdates, nog steeds bij bijna iedereen bekend onder de onofficiële bijnaam "Patch Tuesday".

Maar de tweede dinsdag in oktober is ook Ada Lovelace-dag, vieren Ada, Gravin van Lovelace.

Ada was een echte pionier, niet alleen op het gebied van informatica, maar ook op het gebied van informatica, en gaf haar naam aan de programmeertaal Ada.

De Ada-taal, intrigerend, kwam voort uit een project van het Amerikaanse ministerie van Defensie dat erop gericht was de wereld van overheidscodering te "debabeliseren", waar elk departement een andere taal of een ander taaldialect leek te prefereren, waardoor het moeilijker, duurder en minder betrouwbaar om ze samen te laten werken.

Ada had tal van syntactische functies die gericht waren op het verbeteren van de leesbaarheid en het vermijden van veelgemaakte fouten. In tegenstelling tot opmerkingen in C, die beginnen met /* en rennen tot de volgende */, misschien vele regels later, negeert Ada gewoon alles daarna -- op één regel, dus opmerkingen kunnen niet per ongeluk verder gaan dan je bedoeld had. In plaats van alle codeblokken met meerdere regels tussen kronkelige haakjes te plaatsen ({...}, ook gekend als bretels), heeft Ada een unieke terminator voor elk soort blok met meerdere regels, bijv end record, end loop en end if. Ada Lovelace, vermoeden we, zou de duidelijkheid van haar naamgenoottaal hebben toegejuicht, maar Ada-de-taal is nooit echt aangeslagen, en de kronkelige haakjessyntaxis van C heeft de dag grotendeels gewonnen, met Python misschien wel de enige taal zonder haken in wijdverbreid gebruik. Squiggly haakjes zijn een essentieel aspect van C, C++, C#, Go, Java, JavaScript, Perl, Rust en vele andere populaire talen.

Het tijdperk van Ada Lovelace

Het zal je misschien verbazen, gezien hoe sterk Ada's naam wordt geassocieerd met het begin van de informatica, dat ze in de eerste helft van de negentiende eeuw leefde, lang voordat er iets bestond dat we momenteel herkennen als een computer, of zelfs een rekenmachine. .

(Ada stierf in 1852 op 36-jarige leeftijd aan baarmoederkanker.)

Maar hoewel computers in hun moderne betekenis in de 1800e eeuw nog niet bestonden, heel dichtbij deed.

Hier is hoe het bijna gebeurde.

Charles Babbage bedacht in het begin van de 1800e eeuw een mechanisch rekenapparaat genaamd de Verschil motor die, in theorie althans, automatisch polynoomvergelijkingen in de zesde graad zou kunnen oplossen, bijvoorbeeld door waarden voor X te vinden die zouden voldoen aan:

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

De Britse regering was geïnteresseerd, omdat een dergelijk apparaat zou kunnen worden gebruikt voor het maken van nauwkeurige wiskundige tabellen, zoals vierkantswortels, logaritmen en trigonometrische verhoudingen.

En elke machine die goed is in trigonometrische berekeningen zou ook handig zijn voor het berekenen van zaken als artillerietabellen die een revolutie teweeg zouden kunnen brengen in de nauwkeurigheid van artillerie op land en op zee.

Maar Babbage had twee problemen.

Ten eerste kon hij nooit de technische precisie bereiken die nodig is om de Difference Engine goed te laten werken, omdat er voldoende in elkaar grijpende versnellingen nodig waren die speling (kleine maar cumulatieve onnauwkeurigheden die leiden tot "slordigheid" in het mechanisme) zouden blokkeren.

Ten tweede lijkt hij zijn interesse in de Difference Engine verloren te hebben toen hij zich realiseerde dat het een doodlopende weg was - in moderne termen kun je het zien als een zakrekenmachine, maar niet als een tabletcomputer of een laptop.

Dus Babbage sprong vooruit met het ontwerp van een nog complexer apparaat dat hij de Analytische motor, die veel algemenere wetenschappelijke problemen zou kunnen oplossen dan één soort polynoomvergelijking.

Misschien niet verwonderlijk, zij het achteraf spijtig. de regering was niet erg geïnteresseerd in het financieren van Babbage's meer geavanceerde project.

Gezien het feit dat hij er niet in was geslaagd het mechanisme te bouwen dat nodig was voor een veel eenvoudigere vergelijkingsoplosser, welke kans had een gigantische, door stoom aangedreven computer voor algemeen gebruik ooit om bruikbare resultaten te leveren?

Het Europese conferentiecircuit

In een merkwaardige draai van internationale, meertalige samenwerking reisde Babbage naar Italië om een ​​lezing te geven ter promotie van zijn Analytical Engine.

In het publiek was een militair ingenieur genaamd Kapitein Luigi Menabrea, die aldus werd geïnspireerd om samen te werken met Babbage om een ​​document uit 1842 te produceren dat de machine beschreef.

Hoewel hij een Italiaan was, publiceerde Menabrea zijn artikel in het Frans...

...en het was Ada Lovelace die vervolgens Menabrea's paper vertaalde in het Engels.

Op aandringen van Babbage voegde Ada ook een reeks Aantekeningen door de vertaler, die niet alleen meer dan twee keer zo lang bleek te zijn als het oorspronkelijke rapport van Menabrea, maar ook meer verhelderend, en verklaarde verschillende belangrijke kenmerken van wat we nu een computer voor algemeen gebruik zouden noemen.

Walter Isaacson, in zijn uitstekend leesbare boek De vernieuwers, gepubliceerd in 2014, beschrijft hoe Ada "verkenden vier concepten die een eeuw later, toen de computer eindelijk werd geboren, historische weerklank zouden vinden":

  • Ada erkende dat de Analytical Engine, in tegenstelling tot de Difference Engine, echt een apparaat voor algemene doeleinden was, omdat het niet alleen geprogrammeerd kon worden om één ding te doen, maar ook, en relatief gemakkelijk, opnieuw geprogrammeerd kon worden om een ​​totaal andere taak uit te voeren.

In Ada's eigen woorden (dit was een tijd waarin wetenschappelijke literatuur nog veel meer contact had met literatuur dan nu misschien):

The Difference Engine kan in werkelijkheid (zoals al gedeeltelijk is uitgelegd) niets anders doen dan toevoegen; en alle andere processen, met uitzondering van die van eenvoudig aftrekken, vermenigvuldigen en delen, kunnen er slechts door worden uitgevoerd in die mate waarin het mogelijk is, door verstandige wiskundige rangschikking en kunstgrepen, ze te reduceren tot een reeks optellingen. De methode van verschillen is in feite een methode van optellen; en aangezien het een groter aantal resultaten omvat dat door simpelweg optellen kan worden bereikt, dan enig ander wiskundig principe, werd het zeer geschikt gekozen als basis voor het bouwen van een optelmachine, om de krachten van zo'n machine te geven het grootst mogelijke bereik. De Analytical Engine daarentegen kan met evenveel gemak optellen, aftrekken, vermenigvuldigen of delen; en voert elk van deze vier bewerkingen op een directe manier uit, zonder de hulp van een van de andere drie. Dit ene feit houdt alles in; en het is bijvoorbeeld nauwelijks nodig om erop te wijzen dat terwijl de Difference Engine alleen maar kan tabelleren en niet in staat is zich te ontwikkelen, de Analytical Engine ofwel kan tabuleren of zich kan ontwikkelen.

  • Ada realiseerde zich dat de Analytical Engine niet beperkt was tot het coderen en rekenen met getallen. Hoewel digitaal en gebaseerd op het vermogen om numerieke berekeningen uit te voeren, zouden deze digitale bewerkingen, zo legde ze uit, in theorie logische proposities kunnen vertegenwoordigen (zoals we tegenwoordig als vanzelfsprekend beschouwen in if ... then ... else ... end if uitspraken), muzieknoten, enzovoort.

Zoals Ada het verwoordde:

[The Analytical Engine] zou naast het getal ook op andere dingen kunnen inwerken, als er objecten zouden worden gevonden waarvan de onderlinge fundamentele relaties zouden kunnen worden uitgedrukt door die van de abstracte wetenschap van operaties, en die ook vatbaar zouden zijn voor aanpassingen aan de werking van de werkingsnotatie en het mechanisme van de motor. Veronderstel bijvoorbeeld dat de fundamentele relaties van toonhoogten in de wetenschap van harmonie en van muzikale compositie vatbaar zouden zijn voor dergelijke expressie en aanpassingen, dan zou de engine uitgebreide en wetenschappelijke muziekstukken van elke graad van complexiteit of omvang kunnen componeren. De Analytical Engine is een belichaming van de wetenschap van operaties, geconstrueerd met een bijzondere verwijzing naar abstracte getallen als het onderwerp van die operaties.

  • Ada kwam met het concept om delen te hergebruiken van wat we nu programma's noemen. In die zin kan worden gezegd dat ze het concept van de subroutine heeft uitgevonden, inclusief recursieve subroutines (functies die de oplossing vereenvoudigen door een berekening op te splitsen in een reeks vergelijkbare subberekeningen en zichzelf vervolgens aan te roepen).
  • Ada beantwoordde eerst nuttig de vraag "Kunnen machines denken?" Dit is een probleem dat ons sindsdien zorgen baart.

De Frankenstein-verbinding

Ada's vader (hoewel ze hem nooit heeft ontmoet) was de beruchte dichter Lord Byron, die memorabel een regenachtige vakantie in Zwitserland doorbracht met het schrijven van horrorverhalen met zijn literaire kameraden Percy en Mary Shelley.

De inspanningen van Byron en Percy Shelley in deze vriendelijke schrijfwedstrijd zijn tegenwoordig volledig vergeten, maar de baanbrekende roman van Mary Shelley Frankenstein; of, The Modern Prometheus (gepubliceerd in 1818) is tot op de dag van vandaag populair en gerespecteerd.

Het verhaal van Frankenstein verkende op beroemde wijze de morele dilemma's rond wat we tegenwoordig kunstmatige intelligentie zouden kunnen noemen. (Vergeet niet dat Frankenstein de wetenschapper was die het experiment uitvoerde, niet de AI die uit het project voortkwam.)

Ada leek echter de dystopische zorgen van haar vaders vriend over Analytical Engines, of zelfs over computers in het algemeen, niet te delen.

Ze gaf de mening, in het laatste deel van haar Aantekeningen door de vertaler, dat:

De Analytical Engine heeft geen enkele pretentie om ook maar iets voort te brengen. Het kan doen wat we weten om het te laten presteren. Het kan analyse volgen; maar het heeft geen vermogen om te anticiperen op analytische relaties of waarheden. De provincie moet ons helpen bij het beschikbaar maken van wat we al kennen. Dit is de bedoeling dat het primair en voornamelijk natuurlijk via zijn uitvoerende faculteiten wordt verwezenlijkt; maar het is waarschijnlijk dat het op een andere manier een indirecte en wederzijdse invloed op de wetenschap zelf uitoefent. Want door de waarheden en de analyseformule zo te verspreiden en te combineren, dat ze het gemakkelijkst en snelst ontvankelijk worden voor de mechanische combinaties van de motor, worden de relaties en de aard van veel onderwerpen in die wetenschap noodzakelijkerwijs in een nieuw licht geworpen, en grondiger onderzocht. Dit is een duidelijk indirect en enigszins speculatief gevolg van een dergelijke uitvinding.

Iets meer dan 100 jaar later, toen Alan Turing de kwestie van kunstmatige intelligentie opnieuw besprak in zijn eigen paper Computermachines en intelligentie, en introduceerde zijn nu beroemde Turing-test, hij noemde dit Het bezwaar van Lady Lovelace.

Wat te doen?

De volgende keer dat je merkt dat je code schrijft zoals...

   -- Een funky ding: de Ackermann-functie. -- Berekenbaar, maar niet primitief recursief! -- (Je kunt het niet schrijven met gewoon oud voor -- loops, maar je kunt er zeker van zijn dat het zal eindigen, -- zelfs als het lang duurt.) local ack = function(m,n) if m == 0 dan retour n+1 end als n == 0 dan retour ack(m-1,1) end retour ack(m-1,ack(m,n-1)) end

... onthoud dat dit soort recursieve subroutines allemaal begonnen in de wetenschappelijke verbeelding van iemand die wist hoe een computer eruit zou moeten zien en hoe hij er waarschijnlijk uit zou zien, maar toch 100 jaar leefde (en helaas heel jong stierf) voordat een dergelijk apparaat ooit bestond voor haar om echt te hacken.

Hacken op echte computers is één ding, maar doelbewust hacken op denkbeeldige computers is tegenwoordig iets dat we ons alleen maar kunnen voorstellen.

Fijne Ada Lovelace-dag!


Tijdstempel:

Meer van Naakte beveiliging