Jump to content

Маклисп

(Перенаправлено с MACLISP )
Маклисп
Парадигмы Мультипарадигма : функциональная , процедурная , рефлексивная , мета.
Семья Лисп
Разработано Ричард Гринблатт
Джон Л. Уайт
Разработчик Массачусетский технологический институт : Проект MAC
Впервые появился июль 1966 года ; 58 лет назад ( 1966-07 )
Дисциплина набора текста динамичный , сильный
Язык реализации Язык ассемблера , PL/I
Платформа ПДП-6 , ПДП-10
ТЫ Несовместимая система разделения времени , TOPS-10 , TOPS-20 , Multics
Расширения имен файлов .лисп , .fasl
Под влиянием
Лисп 1.5
Под влиянием
Общий Лисп

Maclisp (или MACLISP , иногда называемый MacLisp или MacLISP ) — язык программирования , диалект языка Lisp . Он возник в Массачусетского технологического института (MIT). рамках проекта MAC [1] (от которого он получил свой префикс) в конце 1960-х годов и был основан на Lisp 1.5. [2] Ричард Гринблатт был основным разработчиком исходной кодовой базы PDP -6 ; [1] Джон Л. Уайт отвечал за его дальнейшее обслуживание и развитие. Название Maclisp начало использоваться в начале 1970-х годов, чтобы отличить его от других ответвлений PDP-6 Lisp, особенно от BBN Lisp .

Maclisp является потомком Lisp 1.5 . [3] Maclisp отличается от Lisp 1.5 использованием ячейки значений для доступа и хранения динамических значений переменных ; [4] В Lisp 1.5 для определения значения переменной использовался линейный поиск по списку ассоциаций. [5] Оценка переменных Maclisp выполняется быстрее, но имеет другую семантику переменных. Maclisp также использовал макросы чтения, чтобы сделать ввод и вывод более читаемыми , называемыми вводом/выводом (I/O). Вместо того, чтобы входить (QUOTE A), можно было бы войти 'A чтобы получить то же s-выражение . Хотя обе реализации помещают функции в список свойств, Maclisp использует другой синтаксис для определения функций. [6] Maclisp также имеет функцию загрузки по требованию. [7]

Maclisp начинался с Digital Equipment Corporation PDP-6 и PDP-10, компьютеров работающих под управлением несовместимой системы разделения времени (ITS); позже он был портирован на все остальные операционные системы PDP-10, например, Timesharing/Total Operating System , TOPS-10 и TOPS-20 . Исходная реализация была на языке ассемблера , но более поздняя реализация на Multics использовала PL/I . Maclisp значительно развился за время своего существования. Основные особенности [ который? ] были добавлены, которые в других языковых системах обычно соответствуют основным номерам выпусков. [ сомнительно обсудить ]

Maclisp использовался для реализации Macsyma системы компьютерной алгебры (CAS) или программы символьной алгебры. Разработка Macsyma также привела к появлению нескольких функций. [ который? ] в Маклиспе. Программа создания мира блоков SHRDLU была написана на Maclisp, поэтому этот язык широко использовался в исследовательском сообществе искусственного интеллекта (ИИ) в начале 1980-х годов. Он также использовался для реализации других языков программирования, таких как Planner и Scheme . Multics Maclisp использовался для реализации первого Emacs на основе Lisp .

Maclisp был влиятельной реализацией Lisp, но больше не поддерживается активно. Теперь он работает на эмуляторах PDP-10 и может использоваться для экспериментов с ранними программами искусственного интеллекта.

1958 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
ЛИСП 1, 1.5, ЛИСП 2 (заброшенный)
 Маклисп
 Интерлисп
 леев
 Лисп-машина Лисп
 Схема Р5РС Р6РС R7RS маленький
 НОЛЬ
 ЗИЛ (язык реализации Zork)
 Франц Лисп
 Общий Лисп стандарт ANSI
 Лисп
 Схема СО
 XLISP
 Т
 На схеме
 Эмакс Лисп
 АвтоЛИСП
 ПикоЛисп
 Гамбит
 EuLisp
 ИСЛИСП
 ОпенЛисп
 Схема PLT  Ракетка
 новыйLISP
 GNU Коварство
 Визуальный ЛИСП
 Кложур
 Дуга
 ЛФЭ
 Он
 Хиалисп

Характеристики

