Przejdź do Patch Tuesday – to dzień Ady Lovelace! Inteligencja danych PlatoBlockchain. Wyszukiwanie pionowe. AI.

Przenieś się we wtorek patcha – to Dzień Ady Lovelace!

Drugi wtorek każdego miesiąca jest dla Microsoftu zwykłym dniem aktualizacji zabezpieczeń, wciąż znanym prawie wszystkim pod nieoficjalnym pseudonimem „Wtorek poprawek”.

Ale drugi wtorek października też jest Dzień Ady Lovelace, świętujemy Ada, hrabina Lovelace.

Ada była prawdziwym pionierem nie tylko informatyki, ale także informatyki i dała swoje imię językowi programowania Ada.

Język Ada, co intrygujące, wyłonił się z projektu Departamentu Obrony USA, mającego na celu „debabelię” świata rządowego kodowania, gdzie każdy departament zdawał się faworyzować inny język lub inny dialekt językowy, czyniąc go trudniejszym, droższym i mniej niezawodne, aby skłonić ich do współpracy.

Ada posiadała wiele funkcji składniowych mających na celu poprawę czytelności i uniknięcie typowych błędów. W przeciwieństwie do komentarzy w C, które zaczynają się od /* i biegnij do następnego */, być może wiele linijek później, Ada po prostu ignoruje wszystko później -- w jednym wierszu, aby komentarze nie mogły przypadkowo przebiegać dalej, niż zamierzałeś. Zamiast zamykać wszystkie bloki kodu wielowierszowego w nawiasach kwadratowych ({...}, znany również jako szelki), Ada ma unikalny terminator dla każdego rodzaju bloku wieloliniowego, np. end record, end loop i end if. Podejrzewamy, że Ada Lovelace pochwaliłaby przejrzystość swojego imiennika, ale Ada-the-language nigdy się nie chwycił, a składnia nawiasów falistych C w dużej mierze zwyciężyła, a Python jest prawdopodobnie jedynym językiem bez nawiasów falistych w powszechne stosowanie. Nawiasy kwadratowe są istotnym aspektem C, C++, C#, Go, Java, JavaScript, Perl, Rust i wielu innych popularnych języków.

Era Ady Lovelace

Możesz być zaskoczony, gdy zważywszy, jak mocno nazwisko Ady kojarzy się z początkami informatyki, żyła w pierwszej połowie XIX wieku, na długo przed zaistnieniem czegokolwiek, co obecnie rozpoznajemy jako komputer, a nawet kalkulator. .

(Ada zmarła na raka macicy w 1852 roku w wieku zaledwie 36 lat.)

Ale chociaż komputery we współczesnym znaczeniu nie istniały w XIX wieku, niemal nie.

Oto jak to się prawie stało.

Charles Babbage na początku XIX wieku wymyślił słynne mechaniczne urządzenie liczące o nazwie Różnica silnika który mógłby, przynajmniej teoretycznie, automatycznie rozwiązywać równania wielomianowe w szóstym stopniu, np. przez znalezienie wartości dla X, które spełniałyby:

aX6 + bX5 +cX4 +dX3 +ex2 + f X + g = 0

Rząd Wielkiej Brytanii był zainteresowany, ponieważ tego rodzaju urządzenie mogło posłużyć do tworzenia dokładnych tablic matematycznych, takich jak pierwiastki kwadratowe, logarytmy i współczynniki trygonometryczne.

Każda maszyna dobra w obliczeniach trygonometrycznych byłaby również przydatna do obliczania takich rzeczy, jak tabele artyleryjskie, które mogłyby zrewolucjonizować celność artylerii na lądzie i morzu.

Ale Babbage miał dwa problemy.

Po pierwsze, nigdy nie był w stanie osiągnąć inżynieryjnej precyzji potrzebnej do prawidłowego działania Silnika Różnicowego, ponieważ wymagał on wystarczającej liczby zazębiających się kół zębatych, które powodowały luz (niewielkie, ale kumulacyjne niedokładności prowadzące do „niechlujstwa” w mechanizmie).

Po drugie, wydaje się, że stracił zainteresowanie silnikiem różnicowym, kiedy zdał sobie sprawę, że to ślepy zaułek – w dzisiejszych czasach można go traktować jako kalkulator kieszonkowy, ale nie jako tablet lub laptop.

Tak więc Babbage posunął się naprzód, projektując jeszcze bardziej złożone urządzenie, które nazwał Silnik analityczny, który mógłby rozwiązać znacznie bardziej ogólne problemy naukowe niż jeden rodzaj równania wielomianowego.

