Перейдіть на наступний вівторок – це День Ади Лавлейс! PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Перейдіть на наступний вівторок – це День Ади Лавлейс!

Другий вівторок кожного місяця є звичайним днем ​​Microsoft для оновлень системи безпеки, досі відомим майже всім під його неофіційним прізвиськом «Вівторок виправлення».

Але другий вівторок жовтня також є День Ада Лавлейс, святкування Ада, графиня Лавлейс.

Ада була справжнім піонером не лише обчислювальної техніки, а й інформатики, і дала своє ім’я мові програмування Ada.

Цікаво, що мова Ada виникла в результаті проекту Міністерства оборони США, спрямованого на «дебабілізацію» світу урядового кодування, де кожен департамент, здавалося, віддавав перевагу іншій мові або іншому мовному діалекту, що робило його складнішим, дорожчим і менш надійні, щоб змусити їх працювати разом.

Ada мала численні синтаксичні функції, спрямовані на покращення читабельності та уникнення типових помилок. На відміну від коментарів у C, які починаються з /* і бігти до наступного */, можливо, багато рядків пізніше, Ада просто ігнорує будь-що після -- на будь-якому рядку, тому коментарі не можуть випадково розміститися далі, ніж ви планували. Замість того, щоб включати всі блоки багаторядкового коду в хвилясті дужки ({...}, також відомий як фігурні дужки), Ada має унікальний термінатор для кожного типу багаторядкового блоку, наприклад end record, end loop та end if. Ада Лавлейс, як ми підозрюємо, аплодувала б чіткості своєї однофамільської мови, але ада-мова так і не прижилася, і синтаксис C у звивистих дужках значною мірою виграв день, а Python, мабуть, єдина мова без звивистих дужок у широке використання. Вигнуті дужки є життєво важливим аспектом C, C++, C#, Go, Java, JavaScript, Perl, Rust та багатьох інших популярних мов.

Епоха Ади Лавлейс

Ви можете бути здивовані, зважаючи на те, наскільки ім’я Ади пов’язане з витоками інформатики, що вона жила в першій половині дев’ятнадцятого століття, задовго до того, як існувало щось, що ми зараз визнаємо як комп’ютер чи навіть калькулятор. .

(Ада померла від раку матки в 1852 році у віці всього 36 років.)

Але хоча комп’ютерів у їх сучасному розумінні не існувало в 1800-х роках, вони дуже майже зробив.

Ось як це майже сталося.

На початку 1800-х років Чарльз Беббідж винайшов знаменитий механічний обчислювальний пристрій під назвою Двигун різниці який міг би, принаймні теоретично, автоматично розв’язувати поліноміальні рівняння шостого ступеня, наприклад, шляхом знаходження значень для X, які задовольняли б:

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

Уряд Сполученого Королівства був зацікавлений, оскільки пристрій такого роду можна було використовувати для створення точних математичних таблиць, таких як квадратні корені, логарифми та тригонометричні співвідношення.

І будь-яка машина, яка добре справляється з тригонометричними обчисленнями, також буде зручною для обчислень таких речей, як таблиці стрільби, які могли б революціонізувати точність артилерії на суші та на морі.

Але Беббідж мав дві проблеми.

По-перше, він ніколи не міг досягти інженерної точності, необхідної для правильної роботи механізму відмінностей, оскільки він включав достатньо багато з’єднаних шестерень, щоб люфт (маленькі, але кумулятивні неточності, що призводять до «недбалості» в механізмі) заблокував його.

По-друге, він, схоже, втратив інтерес до Difference Engine, коли зрозумів, що це глухий кут — за сучасними термінами ви можете сприймати його як кишеньковий калькулятор, але не як планшет чи ноутбук.

Тож Беббідж зробив крок вперед, розробивши ще більш складний пристрій, який він назвав Аналітичний двигун, який міг би розробити набагато більш загальні наукові проблеми, ніж один вид поліноміального рівняння.

Можливо, це не дивно, хоча, на жаль, заднім числом. Уряд не був дуже зацікавлений у фінансуванні більш прогресивного проекту Беббіджа.

Враховуючи те, що йому не вдалося побудувати механізм, потрібний для набагато простішого розв’язника рівнянь, які шанси мав гігантський, паровий, універсальний комп’ютер коли-небудь дати будь-які корисні результати?

Європейська конференц-схема

У рамках цікавого повороту міжнародної багатомовної співпраці Беббідж поїхав до Італії, щоб прочитати лекцію про свою аналітичну машину.

В аудиторії був військовий інженер на ім’я капітан Луїджі Менабреа, який був надихнутий співпрацювати з Беббіджем для створення статті 1842 року з описом машини.

Хоча він був італійцем, Менабреа опублікував свою статтю французькою...

…і саме Ада Лавлейс переклала статтю Менабреї на англійську мову.

За наполяганням Беббіджа Ада також додала серію Примітки перекладача, який виявився не лише більш ніж удвічі довшим за початковий звіт Менабреа, але й більш проникливим, пояснюючи кілька важливих характеристик того, що ми тепер називаємо комп’ютером загального призначення.

Волтер Айзексон у своїй чудово читабельній книзі Новатори, опублікований у 2014 році, описує, як Ада «дослідив чотири концепції, які мали б історичний резонанс через століття, коли нарешті народився комп’ютер»:

  • Ада визнала, що аналітична машина, на відміну від Difference Engine, справді є пристроєм загального призначення, тому що його можна було не лише запрограмувати на виконання однієї справи, але й порівняно легко перепрограмувати на виконання зовсім іншого завдання.

За словами самої Ади (це була епоха, коли наукова література все ще мала більше зв’язку з літературою, ніж, можливо, сьогодні):

