IT History Journal
March 1

1 марта 1960 — Первый LISP-мануал был опубликован

1 марта 1960

1 марта 1960 — Первый LISP-мануал был опубликован

1 марта 1960 года Джон Маккарти опубликовал первое официальное описание языка программирования LISP.
Статья называлась «Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I». Это был не просто мануал. В ней предлагалась новая модель вычислений.

Язык для работы с символами

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

Чем LISP отличался

LISP предложил несколько идей, которые для того времени были необычными:
Программы записывались в виде списков.
Код и данные “имеют доступ друг к другу”
Рекурсия стала центральным механизмом.
Язык основывался на математической логике.
Одна из ключевых идей заключалась в том, что код можно рассматривать как данные. Это позволяло программам создавать или преобразовывать другие программы.

Первая реализация

Первая рабочая реализация LISP была запущена на компьютере IBM 704.
Теоретическая модель, описанная Маккарти, была реализована исследователями из MIT, среди которых были Стив Рассел, Дэниел Эдвардс и Тим Харт.
Именно Стив Рассел написал первый интерпретатор LISP, превратив формальные определения из статьи в работающую систему.

Долгосрочное влияние

LISP стал основным языком ранних исследований в области искусственного интеллекта.
Позже он вдохновил такие диалекты, как Scheme и Common Lisp. Многие современные языки программирования заимствовали идеи LISP, особенно принципы функционального программирования.
Публикация 1 марта 1960 года стала формальной точкой отсчёта для LISP как языка.
Спустя более чем шесть десятилетий его влияние по-прежнему заметно в современной разработке программного обеспечения.

Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I