Być może nie jest to zaskakujące, choć niestety z perspektywy czasu. rząd nie był szczególnie zainteresowany finansowaniem bardziej zaawansowanego projektu Babbage'a.

Biorąc pod uwagę, że nie zdołał zbudować mechanizmu potrzebnego do znacznie prostszego narzędzia do rozwiązywania równań, jakie szanse miał gigantyczny, napędzany parą komputer ogólnego przeznaczenia, na uzyskanie jakichkolwiek użytecznych wyników?

Europejski obwód konferencyjny

W ciekawym skręcie międzynarodowej, wielojęzycznej współpracy, Babbage udał się do Włoch, aby wygłosić wykład promujący jego silnik analityczny.

Na widowni był inżynier wojskowy, kapitan Luigi Menabrea, który został w ten sposób zainspirowany do współpracy z Babbage w celu opracowania artykułu z 1842 roku opisującego maszynę.

Chociaż był Włochem, Menabrea opublikował swoją pracę po francusku…

…i to Ada Lovelace przetłumaczyła artykuł Menabrei na angielski.

Za namową Babbage'a Ada dodała również serię Notatki tłumacza, który okazał się nie tylko ponad dwukrotnie dłuższy niż oryginalny raport Menabrei, ale także bardziej wnikliwy, wyjaśniając kilka ważnych cech tego, co teraz nazwalibyśmy komputerem ogólnego przeznaczenia.

Walter Isaacson w swojej doskonale czytelnej książce Innowatorzy, opublikowany w 2014 roku, opisuje, jak Ada „zbadałem cztery koncepcje, które miałyby rezonans historyczny sto lat później, gdy komputer w końcu się narodził”:

  • Ada uznała, że ​​silnik analityczny, w przeciwieństwie do silnika różnicowego, był naprawdę urządzeniem ogólnego przeznaczenia, ponieważ można go było nie tylko zaprogramować do wykonywania jednej rzeczy, ale także, stosunkowo łatwo, przeprogramować do wykonywania zupełnie innego zadania.

Według własnych słów Ady (był to wiek, w którym literatura naukowa miała jeszcze większy kontakt z literaturą niż być może dzisiaj):

Mechanizm Różnicowy może w rzeczywistości (jak już częściowo wyjaśniono) robić nic poza dodawaniem; a wszelkie inne procesy, nie wyłączając prostych odejmowań, mnożenia i dzielenia, mogą być przez nią wykonywane tylko w takim stopniu, w jakim można je sprowadzić za pomocą rozsądnego matematycznego układu i sztuczek do szeregu dodawania. Metoda różnic jest w rzeczywistości metodą dodawania; a ponieważ zawiera w swoich środkach większą liczbę wyników osiągalnych po prostu przez dodawanie, niż jakakolwiek inna zasada matematyczna, została ona bardzo odpowiednio dobrana jako podstawa do skonstruowania maszyny sumującej, aby nadać mocom takiej maszyny najszerszy możliwy zasięg. Natomiast silnik analityczny może z równą łatwością dodawać, odejmować, mnożyć lub dzielić; i wykonuje każdą z tych czterech operacji w sposób bezpośredni, bez pomocy żadnej z pozostałych trzech. Ten jeden fakt implikuje wszystko; i nie ma potrzeby wskazywać, na przykład, że podczas gdy machina różnicowa może jedynie zestawiać tabele i nie jest zdolna do rozwijania się, machina analityczna może albo tworzyć tabele, albo się rozwijać.

  • Ada zdała sobie sprawę, że silnik analityczny nie ogranicza się do kodowania i obliczania liczb. Chociaż cyfrowe i oparte na zdolności do wykonywania obliczeń numerycznych, te operacje cyfrowe, wyjaśniła, mogą teoretycznie reprezentować logiczne twierdzenia (co dziś przyjmujemy za pewnik if ... then ... else ... end if wypowiedzi), nuty i tak dalej.

Jak ujęła to Ada:

