Языки программирования  

 

Язык программирования IPL (Information Processing Language — «язык обработки информации»)
Автор Аллен Ньюэлл (Allen Newell)
Язык программирования Lisp (LISt Processing language — «язык обработки списков»)
Автор Джон Маккарти (John McCarthy)

 

Аллен Ньюэлл

Grace Murray Hopper

19.03.1927 – 19.07.1992

Джон Маккарти

John McCarthy

04.09.1927 – 24.10.2011

С 50-х годов специалисты по искусственному интеллекту искали язык, пригодный для манипулирования понятиями, выраженными словами и фразами на естественном языке. Первым результатом этих поисков явилось семейство языков под названием IРL, от Information Processing Languages — языки обработки информации). Оно было создано пионером по искусственному интеллекту Алленом Ньюэллом и его сотрудниками. Вначале работа велась в «Рэнд корпорейшн», а затем в Технологическом институте Карнеги (позднее Карнеги—Меллона) в Питтсбурге, бастионе исследований по искусственному интеллекту.

Центральной идеей IPL было понятие списка.

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

Понятие списка интересовало и другого выдающегося члена тесного сообщества исследователей gj искусственному интеллекту — Джона Маккарти, блестящего и разностороннего математика. В 1958 году, когда при его помощи организовалась лаборатория по искусственному интеллекту при МТИ, Маккарти начал работу над языком высокого уровня, в котором понятие списка сочеталось с системой обозначений, заимствованной из экзотической области математики — так называемого ламбда-исчисления. Введенное в 1931 году математиком и логиком Алонзо Черчем, это исчисление оперирует только тремя элементами: символами, представляющими переменные и константы, скобками для группировки символов и обозначениями функций, выражаемыми греческой буквой "Лямбда".Маккарти назвал свой язык LISP от LISt Processing — обработка списков).

Пример программы на Lisp


(defun factorial (n)
   (loop for i from 1 to n
         for fac = 1 then (* fac i)
         finally (return fac)))