Введение

Ранний язык программирования для списков

Язык обработки информации (IPL) — это язык программирования, созданный Алленом Ньюэллом, Клиффом Шоу и Гербертом А. Саймоном в корпорации RAND и Технологическом институте Карнеги примерно в 1956 году. Ньюэлл был разработчиком приложений и спецификатором языка, Шоу — системным программистом, а Саймон — пользователем приложений. Код включает в себя возможности, предназначенные для облегчения разработки программ, выполняющих простые задачи решения проблем, такие как работа со списками, динамическое выделение памяти, типы данных, рекурсия, функции как аргументы, генераторы и кооперативная многозадачность. IPL изобрел концепцию обработки списков, хотя и в стиле, близком к языку ассемблера.

История

IPL впервые был использован для демонстрации того, что теоремы в «Principia Mathematica», которые Бертран Рассел и Альфред Норт Уайтхед доказали трудоемко вручную, на самом деле могут быть доказаны вычислительным путем. Согласно автобиографии Саймона «Модели моей жизни», это приложение первоначально было разработано посредством ручного моделирования, в котором его дети выступали в качестве вычислительных элементов, а карточки с записями использовались в качестве регистров, содержащих переменные состояния программы. IPL использовался для реализации нескольких ранних программ искусственного интеллекта, также созданными теми же авторами: «Логический теоретик» (1956), «Общий решатель задач» (1957) и их компьютерная шахматная программа NSS (1958). Было создано несколько версий IPL: IPL I (не был реализован), IPL II (1957 для JOHNNIAC), IPL III (существовал недолго), IPL IV, IPL V (1958, для IBM 650, IBM 704, IBM 7090, Philco модель 212 и многих других. Широко использовался). IPL VI представлял собой предложение по созданию аппаратного обеспечения для IPL. Был разработан сопроцессор «IPL VC» для CDC 3600 в Национальных лабораториях Аргонна, который мог выполнять команды IPL V. Он использовался для реализации еще одной программы для игры в шашки. Эта аппаратная реализация не позволила достаточно улучшить время выполнения, чтобы «успешно конкурировать с языком, более непосредственно ориентированным на структуру современных машин». Вскоре IPL был вытеснен Lisp, который обладал гораздо более мощными возможностями, более простым синтаксисом и преимуществом автоматической сборки мусора.