Загрузка...

Понятие атома и списка. Назначение.


Атомы
В АВТОЛИСПе использ символьная запись.
Символ – имя, состоящее из букв, цифр и специальных знаков за исключением (), . , ‘ , “ , ; . Эти исключения (кроме точки) и _ или конца строки выступают в качестве границ символа.
Выражения – могут занимать несколько строк. Наличие неск пробелов м/у символами эквивалентно одному пробелу (в мозгах). Имена символов и функций забили на регистр. Имена символов не начинаются с цифр (это опасно для здоровья). Символ включ в себя след части: имя, величина (или значение), связь с ф-цией, свойства.
Знач-е символа м.б. любого типа, включая другой символ. Если символ имеет знач-е, но не связан с ф-цией, то он – переменная.
Данные делятся на постоянные и переменные.
Постоянные данные — (константы) делятся на числовые и текстовые.
Числовые – 1. целого типа – представлены 32 двоич разрядами со знаком или без, диапазон –214748368 … +214748368 Если знач-е выходит за эти пределы, то число становится Флоат.
2. действительного (вещественного типа) – представл как числа с плав точкой двойной точности, обеспеч не менее 14 знаков после запятой. В диапазоне от –1 до 1 ноль д/б указан явно.При работе с числами больших порядков использ матем форма записи.
<действ константа>::=[-]<цифра>…<цифра>…
<действ константа>::=[-]<цифра>…<цифра>… Е [-]<цифра>[<цифра>] -2.5Е-8
Текстовые –
1. строкового типа (литералы) – посл-ть знаков, заключ в кавычки. Внутри допускается использ-е управл посл-тей.
n – символ новой строки
t – табуляция
r – возврат каретки
e – esc-посл-ть
\ — в строке символов исп
” – кавычки
nnn – восьмеричн код
Допустим длина константы – 100 символов, возможно увелич-е длины (динамич выделение памяти) с исп-ем ф-ции STRCAT.
2. логического типа:
Т, NIL.

Переменные – изменяемые данные. Для их представления использ переменные, кот формируются из из любого числа символов, кроме (), . , ‘ , “ , ; , _ , перевод строки, а также знаков операций: ~ , * , = , > , < , + , — , /.
Первым символом всегда должна быть буква. Принимаемое значение м/б числового, логического или строкового типа. Не рекоменд задавать имя переменной более 6 символов.
В кач-ве имен перемен нельзя использ ф-ции АВТОЛИСПа.
Списки – это многоуровневая структура данных, состоящая из элементов (атомов) или др.списков, разделенных пробелами, в котор колич-во открыв скобок с кол-вом закрывающих. Если эл-ты в списке отсутств., то список пустой, его знач-е = NIL.
<список>::=([элемент]..)
(А_В_())10_15))
(15_”Number_1”_12.0)
Точечная пара – это частный случай списка, в кот эл-ты представл в виде упорядоч. пары атомов.
<точечная пара> : : = (<атом_1>, <атом_2>)
<точечная пара> : : = (<атом>, <точечная пара>)
Эффект применения точечной пары заключается в экономии листа на диске и позволяет удобнее представлять информацию о графическом примитиве.
Выражения, поясняющие проблему, (комментарии) – начинаются с « ; » и продолжаются до конца строки.
S – выражение (символьные)
<S – выражение> : : = <атом>
<S – выражение> : : = <точечная пара>
Это обобщенное понятие атомов и точечных пар.
Функция – является частичным случаем списка и представляется списком.
<функция> : : = (<имя функции> [<аргумент>] …)
имя функции – индивидуальное символическое имя.
аргумент – это S – выражения, построенные по правилам AutoLisp.
Для каждой функции характерно количество и порядок следования аргументов.

В языке AutoLisp принята префиксная форма записи вычисления, при которой имя записи вычислений, при которой имя функции и аргумента берутся в скобки. В основу работы положены принципы функционального программирования, которые основаны на том, что в результате каждого действия возникает значение, которое передается (возвращается) в программу.
Результатом вычисления может быть nil или результат последнего вычисленного выражения. Сама программа построена на принципах рекурсивных вопросов функций, ее составляющих и последующих композиций.
Кроме этого используются традиционные приемы программирования. Аргументы могут быть и отсутствовать, что определяется типом функции.
Функции делятся на:
1. встроенные
2. описываемые (составленные пользователем)

Загрузка...