среда, 5 июня 2013 г.

Язык программирования AutoLISP вводная статья.



Язык программирования  AutoLISP -  это разновидность языка  Lisp, в котором, правда присутствуют  функции доступа к объектам, словарям и таблицам системы AutoCAD.   AutoLISPязык функциональный и основой его является работа со списком.  Списки имеют произвольную длину и включают в себя самые разные  элементы ( числа, тестовые строки и многое другое).
С помощью лиспа  мы можем писать программы или вводить код в командную строку автокада. Система затем вычисляет выражения, которое мы ввели. 
AutoCAD имеет свой интерпретатор LISP.  Интерпретатор начинает вычислять наш код, как только мы введем в командную строку открывающую скобку - (.   После чего  AutoCAD  настраивается на ввод и на дальнейшее вычисление Lisp -  выражения.  Все выражение на языке ЛИСП выглядят так: (- 100 50). Как мы видим на первом месте  стоит знак -.   Далее стоит число из которого вычитается  второе число.  Рис 1.
Как у же говорилось  язык ЛИСП функциональный. Что это такое речь пойдет далее.  В приведенном примере    выражение  открывается и закрывается скобками. На первом месте   стоит функция, а конкретнее имя функции, а на втором  и третьем месте аргументы функции.  Это показывает синтаксис языка ЛИСП - (функция аргумент1 аргумент 2 …. АргументN.).
С точки зрения синтаксиса языка ЛИСП все, что заключено в скобках, является списком.
Основное и главное правило языка  ЛИСП – это баланс скобок. То есть на каждую открывающую скобку должна быть закрывающая.  Иначе Автокад выдаст ошибку, как на рисунке 2.
Для разрешения ситуация, необходимо ввести скобку  и нажать ввод. После чего программа выдаст результат вычисления.
Выражения  ЛИСП  могут  быть как простыми, так и сложными. Пример сложного выражения
(-  (+ 12  14)   (* 2  9 ))  Как мы видим имя функции минус имеет два аргумента , которые сами являются выражениями (+ 12 14) и  (* 2  9).   Вначале интерпретатор вычислит выражения во внутренних скобках , вначале 2 умножит на 9 и 12 плюс 14.  То есть мы получим  ( - 26  18) и программа выдаст ответ 8.

Комментариев нет:

Отправить комментарий