Опрос

Язык программирования lisp: функции, синтаксис, среда разработки

Более сорока лет назад разработан и внедрен в использование для выполнения целей искусственного интеллекта язык программирования LISP (ЛИСП), позднее ставший популярным среди пользователей ПО AutoCAD. Он создан для символьных вычислений. С течением времени был преобразован, чтобы соответствовать новым потребностям ИИ.

Начинающим пользователям, изучающим его архитектуру, рекомендуется рассматривать его в качестве формальной знаковой системы.

Это imperative language (императивный), действия которого описывают выполнение алгоритма, отличается от других, декларативных, предполагающих определение ограничений и соотношений в предметной сфере поставленной цели. По сравнению с другими подобными разработками С++ и FORTRAN, ЛИСП наделен большей функциональностью. Его популярность обусловлена большими возможностями для программирования в сочетании с мощным набором:

  • фреймов;
     
  • сетей;
     
  • предикатов;
     
  • объектов.
     

Это средства построения данных структур обозначения высокого уровня.

Конструкция

LISP синтаксис и семантика, разработанные программистами, обусловлены теорией рекурсивных функций. Символьные, s-выражения, являются элементами предложений, сочетаний. В них представлены софты и файлы. Они могут отображаться в виде списка (list) или атомов (atom).

Во втором варианте включены числовые комбинации, цифры, буквы латинского алфавита и знаки: *, -, +, /,@, %, , &, _,<, >, ~.

язык lisp

 

Несколько поочередно идущих абзацев составляют каталог. Они обязательно разделяются пробелами и замыкаются в скобки.

установка lisp

 

Составляющими одних перечислений могут служить другие, более мелкие, подпункты. Символьные структуры разной формы и уровня сложности можно создавать благодаря произвольной углубленности и вложенности. Существует пустая строка, она обозначается – () и называется «nill». При возведении информационной структуры, а также при способе управления ею, она играет особенную роль, представляясь одновременно и атомом, и списком.

Язык LISP относится к языкам программирования, которые используются для создания дополнительных загрузок к ПО по проектированию и моделированию. Для их использования необязательно хорошо разбираться в компьютере на уровне профессионала.

После изучения основных принципов работы в таких пакетах, как AutoCAD или ZWCAD 2018 Professional, который является аналогом ACAD, появляется необходимость упростить выполнение длительных рутинных операций или полностью избавиться от них. Для этого дополнения и нужны. Если они написаны на ЛИСПе, скрипты называются LISP-приложения. Каждое из них представляет собой текстовый файл с определенным встроенным кодом для выполнения команды и подсказками от производителя. Определитесь с нужными для работы свойствами, выбирайте надстройку, скачивайте ее и загружайте в «ЗВКАД» или другую платформу. Рассмотрим возможности одного такого модуля на образце скрипта «Выравнивание текстов».

Полный набор необходимых инструментов для трехмерного проектирования поверхностных и твердотельных объектов
Трехмерное проектирование поверхностных и твердотельных объектов, построение двухмерных чертежей и сечений, гибридное моделирование
Приложение под СПДС GraphiCS для автоматизации оформления чертежей по разделам ПОС и ППР
Автоматизация проектно-изыскательских работ. Модули Топоплан, Генплан, Сети, Трассы, Сечения, Геомодель

Примеры программ на ЛИСПе (lisp) для Автокада

Приложение форматирует страницу горизонтально и вертикально по заданной точке. Это полезная возможность, непредусмотренная в основном ПО. Файл с расширением *.lsp открывается двумя кликами левой кнопки мыши. В окне появится «блокнот».

лиспы для автокада

 

Чтобы сгладить и уподобить несколько напечатанных строк в готовом чертеже, обычно приходится выполнять однообразные действия много раз. Со скачанным скриптом это выполняется одной командой (в примере указана Z-TEXT-ALIGN).

установка lisp

 