[ редактировать ]

Maclisp начинался с небольшого, фиксированного количества типов данных : cons- ячейка, атом (позже названный символом ), целое число и число с плавающей запятой . Более поздние дополнения включали: массивы , которые никогда не были первоклассными типами данных; целые числа произвольной точности (бигнумы); струны ; и кортежи . Все объекты (кроме inums) были реализованы как указатели , а их тип данных определялся блоком памяти, на который они указывали, с особым случаем для небольших чисел (inums).

Программы можно интерпретировать или компилировать . Поведение компилируемого кода было таким же, как и интерпретированное, за исключением того, что локальные переменные в скомпилированном коде по умолчанию были лексическими, если только они не были объявлены SPECIAL. [8] и для встроенных операций, таких как CAR и CDR, проверка ошибок не выполнялась. Компилятор Ncomplr (середина 1970-х годов) представил в языках Lisp быструю числовую поддержку, генерируя машинный код (инструкции) для арифметических действий, а не вызывая интерпретирующие процедуры, которые распределяются по типу данных. Это сделало арифметику Лиспа сравнимой по скорости с арифметикой Фортрана для скалярных операций (хотя реализация массивов и циклов Фортрана оставалась намного быстрее).

Первоначальная версия была ограничена 18-битным адресом памяти PDP-10, и значительные усилия были затрачены на сохранение компактности и простоты реализации. Multics Maclisp имел гораздо большее адресное пространство, но его использование было дорогостоящим. Когда память и вычислительная мощность PDP -10 были превышены, была изобретена машина Lisp : Lisp Machine Lisp является прямым потомком Maclisp. несколько других диалектов Лиспа Также использовались , и необходимость объединения сообщества привела к созданию современного языка Common Lisp .

Maclisp был назван в честь Project MAC и не имеет отношения к компьютеру Apple Macintosh (Mac), которому он предшествовал десятилетиями, или к Джону Маккарти . Различные системы Lisp для Macintosh не имеют особого сходства с Maclisp. [9]

  1. ^ Перейти обратно: а б Леви, Стивен (1984). Хакеры: герои компьютерной революции . Даблдэй. ISBN  0-385-19195-2 .
  2. ^ Отчет о ходе проекта MAC IV: июль 1966 г. - июль 1967 г. (PDF) (Отчет). ndp 19. Архивировано из оригинала (PDF) 8 марта 2016 года. Языком более высокого уровня, используемым в большей части программ лаборатории машинного зрения, является система PDP-6 LISP. Эта система основана главным образом на языке программирования LISP 1.5, но была значительно модифицирована во многих отношениях. Они включают в себя множество новых функций и услуг, в том числе средства для связи с программами, написанными на других языках.
  3. ^ Луна 1974 , с. 1
  4. ^ Луна 1974 , с. 47
  5. ^ Лисп 1,5 стр. 13, оценка атома e в окружающей среде a покончено с (cdr (assoc e a)). Это включает в себя линейный поиск в списке ассоциаций. a. Более подробное описание с глобальными константами и ошибками приведено на стр. 71; перед поиском в списке ассоциаций он выполняет линейный поиск в списке свойств.
  6. ^ Маклисп использует defun; Лисп 1.5 использует define.
  7. ^ Луна 1974 , с. 107; тот autoload свойство.
  8. ^ Питман, Кент (16 декабря 2007 г.). «Пересмотренное руководство Maclisp (The Pitmanual), воскресное утреннее издание» . maclisp.info . HyperMeta, Inc. Декларации и компилятор, понятие «переменные» . Проверено 20 октября 2018 г. Если связываемая переменная объявлена ​​специальной, привязка компилируется как код, имитирующий способ связывания переменных интерпретатором.
  9. ^ Питман, Кент (16 декабря 2007 г.). «Пересмотренное руководство Maclisp (The Pitmanual), воскресное утреннее издание» . maclisp.info . HyperMeta Inc. с. 1 Часто задаваемые вопросы Q1 . Проверено 20 октября 2018 г. Проект MAC не имел ничего общего с Apple «Mac». И MACLISP тоже.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 847310e894ebde9ebec34fb468fb0026__1669681500
URL1:https://arc.ask3.ru/arc/aa/84/26/847310e894ebde9ebec34fb468fb0026.html
Заголовок, (Title) документа по адресу, URL1:
Maclisp - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)