Подвиньтесь, вторник обновлений – сегодня День Ады Лавлейс! PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Подвинься, вторник патчей — это день Ады Лавлейс!

Второй вторник каждого месяца — это обычный день Microsoft для обновлений безопасности, до сих пор известный почти всем под неофициальным прозвищем «Вторник исправлений».

Но второй вторник октября тоже Ада Лавлейс Дэй, празднуя Ада, графиня Лавлейс.

Ада была настоящим пионером не только вычислений, но и компьютерных наук, и дала свое имя языку программирования Ада.

Интригующим образом язык Ада появился в результате проекта Министерства обороны США, направленного на «разоблачение» мира правительственного кодирования, где каждое ведомство, казалось, отдавало предпочтение другому языку или другому языковому диалекту, что делало его более сложным, более дорогим и менее надежен, чтобы заставить их работать вместе.

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

Эпоха Ады Лавлейс

Вы можете быть удивлены, обнаружив, что, учитывая, насколько сильно имя Ады связано с зарождением компьютерных наук, она жила в первой половине девятнадцатого века, задолго до того, как появилось что-либо, что мы сейчас называем компьютером или даже калькулятором. .

(Ада умерла от рака матки в 1852 году, когда ей было всего 36 лет.)

Но хотя компьютеров в их современном понимании не существовало в 1800-х годах, они очень почти сделал.

Вот как это почти произошло.

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

aX6 + бХ5 +сХ4 +дХ3 +экс2 + fX + г = 0

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

И любая машина, способная к тригонометрическим вычислениям, также была бы удобна для вычисления таких вещей, как артиллерийские таблицы, которые могли бы произвести революцию в точности артиллерийских орудий на суше и на море.

Но у Бэббиджа было две проблемы.

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

Во-вторых, он, кажется, потерял интерес к Разностной машине, когда понял, что это тупик — говоря современным языком, вы можете думать о ней как о карманном калькуляторе, но не как о планшетном компьютере или ноутбуке.

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

Возможно, неудивительно, если, к сожалению, задним числом. правительство не очень интересовалось финансированием более продвинутого проекта Бэббиджа.

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

Европейская конференция

В любопытном повороте международного многоязычного сотрудничества Бэббидж отправился в Италию, чтобы прочитать лекцию, рекламирующую его аналитическую машину.

В аудитории был военный инженер по имени капитан Луиджи Менабреа, который таким образом был вдохновлен сотрудничать с Бэббиджем для выпуска статьи 1842 года, в которой описывалась машина.

Хотя он был итальянцем, Менабреа опубликовал свою статью на французском языке…

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

По настоянию Бэббиджа Ада также добавила ряд Примечания переводчика, который оказался не только более чем в два раза длиннее первоначального отчета Менабреа, но и более проницательным, объясняя несколько важных характеристик того, что мы теперь назвали бы компьютером общего назначения.

Уолтер Айзексон в своей превосходно читаемой книге Новаторы, опубликованный в 2014 году, описывает, как Ада «исследовал четыре концепции, которые столетие спустя, когда, наконец, родился компьютер, будут иметь исторический резонанс»:

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

По словам самой Ады (это была эпоха, когда научная литература все еще была связана с литературой гораздо больше, чем, возможно, сегодня):

В действительности разностная машина может (как уже частично объяснялось) ничего не делать, кроме добавления; и любые другие процессы, не исключая простых процессов вычитания, умножения и деления, могут быть выполнены ею лишь в той мере, в какой возможно путем разумного математического устройства и ухищрений свести их к ряду сложений. Метод разностей есть, по сути, метод дополнений; и поскольку он включает в себя большее количество результатов, достижимых простым сложением, чем любой другой математический принцип, он был очень удачно выбран в качестве основы для построения счетной машины, чтобы придать мощности такой машине максимально широкий диапазон. Аналитическая машина, напротив, может с одинаковой легкостью складывать, вычитать, умножать или делить; и выполняет каждую из этих четырех операций напрямую, без помощи какой-либо из трех других. Этот один факт подразумевает все; и вряд ли нужно указывать, например, что в то время как разностная машина может просто составлять таблицы и не способна к развитию, аналитическая машина может либо табулировать, либо разрабатывать.

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

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