Подобные дополнения полезны на любом этапе проектирования. Их существует очень много, но совсем необязательно устанавливать все. Перед скачиванием, посмотрите, подходит ли скрипт для выполнения нужных конкретных задач. Для каждой области написаны подходящие:

  • для инженерного проектирования в строительстве;
     
  • коммунальных структур, занимающихся планированием и укладкой сетей;
     
  • ЛИСПы Автокада для геодезистов.
     

Как загрузить вспомогательную часть в ПО

После выбора нужного вложения возникает надобность его внедрения. Если речь идет об ACAD, для него доступны файлы с такими расширениями:

  • *.lsp;
     
  • *.vlx;
     
  • *.fas;

Помимо файлов lisp также поддерживается загрузка форматов:

  • *.arx;
     
  • *.dvd;
     
  • *.crx;
     
  • *.arx;
     
  • *.dbx.
     

На примере того же модуля для выравнивания текста рассмотрим, как подгрузить в основную программу его файл.

Обратите внимание: при скачивании архивированного лисп-приложения, распакуйте его, чтобы на ПК фрагмент сохранился перед загрузкой.

Этапы установки LISP (их можно отследить по истории):

  1. Перейдите по пути «Управление» – «Приложения» – «Загрузить».
     
  2. В командной строке основного ПО введите «_appload».
     
  3. В окне «Загрузка/Выгрузка» найдите файл с одним из вышеперечисленных расширений и кликните «Загрузить».
     
  4. Процедура завершена. Переходите к тестированию и написанию кода.
     
искусственный интеллект и язык программирования лисп

 

Важно: при каждом запуске базовой утилиты нажмите кнопку «Добавить» в разделе «Добавить в автозагрузку». Если этого не сделать, то будет выполнен единоразовый вход в модуль, который не сохраняется с закрытием софта.

Команды LISP-программы для Автокада (Autocad)

В главном ПО их посмотреть невозможно, поэтому нужно обратиться к исходному файлу дополнения. Он открывается в «Блокноте», вверху которого находится название команды для запуска лиспа и вся необходимая информация для работы от его создателей. В примере указано z-text-align, что и нужно ввести в командную строку, чтобы вызвать нужный инструмент.

После этого, следите за указаниями вложения. Обычно такие скрипты интуитивно понятны и не требуют дополнительных разъяснений относительно дальнейших действий пользователя.

visual lisp autocad

 

Обратите внимание: в случае отсутствия подобной подсказки, ищите ее в коде – в строке «defun c: z-text-align».

Вложения, написанные на диалекте, разработаны только для внедрения в полную версию ACAD и в схожие программы, например, ZWCAD 2018 Professional, NanoCAD, они не подгружаются. Для них существуют другие приложения.

Список функций лисп (LISP) – языка программирования для Autocad

С оператора defun начинается определение задач. С его помощью создают опции с переменными. Зависимо от назначения, каждая из них будет действовать по-разному.

Варианты, производимые этим оператором:

  • с префиксом «С:» (circle) – команда на выполнение s-выражения в сфере деятельности;
     
  • без приставки – их вычисления используются в теле программы-дополнения.
     

В каждом модуле, написанном этим диалектом, есть встроенный интерпретатор. Он выполняет вычисление введенных данных и возвращает их в программную среду для дальнейшей обработки. Готовые наработки передаются на высший уровень системы или сохраняются в переменной. Это значит, что скрипт получает информацию, когда ее вводит пользователь, или при самостоятельном выборе из существующей. Он сохраняет ее в переменную, и производит вычисления, включающие неизвестное значение и функцию.

Пример:

