
- •2 . Сетевые языки функционального и логического программирования
- •Сетевые языки функционального и логического программирования
- •Графические представления схем -отношений.
- •Базисы и сети.
- •Элементарные сети.
- •Операции композиции сетей.
- •Свободные и связанные сети. Вложение сетей.
- •Сетевые языки.
- •Сетевая интерпретация рекурсивных схем -отношений.
- •Реляционная интерпретация сетевых языков.
- •Примеры задания сетевых языков и их реляционной интерпретации.
- •Формализация отношений реляционного включения и эквивалентности сетевых языков.
- •Литература
- •Оглавление
- •41 F logol:язык и система функционально-логического программирования
Свободные и связанные сети. Вложение сетей.
Определение
2.4. Сеть называется свободной
(-сетью),
если ее
-граф
– пустой.
Определение
2.5. Сеть называется связанной
(-сетью),
если ее
-граф
– полный.
Определение
2.6. Сеть
вложима
в
сеть
(обозначается
),
если и только если существует всюду
определенное на
(тотальное) отображение
,
такое, что
;
;
;
Так
как
содержит только двухэлементные
подмножества
,
то требуемое отображение
таково, что
.
Определение
2.7. Сеть
называетсяподсетью
сети
,
если
и отображение
в определении вложения является взаимно
однозначным.
Теорема
2.3. Если
и
–
-сети,
то
вложима в
тогда и только тогда, когда
является подсетью
.
Отметим,
что исключение константы
из числа элементарных констант позволяет
с помощью операций последовательной
и параллельной композиции получить в
точности подкласс
-сетей.
Определение
2.8.
Основными
точками
сети
назовем ее точки, являющиеся либо ее
входами, либо ее выходами, либо входами
или выходами ее элементов. Множество
основных точек сети обозначается далее
.
Определение
2.9.
Подсеть
сети
,
где
– проекция
на
,
называетсяосновой
сети
.
Определение 2.10. Сеть, являющаяся своей основой, называется основной.
Сетевые языки.
Определение
2.10. Сетевым
языком
арности
,
,
в базисе элементов
называется множество сетей арности
в базисе
.
Для задания сетевых языков могут быть использованы формальные системы, аналогичные тем, которые применяются для конструктивного задания множеств слов в некотором алфавите, например, регулярные выражения, грамматики Хомского, в том числе контекстно-свободные грамматики, и т.д.
Рассмотрим
вначале задание регулярных
сетевых языков с помощью регулярных
сетевых выражений. Синтаксически язык
регулярных сетевых выражений строится
так же, как язык схем
-отношений
в сигнатуре
.
Определим
сетевую
интерпретацию
таких схем нижеследующим образом,
выбрав в качестве базиса
множество
символов переменных соответствующих
арностей (точнее, каждый раз нас интересует
конечное подмножество
свободных переменных рассматриваемой
схемы):
1)
для констант
из
,
где
– одноименная с
сеть из
(см. рис. 2.4);
2)
для переменных
,
где
– сеть из множества
(см. рис. 2.4);
3)
.
Отметим, что если
не определено, то соответствующая пара
не вносит нового элемента в множество
;
4)
;
5)
;
6)
,
где
,
.
Аналогия
с известной алгеброй регулярных множеств
слов очевидна: последовательная
композиция играет роль операции
конкатенации, объединение сохраняет
свой смысл, а операция параллельной
композиции редуцируется до уровня
элементарных подформул вида
,
где
– переменные или константы, применением
аксиом 2 исчисления
сильного включения схем
-отношений,
и новых аксиом, вводимых для языков с
операцией итерации (продолжая нумерацию
аксиом
)3:
34.
,
3, 7, 31, 32 введенного в первой главе,
35.
,
из
которых для схемы
арности
и схемы
арности
могут быть получены правила редукции
(«спуска» операции
до уровня элементарных формул):
или
;
или
.
В качестве второго примера способа задания сетевых языков рассмотрим контекстно-свободные сетевые грамматики. Для того, чтобы воспользоваться аналогией с известными КС-грамматиками, задающими класс контекстно-сво-бодных формальных языков в некотором алфавите, мы должны определить операцию подстановки.
Определение
2.11. Результат
подстановки сети
в сеть
вместо элемента
,
такого, что его арность совпадает с
арностью сети
,
есть
Выполнение операции подстановки в графическом представлении сетей иллюстрируется рис.2.6.
Определение
2.12. Сетевой КС-грамматикой называется
четверка
,
где
–терминальный
базис,
–нетерминальный
базис (
и
не пересекаются),
–аксиома,
–непустое
множество правил вида
,
где
,
– сеть в базисе
.
Сетевой
язык
,
порожденный сетевой КС-грамматикой
,
определяется одним из известных способов
– индуктивно или дедуктивно. Приведем
в качестве примера дедуктивное
определение.
Определение 2.13.
,
где
обозначает выводимость сети
из аксиомы
по
правилам
и вводится следующим образом:
Определение
2.14. Сетевой язык
в базисе
называется свободным или
-языком,
если его элементами являются только
-сети.
Определение
2.15. Сетевой язык
в базисе
называется связанным или
-языком,
если его элементами являются только
-сети.