Cтраница 1
Лисп-программа принимает обычную форму последовательности инструкций. Основным оператором присваивания является SETQ. Имя переменной ( X в приведенном выше примере) должно быть явно задано в вызове SETQ. Примитив SET идентичен SETQ с тем исключением, что переменная ( атом), которой присваивается новое значение, может быть вычислена. Например, ( SET ( CARL) VAL) эквивалентно ( SETQ X VAL), если атом X - первый элемент списка L. SETQ и SET используются для изменения значений переменных в текущей среде ссылок. Глобальным переменным значения присваиваются с помощью при-митивов CSETQ и CSET ( см. следующий разд. Два других примитива, RPLACA и RPLACD, позволяют выполнять присваивания соответственно полям CAR и CDR любого элемента списка. Например, ( RPLACA L VAL) присваивает значение VAL списку Lb качестве его нового первого элемента, заменяя текущий первый элемент. [1]
Лисп-программы; это определение имеет форму Лисп-программ для двух примитивов: EVAL и APPLY. Структура интерпретатора настолько прозрачна, что все определение занимает менее двух страниц. Тот факт, что определения имеют форму Лисп-программ, представляет интерес, но не является центральным - в любой реализации EVAL и APPLY в конечном итоге представляются примитивами машинного языка. [2]
Рассмотрим использование диалоговых окон в Лисп-программах. Примером такого использования может служить программа построения поверхности, описанной координатами точек вершин, записанных в файле, имя которого вводится в процессе работы программы. [3]
Лисп-программы; это определение имеет форму Лисп-программ для двух примитивов: EVAL и APPLY. Структура интерпретатора настолько прозрачна, что все определение занимает менее двух страниц. Тот факт, что определения имеют форму Лисп-программ, представляет интерес, но не является центральным - в любой реализации EVAL и APPLY в конечном итоге представляются примитивами машинного языка. [4]
В последующих версиях Автокада число диалоговых окон в самом графическом редакторе резко расширилось и появилась целая система программного формирования диалоговых окон - язык управления диалогом DCL вместе с комплексом команд Автолиспа, дающих возможность вызова и упрашгения диалогом из Лисп-программ. Все это значительно расширяет возможности адаптации Автокада к конкретным прикладным задачам. [5]
![]() |
Принцип работы сис. [6] |
Пользователь REDUCE пишет задания на специализир. Пользователю, однако, знание Лиспа не требуется, поскольку выполнение программы на REDUCE состоит в преобразовании ( трансляции) программы на язык Лисп, выполнении Лисп-программы компьютером и затем в обратном преобразовании результатов работы Лисп-программы на язык REDUCE. [7]
![]() |
Принцип работы сис. [8] |
Пользователь REDUCE пишет задания на специализир. Пользователю, однако, знание Лиспа не требуется, поскольку выполнение программы на REDUCE состоит в преобразовании ( трансляции) программы на язык Лисп, выполнении Лисп-программы компьютером и затем в обратном преобразовании результатов работы Лисп-программы на язык REDUCE. [9]
Лисп-программы; это определение имеет форму Лисп-программ для двух примитивов: EVAL и APPLY. Структура интерпретатора настолько прозрачна, что все определение занимает менее двух страниц. Тот факт, что определения имеют форму Лисп-программ, представляет интерес, но не является центральным - в любой реализации EVAL и APPLY в конечном итоге представляются примитивами машинного языка. [10]
Для повышения эффективности машин, ориентированных на использование Лиспа, таких, как CLM фирмы Texas Instruments, необходимо упрощение работы с указателями и битами флагов. Чтобы обеспечить возможность построения больших списков, требуется виртуальная память большого объема. Если память достаточно велика ( как, например, в случае 70-битового виртуального адресного пространства Thomson-CSF SCQM), необходимость в перераспределении памяти может отпасть, что приводит к повышению скорости выполнения Лисп-программ. Считается, что специализированные Лисп-микропроцессоры, такие, как CLM фирмы Texas Instruments и AT & T, разработанные для управления движением манипуляторов робота, выполняют Лисп-программы в десять раз быстрее, чем в традиционных экспертных системах. [11]
Переменная MODEMACRO определяется пользователем. Ее можно установить в любое строковое значение: по длине она ограничена возможностями Автолиспа, а по размеру - буфером связи Автолисп - Автокад. Команда УСТП ЕРЕМ ( setvar) дает возможность ее установки в диалоговом режиме с консоли, хотя при этом ее длина ограничивается 255 символами. Лисп-программы с помощью функции servar) Автокад отображает стандартную статусную строку. [12]
В большинстве реализаций Лиспа имеется также компилятор, который можно использовать как примитивную операцию. Получив при вызове список имен функций, компилятор транслирует определение каждой функции в машинный код. Большинство систем позволяет совмещать использование скомпилированных и исходных функций; функция одного типа может вызывать функцию другого типа - потери в гибкости не происходит. Получающиеся в результате Лисп-программы по существу идентичны описываемым здесь, но выполняются они гораздо быстрее. [13]
Средства Лиспа, как и Форта, могут расширяться пользователем. Функции могут быть определены пользователем и впоследствии применены для определения других функций. Таким образом, пользователи могут создавать свою собственную операционную Лисп-среду, поэтому существует множество диалектов Лиспа. Стандартный Лисп был определен на конференции, финансированной Управлением по перспективным разработкам и исследованиям министерства обороны, как средство обеспечения мобильности Лисп-программ. [14]
Для повышения эффективности машин, ориентированных на использование Лиспа, таких, как CLM фирмы Texas Instruments, необходимо упрощение работы с указателями и битами флагов. Чтобы обеспечить возможность построения больших списков, требуется виртуальная память большого объема. Если память достаточно велика ( как, например, в случае 70-битового виртуального адресного пространства Thomson-CSF SCQM), необходимость в перераспределении памяти может отпасть, что приводит к повышению скорости выполнения Лисп-программ. Считается, что специализированные Лисп-микропроцессоры, такие, как CLM фирмы Texas Instruments и AT & T, разработанные для управления движением манипуляторов робота, выполняют Лисп-программы в десять раз быстрее, чем в традиционных экспертных системах. [15]