Есть участок кода: (setq gh (+ 4 5)), где setq – одна из прописанных единиц. Она объявляет вариацию gh. В скобках знак + тоже опция, числа 4 и 5 – данные, которые были введены в систему. Значение выражения в gh сохранится, то есть 4+5 =9, gh=9. При заданном условии (setqhj (* gh 2), в результат hj сохраняется 18 – gh = 9, 9 умножить на 2 равно 18.

Синтаксис отличен от привычной большинству математики. Его порядок представлен сначала задачей, а потом переменными. В школьном счете это выглядит, как (3+2), а здесь (+ 3 2), однако, смысл одинаковый.

Список функций lisp, работа которых является основой дополнительных приложений:

  • для преобразования данных (float);
     
  • вычислений (fix);
     
  • организации циклов (if);
     
  • логические (and, nul,=,<, >, or и другие);
     
  • арифметические (+, -, ~, abs).
     

При помощи этого программного диалекта создают новые уравнения 3-х классов:

  • MACRO.
     
  • FEXPR.
     
  • EXPR.
     

Язык, который не позволяет этого – бесполезен. Часто используется LISP в геодезии, инженерии и строительстве, применяя надстройку «Автокада».

С помощью ЛИСП изучают рекурсивную функцию, используя такую возможность, как «трассировка». Это основной и весьма эффективный способ организации вычислений, повторяющихся несколько раз.

На входе в эту ячейку печатают значения входящих параметров, а на выходе появляются результаты, полученные в ходе операции. Для этого есть специальная опция класса FSURB, называемая TRACE. При ее успешном завершении, возвращается наименование задачи. При неудачном – возврат «NIil».

Пример включения рассматриваемой возможности SUMLIST и произведения математических манипуляций, суммирования элементов списка (1 2 3 4 5):

lisp

 

Обратите внимание на то, что ответ на поставленную задачку ведется в ином порядке – от последнего к первому.

Используемые только для AutoCAD (Автокад) LISP программы, устанавливаются исключительно на полноценную версию и не подходят по списку функций и команд для работы в пакетах типа Autodesk LT, Electrical, Mechanical. Исключений немного, ими выступают специальные разработки типа LT Extender, с типом расширения *.arx, *.lsp.

Среда разработки ЛИСПа

Есть изначальный язык и возникшие на пути его развития диалекты.

Основных разновидностей три:

  • Общий (Common).
     
  • Ским (Scheme).
     
  • Clojure.
     

Первый вариант – стандартный, переживший множество попыток изменения. Второй считается учебным, по нему есть даже методические материалы для преподавания в школе. Третий является современной семиотической системой с упрощенной поддержкой многопоточности. Он имеет поддержку разработки в интерактивном режиме.

Есть и другие разновидности, используемые в определенных программных пакетах. Например, Autolisp и Visual LISP в среде разработки AutoCAD.

lisp для автокада

 

ПО для проектирования

Не только для Автокада существуют дополнительные приложения. Компания ZWSOFT реализует удобные инструменты для моделирования и конструирования с возможностью интегрирования сторонних продуктов. ZWCAD в целом – аналог ACAD, поэтому для него тоже можно устанавливать программы на ЛИСПе.

Версии 2018 года усовершенствованы, в них добавлены новые функции:

  • «Стандартная». В ней встроен удобный редактор свойств деталей, управление которым возможно при помощи инструментов. Большой набор опций позволяет реализовать задачи любого уровня сложности и использовать платформу в различных сферах деятельности.
     
  • «Профессиональная». Это улучшенная версия предыдущего пакета для 3D моделирования и редактирования. Совместима для интеграции с внешними приложениям, включая выполненные с помощью программирования на ЛИСПе. Поддерживает VBA/.Net/ZRX.
     

Пользователям предлагается отдельная утилита по конвертации защищенных файлов vlx и fas в формат, который можно использовать для загрузки приложений в ZWCAD.

Этот способ программирования функционален, благодаря чему популярен. Необязательно владеть им, чтобы пользоваться дополнениями, написанными на нем. Выбирайте то, что поможет в вашей отрасли и пользуйтесь, экономя свое время!

Остались вопросы? Задайте их здесь

Рассылка

Подпишитесь на рассылку, чтобы получать уведомления о новых статьях, продуктах, специальных предложениях компании ZWSOFT.
Мы гарантируем конфиденциальность ваших данных.
 

или присоединяйтесь к нашей группе в соцсети