Операции / тесты Определения
c := end(a) c, a := H+(a), T+(a) (a¹Æ)
end(a) := d d, a := d, aÅd
a := empty a := Æ
a = emptya = Æ
Множество. Множество – это структура данных, которая с помощью ключевого слова memberобеспечивает произвольный доступ к элементам списка. Объявляется в программе с помощью ключевого слова queue.
Операции / тесты Определения
c := member(a) c, a := H+(a), T+(a) (a¹Æ)
member(a) := d d, a := d, P(d+a)
a := empty a := Æ
a = empty a = Æ
P(x)- произвольная перестановка списка x, полученная в результате его сжатия ( удаления всех повторяющихся элементов).
Последовательность. Последовательность – это структура данных, которая обеспечивает последовательный доступ к списку с неявным заданием позиции с помощью ключевых слов current,nextиreset. Объявляется в программе с помощью ключевого слова sequence.
Операции / тесты Определения
reset(a) a := Æ.a-||a+
c := current(a) c, a := H-(a-), a (a-¹Æ)
current(a) := d d, a := d, T-(a-)Åd.a+
c := next(a) c, a := H+(a+), a-ÅH+(a+).T+(a+) (a+¹Æ)
next(a) := d d, a := d, a- + d.Æ
a := empty a := Æ
a = emptya = Æ (или а = а-.Æ)
backspace(a) a:= T-(a-). H-(a-)+a+ (a-¹Æ)
c:= back(a) c, a := H-(a-), T-(a-). H-(a-)+a+ (a-¹Æ)
addaftercurrent(a) := d d, a := d, a-Åd.a+
c := readanddeletenext c, a := H+(a+), a-. T+(a+) (a+¹Æ)
Пусть S – список активных записей данных, объявленных или передаваемых в программу. (Объявления записей данных становятся активными, когда им впервые присваиваются значения). Назовем S полем данных. Поле данных может изменяться с помощью ключевых слов initialи free.
initial имя := значение Если имя является элементом поля S, то значение записывается в стек; в противном случае имя добавляется в поле S и значение записывается в его стек.
free имя Если имя является элементом S, то вершина его стека удаляется, если после этого стек становится пустым, то удаляется имя из поля S; в противном случае операция не может быть выполнена.
Пример.
Допустим, что x и z являются активными записями и S: ( x: ('ab'), z: (8,1))
scalar y : целый S: ( x: ('ab'), z: (8,1))
y := z S: ( x: ('ab'), y: (8), z: (8,1))
initial y:=3 S: ( x: ('ab'), y: (3,8), z: (8,1))
y := z S: ( x: ('ab'), y: (8,8), z: (8,1))
free z S: ( x: ('ab'), y: (8,8), z: (1))
initial x := 'cd' S: ( x: ('cd', 'ab'), y: (8,8), z: (1))
free z S: ( x: ('cd', 'ab'), y: (8,8))
initial z := 0 S: ( x: ('cd', 'ab'), y: (8,8), z: (0))
Операции над данными основываются на обработке арифметических, логических и символьных данных, а также таких объектов данных языков программирования высокого уровня, как символьные строки , числа и логические переменные. Мы будем использовать обычные соглашения, выделяя строки символов кавычками, представляя числа в вещественной и целой формах, а логические переменные ключевыми словами trueилиfalse языка PDL. Имена данных выражаются буквенно-цифровыми строками (без кавычек), начинающимися буквами.
В конечном счете способ выражения операций и тестов над данными сводится к нахождению подходящей терминологии, удобной для получения специализированного контекста, рассчитанного на определенный круг пользователей. Неформальное описание, сделанное, например, в таком общем виде, как "отсортировать файл оперативных данных", может оказаться подходящим, если либо смысл операции достаточно понятен, либо детального значения не требуется.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.