Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Брошюры / Брошюра FLOGOL.2 / Часть 2. СЕТЕВЫЕ ЯЗЫКИ ФУНКЦИОНАЛЬНОГО И ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ.doc
Скачиваний:
15
Добавлен:
28.06.2014
Размер:
2.38 Mб
Скачать
    1. Сетевая интерпретация рекурсивных схем -отношений.

Пусть – рекурсивная схема-отношений. Преобразуем ее к эквивалентной форме задания в виде конечной системы уравнений вида , такой, что

  • для всех переменныеИспользуя дистрибутивность объединения относительно операций последовательной и параллельной композиции, преобразуем все , , к виду , где все – простые схемы -отношений, т.е. в них не используются операция объединения и оператор рекурсии;

  • для любой интерпретации свободных переменных – первый компонент кортежа – минимального решения этой системы уравнений в интерпретации .

Сетевая интерпретация рекурсивных схем определяется так:

Определение 2.16. , где

,

,

,

.

Полезной, но не обязательной, является последующая “чистка” нетерминального базиса.

  1. Пусть – пустое подмножество. Вычислим предел(его существование очевидно) последовательностигдесуществует правило, такое, что все элементы сетинетерминальных сортов являются элементами сортов из. Если(– аксиома грамматики), то– пустой язык, в противном случае в множестве правилоставим только те из них, в которых используются исключительно сорта из.

  2. Пусть . В качестве нового нетерминального базиса возьмем предел последовательности, гдесуществует правилотакое, что сеть содержит элемент сорта из . В множестве правил снова оставим только те правила, в которых используются исключительно сорта из построенного множества. Таким образом, в нетерминальном базисе останутся только те нетерминальные символы, которые «нужны» для определения аксиомы.

    1. Реляционная интерпретация сетевых языков.

Пусть – сетевой язык в базисе, заданный КС-грамматикой. Фиксируем интерпретациюэлементов терминального базисатак, что для всех¤¥ – -отношение арности на носителе.

Определение 2.17. Интерпретация ¤¥ сетевого языка , индуцированная интерпретациейэлементов терминального базиса, есть

¤¥.

Функция называетсяразметкой точек сети; допустимые разметки должны удовлетворять требованиям, предъявляемым к точкам элементами сети и ее -графом. Пары кортежей допустимых разметок входных и выходных точек сети являются элементами определяемого-отношения.

Теорема 2.4. ¤¥=¤¤¥¥ для всех и для всех интерпретаций .

Отсюда следует важный вывод: сетевые КС-грамматики могут рассматриваться как форма задания рекурсивных схем -отношений.

В заключение покажем, как для заданного сетевого языка построить сетевой язык, такой, что для любой интерпретации¤¥ представляет -отношение, обратное -отношению ¤¥. Пусть - арность языка. Для построения грамматикиязыкапо заданной грамматикеязыканужно:

  • изменить арность аксиомы грамматикина;

  • во всех правилах вида в сети поменять местами кортежи входных и выходных точек;

  • все элементы сетей (правых частей всех правил) вида заменить на элементы.

    1. Примеры задания сетевых языков и их реляционной интерпретации.

  1. Пусть и задана сетевая грамматика, где правила грамматики P показаны на рис. 2.7.

Тогда при ¤¥,¤¥¤¥ , т.е. является графиком функции «факториал». Нетерминальные сортаиинтерпретируются при этом как сложение и умножение, соответственно.

  1. На рис. 2.8 изображена сеть , для которой¤¥, при следующей интерпретациисортов ее элементов на множестве натуральных чисел:¤¥,¤¥,¤-¥,¤¥,¤¥

  1. На рис. 2.9 представлены правила сетевой грамматики, определяющей конструктор упорядоченной пары натуральных чисел в базисе, интерпретация элементов которого дана в предыдущем примере, на основе «диагонального» метода нумерации.

  2. Рис. 2.10 представляет правила сетевой грамматики в терминальном базисе . При интерпретации элементов базиса как нуля, конструктора следующего числа и сложения, соответственно, нетерминальный сортинтерпретируется как функция числа сочетаний.

  3. Правила сетевой грамматики, показанные на рис. 2.11, определяют операцию сцепления двух списков при интерпретации сортакак конструктора пустого списка, а– как конструктора двоичного упорядоченного дерева (-операции по Мак-Карти).

  4. На рис. 2.12 приведены правила сетевой грамматики в терминальном базисе , сетевой язык которой представляет (для нетерминального сортакак аксиомы грамматики) регулярную схему, которой в традиционной теории формальных языков (рассматривая терминальные сорта элементов как буквы терминального алфавита, а операцию последовательной композиции как конкатенацию) соответствует язык, не являющийся даже контекстно-свободным. Построение отдельных сетей этого языка иллюстрирует рис. 2.5, приведенный выше как пример выполнения операции последовательной композиции.

  5. Еще один пример приведен на рис. 2.13. Интерпретация терминальных сортов элементов такова (носитель – множество вещественных чисел):¤¥,¤¥,¤¥,¤¥,¤¥,¤¥,¤¥,¤¥,¤¥. Нетерминальный сортв этом случае интерпретируется как функция с параметрами,, вычисляющая значение определенного интегралас точностью. Подынтегральная функция представлена нетерминальным сортом, для которого предполагается наличие определяющих эту функцию правил. Интеграл вычисляется рекурсивно, методом трапеций с переменным шагом. Фактически, носитель в этом примере – множество кодов-представлений чисел в доступном формате вещественных чисел, а интерпретация терминальных символов – реализация соответствующих функций и предикатов с доступной точностью над представлениями чисел в этом формате.

  1. В этом примере рассматриваются операции доступа к памяти типа «куча» (память типа «куча» является одним из основных компонентов архитектуры -машины, описанной в[ ]. Пусть нетерминальный сорт представляет конструктивное счетное множество «адресов»,обозначает множество «данных», которые могут храниться в памяти, а– множество возможных «состояний» памяти, представленное структурой, показанной на рис. 2.14, где– конструктор «пустой» памяти (с пустым графиком), а– произвольный бинарный конструктор. Состояние памяти – множество состояний «ячеек» памяти с различными адресами. Состояние ячейки включает адрес ячейки и «данное», хранящееся в ячейке.

Определим три операции:

  1. функцию адресного чтения: ; если, то– не определено;

  2. функцию адресной записи: ; если, то– не определено;

  3. отношение (неоднозначное соответствие из в) инициализации новой ячейки памяти:

.

Правила сетевой грамматики, определяющие эти операции, приведены на рис. 2.15.

  1. В этом примере (рис. 2.16) рассматривается та же задача, что и в предыдущем. Однако для взаимно-однозначного представления всех объектов – адресов, данных и состояний памяти используются натуральные числа (терминальный базис ). Для представления состояний памяти используются методы нумерации элементов конструктивных множеств, в частности, сведение разнообразия конечных подмножеств натуральных чисел к разнообразию кортежей конечной длины из натуральных чисел. Для построения номеров различных конструкций будем использовать суперконструкторупорядоченной пары на множестве натуральных чисел, определенный в примере 3. Помимо операций,и, определяется вспомогательная функция, используемая при нумерации конечных подмножеств натуральных чисел.