вторник, 21 марта 2017 г.

Генератор фантастических идей

На стенд в кабинете информатики.
Джон Маккарти (4 сентября 1927, Бостон) — выдающийся американский информатик, автор термина «искусственный интеллект» (1955), изобретатель языка Лисп (1958), основоположник функционального программирования, лауреат Премии Тьюринга (1971) за огромный вклад в область исследований искусственного интеллекта.
В 1950-х годах специалис­ты по искусственному ин­теллекту начали искать язык, при­годный для манипулирования поня­тиями, выраженными словами и фразами на естественном языке. (Искусственный интеллект — раз­дел информатики, ставящий сво­ей целью разработку методов решения задач, для которых отсутствуют формальные алгоритмы: понимание ес­тественного языка, обучение, доказательство теорем, распознавание обра­зов.) Первый результат тут был полу­чен в виде семейства языков под на­званием ИПЛ (IPL, от InformationPro­cessing Languages— языки обработки ин­формации), созданного одним из пио­неров в области искусственного интел­лекта Алленом Ньюэллом и его сотруд­никами. Центральным для ИПЛ являлось понятие списка. Представляя данные в виде списка слов и символов, програм­мист мог связать понятия в памяти ком­пьютера приблизительно таким же об­разом, как, по мнению специалистов по искусственному интеллекту, они связы­ваются в памяти человека [1].
Понятием списка заинтересовался и Джон Маккарти, разносторонний мате­матик, один из ведущих исследовате­лей в области искусственного интел­лекта (причем сам термин искусствен­ный интеллект был предложен имен­но им в 1956 году).
Маккарти родился в 1927 году в се­мье профсоюзного деятеля. Среди его многочисленных работ наиболее важ­ные относятся к концу 1950-х годов, когда он работал в Массачусетсском технологическом институте (МТИ), Мак­карти был генератором самых фанта­стических идей, а также "человеком по­разительной внешности с... шокирую­щими манерами, например, привычкой поворачиваться и уходить, оборвав разговор на полуслове" [2].
В 1957—1958 годах по инициативе Маккарти при МТИ сформировалась лаборатория искусственного интеллек­та, и он вместе с несколькими студен­тами стал создавать язык высокого уровня, в котором понятие списка со­четалось с системой обозначений, за­имствованной из специального разде­ла математики — так называемого лямбда-исчисления (λ - исчисления). Введенное в 1931 году математиком Алонзо Черчем, лямбда-исчисление оперирует всего тремя типами элементов [3]: символами, представ­ляющими перемен­ные и константы; скобками для груп­пировки символов; обозначениями функ­ций с использовани­ем греческой буквы, лямбда.
Появившийся вскоре язык получил название Лисп (LISP,от LISt Proces­sing — обработка спис­ков). Спустя какое-то вре­мя вышла статья Маккар­ти "Рекурсивные функции и символьные вычисления" [4] с математическим обо­снованием применения Лиспа. "Лисп являлся для нас не просто языком, ко­торый используют для определенных целей, — говорил один из студентов, помогавших Маккарти, — им можно было любоваться, как прелестной вещью" [1].
Программы и данные Лиспа существу­ют в форме символьных выражений, хра­нимых в виде "списковых" структур. Упот­ребляются два вида объектов: атомы и списки. Атомы — это символы, применя­емые для идентификации объектов, ко­торые могут быть числовыми или сим­вольными. Список — это последовательность (возможно, пустая) элементов, зак­люченных в круглые скобки, каждый из которых является либо атомом, либо списком. Для манипулирования списка­ми употребляются так называемые спи­сочные примитивы (примитивные функ­ции), из которых получаются все дру­гие функции обработки списков [1, 3, 5—7]. Первая реализация Лиспа была осуществлена на ламповом компьюте­ре IBM7 04. [У нас первый транслятор (интерпретатор) Лиспа был создан для БЭСМ-6 в конце 1960-х годов.]
Даже небольшой фрагмент програм­мы на Лиспе способен содержать де­сятки пар скобок, куда заключены спис­ки. Часто пары скобок вкладываются друг в друга, образуя список внутри списка, который, в свою очередь, так­же находится внутри списка (иногда бывает 8—10 уровней вложенности). Характерная особенность языка Лисп "состоит в том, что и программы, и дан­ные, обрабатываемые с их помощью, имеют одинаковую структуру.
В 1960-е годы предпринимались по­пытки аппаратной реализации Лиспа, однако реальная возможность решения этой задачи появилась позже, когда на­чало интенсивно развиваться производ­ство интегральных схем. А с 1982 года Лисп-компьютеры (с реализацией раз­личных версий языка) стали выпускаться серийно целым рядом фирм.
Скорость и легкость, с которой можно писать, выполнять и изменять программы на Лиспе, способствовали появлению многочисленных поклонников этого языка и вне лабораторий искусственного интеллекта [1]. Подобно большинству популярных языков, Лисп имеет достаточно большое "потомство". Так, в Великобритании употреблялся появившийся в 1960-х годах язык ПОП-2 (POP2), названный в честь одного из его создателей Робина Дж. Поплстона из Эдинбургского университета.
Лиспу уже много лет, и, не смотря на то, что этот язык имеет oпределенные недостатки (например связанные с уже отмечавшейся необходимостью использования большого количества скобок), он весьма широко применяется на всех этапах создания систем искусственного интеллекта вообще решения сложных логических задач. "LISP... в течение длительного времени рассматривался как кандидат на стандарт языка в области искусственного интеллекта. Позднее в эти npитязания вмешался Prolog" [8].
В 1959 году Маккарти предложил концепцию разделения времени (режим работы компьютера, позволяющий нескольким программистам, работая за разными терминалами, одновременно использовать его память и процессор) [1,2]. Тем самым специалисты избавлялись от необходимости ждать несколько часов или даже дней, пока их задания будут обработаны машиной. (По другим данным [9] идею разделения времени впервые высказал англичанин К.Стрейчи.)
Литература:
  1. Язык компьютера: Пер. с англ. М.: Мир, 1989.
  2. Компьютер обретает разум: Пер. с ан М.: Мир, 1990.
  3. Малыхина М.П., Частиков А.Л. Языки программирования: Лисп // Новое в жизни, науке, технике. Сер. "Вычислительная техника и применение", № 3/89.
  4. MеCarthy J. Recursive Functions of Symtx Expressions and Their Computation by Machine Part 1.Communications of the Associations Computing Machinery,.1960, vol. 3, no. 4.
  5. Хелмс Г.Л. Языки программирования: Пер. с англ. М.: Радио и связь, 1985.
  6. Лисп//Информатика,№ 17/2000.
  7. (Lots (of (Idiotic (Silly (Parentheses))))) Информатика, № 40/2001.
  8. Толковый словарь по вычислительной технике (MicrosoftCorporation): Пер. с англ. М.: Издательский отдел "Русская редакция" Ti "ChannelTradingLtd.", 1995.
  9. Частиков АЛ. От калькулятора до супер ЭВМ // Новое в жизни, науке, технике. Сер. "Вычислительная техника и ее применение", № 1/88


Комментариев нет :

Отправить комментарий

Номер страницы