[Аналитическая машина] могла бы воздействовать не только на число, но и на другие вещи, если бы были найдены объекты, взаимные фундаментальные отношения которых могли бы быть выражены отношениями абстрактной науки об операциях, и которые также должны были бы поддаваться адаптации к действию операционных обозначений и механизма операций. двигатель. Предположим, например, что фундаментальные отношения тональности звуков в науке о гармонии и музыкальном сочинении поддаются такому выражению и адаптации, машина может сочинять сложные и научные музыкальные произведения любой степени сложности и объема. Аналитическая машина — это воплощение науки об операциях, построенная с особым обращением к абстрактному числу как к предмету этих операций.

  • Ада придумала концепцию повторного использования частей того, что мы сейчас называем программами. В этом смысле можно сказать, что она изобрела концепцию подпрограммы, включая рекурсивные подпрограммы (функции, которые упрощают решение, разбивая вычисление на серию подобных подвычислений, а затем вызывая сами себя).
  • Ада впервые правильно ответила на вопрос «Могут ли машины думать?» С тех пор этот вопрос беспокоит нас.

Связь с Франкенштейном

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

Усилия Байрона и Перси Шелли в этом дружеском соревновании писателей сегодня полностью забыты, но основополагающий роман Мэри Шелли Франкенштейн; или «Современный Прометей» (опубликовано в 1818 г.) пользуется популярностью и уважением по сей день.

История Франкенштейна лихо исследовала моральные дилеммы, связанные с тем, что мы сегодня можем назвать искусственным интеллектом. (Не забывайте, что Франкенштейн был ученым, проводившим эксперимент, а не ИИ, появившимся в результате проекта.)

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

Она высказала свое мнение в заключительном разделе своего Примечания переводчика, который:

Аналитическая машина не претендует на то, чтобы что-то создать. Он может делать все, что мы знаем, как приказать ему выполнять. Он может следовать за анализом; но оно не имеет силы предвосхищать какие-либо аналитические отношения или истины. Его задача — помочь нам сделать доступным то, с чем мы уже знакомы. Он рассчитан на то, чтобы осуществить это прежде всего и главным образом, конечно, посредством своих исполнительных способностей; но, вероятно, косвенное и взаимное влияние на саму науку оно оказывает иным образом. Ибо при таком распределении и комбинировании истин и формул анализа, чтобы они могли наиболее легко и быстро поддаться механическим комбинациям машины, отношения и природа многих предметов в этой науке необходимо предстают в новом свете. и более глубоко исследованы. Это определенно косвенное и несколько спекулятивное следствие такого изобретения.

Чуть более 100 лет спустя, когда Алан Тьюринг, как известно, вновь обратился к проблеме искусственного интеллекта в своей статье. Вычислительная техника и интеллект, и представил свою ныне известный тест Тьюринга, он назвал это Возражение леди Лавлейс.

Что делать?

В следующий раз, когда вы обнаружите, что пишете код, такой как…

   -- Странная штука: функция Аккермана. -- Вычислимо, но не примитивно рекурсивно! -- (Вы не можете написать его с помощью старых -- циклов for, но вы можете быть уверены, что он завершится, -- даже если это займет оооооооооооооооооооооооооооооооооооооооооооооооооооо Из из из из изумления) local ack = function(m,n) if m == 0, затем вернуть n+1 end, если n == 0, затем вернуть ack(m-1,1) end return ack(m-1,ack(m,n-1)) end

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

Взлом реальных компьютеров — это одно, а целенаправленный взлом воображаемых компьютеров — это то, что в наши дни мы можем только представить.

С Днем Ады Лавлейс!


Отметка времени:

Больше от Голая Безопасность