MacLisp


MACLISP (также Maclisp) — диалект языка программирования Lisp, разработанный в лаборатории искусственного интеллекта MIT, которая в то время (поздние 60-е) называлась Project MAC (откуда собственно и получился префикс в названии языка, никакой связи с компьютерами Macintosh фирмы Apple здесь нет; такой же префикс в названии и по той же причине имеет, например, система компьютерной алгебры Macsyma)

Хотя язык очень примечателен, в частности тем, что повлиял на множество более поздних лиспов, таких, как Zeta Lisp и Common Lisp, использовался для первых реализаций Macsyma, SHRDLU и Multics Emacs, в настоящее время он практически нигде не используется.

С начала 1960-х годов в MIT был запущен проект MAC, в рамках которого велись исследования использования вычислительных машин в интерактивном режиме и разработка подходящих для такой работы языков программирования и операционных систем. MacLisp (далее Маклисп) был разработан в рамках этого проекта, основой для него стала система Lisp 1.5. В 1964 году была создана первая реализация Маклиспа для PDP-6, в 1968 — для PDP-10, причём последняя работала как под управлением операционной системы ITS, разработанной в лаборатории искусственного интеллекта MIT, так и под ОС TOPS-10/20 — стандартной ОС для PDP-10/20 фирмы DEC. Также была создана реализация для компьютера GE-600, работавшая под управлением ОС Multics.

Маклисп был чрезвычайно мощной для своего времени системой. На её облике отразилось всё многообразие задач, которые решались в проекте MAC и вообще в исследованиях по искусственному интеллекту в MIT. Помимо традиционных задач символьной обработки, Маклисп использовался для разработок в самых разных областях. Так, работы в области робототехники и обработки речи и изображений потребовали от системы высокой чисто вычислительной эффективности, а также привели к реализации широкого набора математических типов данных, в том числе векторов, матриц и битовых полей. В систему были включены арифметические типы и операции с неограниченной точностью (базирующиеся на алгоритмах, разработанных Д. Кнутом), позволяющие в ряде случаев существенно упростить решение некоторых математических задач, пусть и за счёт значительных вычислительных затрат. Была реализована мощная библиотека математических функций.

В части вклада в развитие самого языка можно отметить появившиеся в Маклиспе макросы чтения и таблицы чтения, позволившие «достраивать» язык, расширяя его в нужном направлении новыми структурами. Также в язык были включены средства обработки исключений и средства параллельной обработки.