[Maszyna analityczna] mogłaby oddziaływać na inne rzeczy niż liczba, gdyby znaleziono obiekty, których wzajemne fundamentalne relacje mogłyby być wyrażone przez relacje abstrakcyjnej nauki o operacjach, i które powinny być również podatne na adaptacje do działania notacji operacyjnej i mechanizmu silnik. Zakładając, na przykład, że podstawowe relacje dźwięków tonowych w nauce o harmonii i kompozycji muzycznej podlegają takiej ekspresji i adaptacji, silnik mógłby komponować wyszukane i naukowe utwory muzyczne o dowolnym stopniu złożoności lub zasięgu. Silnik analityczny jest ucieleśnieniem nauki o operacjach, skonstruowanym ze szczególnym odniesieniem do liczby abstrakcyjnej jako przedmiotu tych operacji.

  • Ada wpadła na pomysł ponownego wykorzystania części tego, co teraz nazywamy programami. W tym sensie można powiedzieć, że wynalazła pojęcie podprogramu, w tym podprogramów rekurencyjnych (funkcji, które upraszczają rozwiązanie, dzieląc obliczenie na szereg podobnych podprogramów, a następnie wywołując siebie).
  • Ada najpierw skutecznie odpowiedziała na pytanie „Czy maszyny mogą myśleć?” To kwestia, która od tamtej pory nas niepokoi.

Połączenie z Frankensteinem

Ojcem Ady (choć nigdy go nie spotkała) był niesławny poeta Lord Byron, który pamiętnie spędził deszczowe wakacje w Szwajcarii, pisząc horrory ze swoimi literackimi kumplami Percym i Mary Shelleyami.

Wysiłki Byrona i Percy’ego Shelleya w tym przyjaznym konkursie pisarskim są dziś całkowicie zapomniane, ale przełomowa powieść Mary Shelley Frankenstein; lub Współczesny Prometeusz (opublikowany w 1818 r.) jest popularny i szanowany do dziś.

Historia Frankensteina słynie z eksploracji dylematów moralnych otaczających to, co dziś możemy nazwać sztuczną inteligencją. (Nie zapominaj, że Frankenstein był naukowcem, który przeprowadził eksperyment, a nie sztuczną inteligencją, która wyłoniła się z projektu.)

Jednak Ada najwyraźniej nie podzielała dystopijnych obaw przyjaciela jej ojca o Silniki Analityczne, ani w ogóle o komputery.

Przedstawiła opinię w końcowej części jej Notatki tłumacza, że:

Silnik analityczny nie ma żadnych pretensji, by cokolwiek stworzyć. Może robić wszystko, co wiemy, jak zlecić jej wykonanie. Może śledzić analizę; ale nie ma mocy antycypowania jakichkolwiek relacji analitycznych czy prawd. Jej zadaniem jest pomagać nam w udostępnianiu tego, co już znamy. Ma to na celu przede wszystkim i przede wszystkim oczywiście poprzez swoje władze wykonawcze; ale prawdopodobnie będzie wywierać pośredni i wzajemny wpływ na samą naukę w inny sposób. Albowiem tak rozdzielając i łącząc prawdy i formuły analizy, aby najłatwiej i najszybciej mogły one stać się podatnymi na mechaniczne kombinacje silnika, relacje i charakter wielu przedmiotów w tej nauce są z konieczności rzucane na nowe światło. i głębiej zbadane. Jest to zdecydowanie pośrednia i nieco spekulacyjna konsekwencja takiego wynalazku.

Nieco ponad 100 lat później, kiedy Alan Turing w swoim artykule ponownie poruszył kwestię sztucznej inteligencji Maszyny obliczeniowe i inteligencja, i przedstawił jego obecnie słynny test Turinga, nazwał to Sprzeciw Lady Lovelace.

Co robić?

Następnym razem, gdy będziesz pisać kod, taki jak…

   -- Zabawna rzecz: funkcja Ackermanna. -- Obliczalne, ale nie prymitywne rekurencyjne! -- (Nie możesz napisać tego za pomocą zwykłych starych pętli for --, ale możesz być pewien, że się skończy, -- nawet jeśli zajmie to dłuuuuuuumiło czasu.) local ack = function(m,n) if m == 0 wtedy zwróć n+1 koniec jeśli n == 0 to zwróć ack(m-1,1) end return ack(m-1,ack(m,n-1)) end

… pamiętajcie, że podprogramy rekurencyjne tego rodzaju zaczęły się w naukowej wyobraźni kogoś, kto wiedział, jak komputer powinien wyglądać i jak prawdopodobnie będzie wyglądał, ale żył (i niestety umarł bardzo młodo) 100 lat przed jakimkolwiek takim urządzeniem. istniał, aby mogła się do niej włamać na serio.

Hakowanie na rzeczywistych komputerach to jedno, ale hakowanie celowe na wyimaginowanych komputerach jest obecnie czymś, co możemy tylko sobie wyobrazić.

Szczęśliwego Dnia Ady Lovelace!


Znak czasu:

Więcej z Nagie bezpieczeństwo