Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Conspekt.doc
Скачиваний:
11
Добавлен:
31.08.2019
Размер:
1.39 Mб
Скачать

2.2.1 Алфавит

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

Мы будем использовать латинский алфавит.

<основные символы>::=A|B|C|....|Z|0|1|2|3|4|5|6|7|8|9

<ограничители>::=(|)|.|пробел

<специальные знаки>::=+|,|;|=|-|/|:

2.2.2 Атомы и точечные пары

Для обозначения объектов в ЛИСПе используются атомы.

Атом - константа или идентификатор, начинается с буквы.

Атом - то, что находится между двумя ограничителями.

Примеры: XYZ, 5 и др.

Любая строка, начинающаяся с буквы может рассматриваться как идентификатор и трактоваться как переменная. Имена функций не являются зарезервированными, однако, использование их в качестве переменных не рекомендуется. Идентификаторы T, F, NIL не следует использовать как имена переменных.

Константы - это величины, которые остаются неизменными во время выполнения программы. В разных ЛИСП-системах они подчиняются различным правилам. Большинство ЛИСП-систем понимает как целые, так и действительные константы. Целые константы могут быть заданы в двоичном, восьмеричном или десятиричном виде.

Переменные в ЛИСПе могут иметь значение. Один из способов приписывания значения переменной - использование функции SETQ, которая действует аналогично оператору присваивания:

(SETQ X 5) -> X=5

(SETQ X (PLUS Y 1)) -> X=Y+1

Второй основной тип данных в ЛИСПе называется точечной парой. Точечная пара вводится с помощью следующего формального определения:

<точечная пара>:=(<атом>.<атом>)|

(<точечная пара>.<атом>)|

(<атом>.<точечная пара>)|

(<точечная пара>.<точечная пара>)

Примеры: (А.В), ((А.В).С)

Т.е. точечная пара - это просто упорядоченная пара. Элементами этой пары могут быть как атомы, так и точечные пары, а точка играет роль разделителя.

Графически,точечную пару представляют в виде лисповской ячейки:

(А.В) ((А.В).С)

A B C

A B

Такие диаграммы дают представление о структуре данных в памяти ЭВМ. Разделенный вертикальной чертой прямоугольник изображает ЛИСП-ячейку. Эта ячейка является областью памяти фиксированной длины, разделенной на два поля. В первом поле содержится адрес первого элемента пары, а во втором - второго. На рис. ссылки на S-выражения, расположенные по этим адресам изображают стрелками. В тех случаях, когда элементом точечной пары, в свой очередь, является точечная пара, стрелка на диаграмме указывает на соответствующую ячейку. С помощью диаграмм можно изображать структуры, которые при записи с помощью скобок и точек были бы бесконечными:

(A.(B.(A.(B.(...

A B

В основе языка Лисп лежит механизм обработки деревьев и списков. В точечной паре между атомами и точкой ставятся пробелы для отличия от вещественных чисел.

Часто бывает удобным не различать атомы и точечные пары. В этом случае говорят о S-выражениях.

Существует обобщенное понятие "s-выражение":

<s-выражение>:=<атом>|<точечная пара>.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]