Насправді Difference Engine (як уже було частково пояснено) може робити лише додавання; і будь-які інші процеси, не за винятком простих віднімання, множення та ділення, можуть бути виконані ним лише в тій мірі, в якій можливо, за допомогою розумного математичних упорядковань і хитрощів, звести їх до серії додавання. Метод відмінностей є, по суті, методом додавання; і оскільки він включає в себе більшу кількість результатів, які можна отримати простим додаванням, ніж будь-який інший математичний принцип, він був дуже доречно обраний як основа для побудови додавальної машини, щоб надати повноваженням такої машини максимально широкий діапазон. Навпаки, аналітична машина може додавати, віднімати, множити або ділити з рівною легкістю; і виконує кожну з цих чотирьох операцій безпосередньо, без допомоги жодної з трьох інших. Цей один факт означає все; і навряд чи потрібно зазначати, наприклад, що в той час як механізм відмінностей може просто складати таблиці та не здатний розвиватися, аналітичний механізм може або складати таблиці, або розвивати.

  • Ада зрозуміла, що аналітична машина не обмежується кодуванням і обчисленнями з числами. Незважаючи на те, що ці цифрові операції засновані на здатності виконувати численні обчислення, вони, пояснила вона, теоретично можуть представляти логічні пропозиції (як ми сьогодні сприймаємо як належне в if ... then ... else ... end if заяви), музичні ноти тощо.

Як сказала Ада:

[Аналітична машина] могла б впливати на інші речі, окрім числа, якщо були б знайдені об’єкти, взаємні фундаментальні зв’язки яких можна було б виразити за допомогою абстрактної науки про операції, і які також повинні бути сприйнятливими до адаптації до дії робочої нотації та механізму двигун. Якщо припустити, наприклад, що фундаментальні зв’язки між високими звуками в науці про гармонію та музичну композицію піддаються такому вираженню та адаптації, машина може створювати складні та наукові музичні твори будь-якого ступеня складності та обсягу. Аналітична машина є втіленням науки про операції, побудованої з особливим посиланням на абстрактне число як предмет цих операцій.

  • Ада придумала концепцію повторного використання частин того, що ми зараз називаємо програмами. У цьому сенсі можна сказати, що вона винайшла концепцію підпрограми, включаючи рекурсивні підпрограми (функції, які спрощують рішення, розбиваючи обчислення на ряд подібних підобчислень, а потім викликаючи самі себе).
  • Ада вперше відповіла на запитання «Чи можуть машини думати?» Це питання хвилює нас відтоді.

Зв'язок Франкенштейна

Батьком Ади (хоча вона ніколи не зустрічалася з ним) був сумно відомий поет лорд Байрон, який незабутньо провів дощову відпустку в Швейцарії, пишучи історії жахів зі своїми літературними друзями Персі та Мері Шеллі.

Зусилля Байрона та Персі Шеллі в цьому дружньому письменницькому змаганні сьогодні зовсім забуто, але основоположний роман Мері Шеллі Франкенштейн; або, Сучасний Прометей (опублікований у 1818 р.) популярний і шанований донині.

Відома історія Франкенштейна досліджує моральні дилеми навколо того, що ми сьогодні можемо назвати штучним інтелектом. (Не забувайте, що Франкенштейн був ученим, який проводив експеримент, а не штучним інтелектом, який вийшов із проекту.)

Однак Ада, схоже, не поділяла антиутопічних занепокоєнь друга свого батька щодо аналітичних механізмів чи комп’ютерів загалом.

Вона висловила свою думку в останньому розділі Примітки перекладача, що:

Аналітична машина не має жодних претензій створювати щось. Він може робити все, що ми знаємо, як наказати йому виконувати. Він може слідувати за аналізом; але він не має сили передбачити будь-які аналітичні відносини чи істини. Його функція полягає в тому, щоб допомогти нам зробити доступним те, з чим ми вже знайомі. Це він розрахований на те, щоб вплинути насамперед і головним чином, звичайно, через свої виконавчі здібності; але ймовірно, що він справлятиме непрямий і зворотний вплив на саму науку в інший спосіб. Бо, розподіляючи та комбінуючи істини та формули аналізу таким чином, щоб вони могли стати найлегше та швидше підданими механічним комбінаціям двигуна, відносини та природа багатьох предметів у цій науці обов’язково висвітлюються в новому світлі, і глибше досліджено. Це однозначно непрямий і дещо спекулятивний наслідок такого винаходу.

Трохи більше ніж через 100 років, коли Алан Тьюрінг знову звернувся до проблеми штучного інтелекту у своїй власній статті Обчислювальна техніка та інтелект, і представив його нині відомий тест Тюрінга, він назвав це Заперечення леді Лавлейс.

Що ж робити?

Наступного разу, коли ви опинитеся на написанні такого коду, як...

   -- Дивна річ: функція Аккермана.
   -- Обчислювана, але не примітивно рекурсивна!
   -- (Ви не можете написати це простим старим для
   -- цикли, але ви можете бути впевнені, що це закінчиться,
   -- навіть якщо це займе багато часу.)

   локальне підтвердження = функція(m,n)
      якщо m == 0, то повертає n+1 end
      якщо n == 0, тоді повертається ack(m-1,1) end
      повернути ack(m-1,ack(m,n-1))
   кінець

…пам’ятайте, що подібні рекурсивні підпрограми виникли в науковій уяві людини, яка знала, як має виглядати комп’ютер і як він, ймовірно, виглядатиме, але все ж прожила (і, на жаль, померла дуже молодою) за 100 років до будь-якого такого пристрою. існувала для неї, щоб справді зламати її.

Злом реальних комп’ютерів – це одне, але цілеспрямований злом уявних комп’ютерів – це те, що ми можемо лише уявити.

З Днем Ади Лавлейс!


Часова мітка:

Більше від Гола безпека