Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Брошюра FLOGOL-1

.pdf
Скачиваний:
18
Добавлен:
28.06.2014
Размер:
1.28 Mб
Скачать

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

ПРЕДИСЛОВИЕ

Предлагаемая вниманию читателей серия изданий посвящена пробле-

мам создания языков и систем программирования высокого уровня непро-

цедурного типа. Известно, что для решения многих задач, для которых не создано эффективных алгоритмов, применение методов рекурсивного функционального программирования в сочетании со средствами логиче-

ского вывода является не только удобной, но порой и единственной воз-

можностью. Основными недостатками большинства известных языков не-

процедурного программирования является их низкий, в современном по-

нимании, уровень и, как правило, невозможность органичного сочетания методов функционального и логического подходов, как в постановке задач,

так и при организации вычислительного процесса. Представленные мате-

риалы знакомят читателей с основами оригинальной теории направленных отношений [1-4,6-7](Фальк В.Н., Кутепов В.П.), как единой основы для ре-

ализации функционального, логического и реляционного подхода к реше-

нию задач, с основными принципами построения языка непроцедурного программирования высокого уровня FLOGOL [5] (Фальк В.Н.), а также с особенностями организации системы функционально-логического про-

граммирования S-FLOGOL [8-9] (Фальк В.Н., Бебчик Ал.Н., Бебчик Ан.Н.), включающей новые технологические и программные средства

поддержки как разработки, так и исполнения функционально-логических программ. В дальнейшем предполагается дополнить издание разделами,

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

мирования на современных вычислительных средствах с развитым парал-

лелизмом при организации вычислительного процесса.

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

n ,n

1.ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

1.ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНО-

ШЕНИЙ.

1.1.Основные понятия.

О п р е д е л е н и е 1.1. Направленным отношением (или, сокращенно,

 

 

 

 

 

 

 

 

на множестве (носителе)

D называет-

d -отношением) арности n ,n

ся график соответствия из

Dn

в

Dn .

 

 

 

 

 

Здесь

Dn

– множество всевозможных кортежей элементов множества

D

длины

n .

Иными словами, направленное отношение

 

R

арности

 

 

 

 

 

D (точнее, его график) есть множество упорядочен-

n , n на носителе

 

 

 

 

 

 

 

 

 

 

 

 

назовем

ных пар вида d1...dn ,d1...dn ,

где все di ,di D . Кортеж d1...dn

входным, а кортеж

 

 

 

 

 

 

 

 

 

d1...dn выходным для соответствующего элемента d -

отношения

R . Кортеж нулевой длины (пустой кортеж) обозначается , а

в случаях его использования в выражениях там, где это не приводит к недоразумениям, он представляется непосредственно пустым словом.

Арность d -отношения, при необходимости, будет указываться в виде правого верхнего индекса.

1.2.Свойства d -отношений.

Многие виды семантических объектов в конструктивной математике вообще и в теории программирования, в частности, могут рассматриваться как специальные подклассы направленных отношений, различающиеся как арностью d -отношений, так и наличием у них особых свойств. В качестве основных таких свойств рассмотрим свойства тотальности и функцио-

нальности d -отношений.

О п р е д е л е н и е 1.2.

d -Отношение R на D называется тотальным, если

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 2

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

( Dn' ( Dn" & , R)).

 

 

 

 

 

О п р е д е л е н и е 1.3.

 

 

 

 

 

 

 

 

d -Отношение R на

D называется функциональным, если

 

' "( , ' R& , " R ' ") .

 

 

 

 

В таблице 1.1 дана классификация типизированных

d -отношений в

зависимости от их арностей, наличия у них свойств функциональности ( F )

и тоталь-

 

 

 

 

 

 

 

 

 

ности ( T ), а также наличия этих свойств у обратных им отношений.

 

О п р е д е л е н и е 1.4. d -Отношение R 1

называется обратным d -отно-

шению R , если (( , ) R ( , ) R 1 ).1

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.1

 

 

 

 

 

 

 

 

 

 

Арность,

 

 

 

 

 

d -Отношение R

 

 

 

 

F( R)

T( R)

 

F( R 1 )

T( R 1 )

 

 

n ,n 0

 

 

 

 

 

 

 

 

 

 

 

 

 

\Утверждение

 

0,0

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Объект

 

0,1

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Множество объектов

0,1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кортеж

 

 

 

 

+

 

 

 

 

 

0,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Множество кортежей

0,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Свойство объекта

 

1,0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Предикат

 

n ,0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Перестановка

 

1,1

+

+

 

+

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вложение

 

1,1

+

+

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Подстановка (тотальная)

1,1

+

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Частичная подстановка

1,1

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 Знак обозначает логическую эквивалентность.

2Символ означает, что наличие соответствующего свойства автоматически следует из арности d -отношения.

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 3

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

Переход

 

1,1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,1

 

 

 

 

 

 

Суперконструктор

n

 

+

+

 

+

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конструктор

 

n ,1

 

+

+

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,1

 

 

 

 

 

 

Функция (тотальная)

n

 

+

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,1

 

 

 

 

 

 

Частичная функция

n

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

Суперреконструктор

n

1,n

 

+

+

 

+

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

Реконструктор

n

1,n

 

+

+

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отображение (тоталь-

 

 

 

 

1

 

+

+

 

 

 

ное)

n

1,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

Частичное отображение

n

1,n

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заметим, что существуют всего два «логических»

d -отношения ар-

ности 0,0 : пустое (пустое подмножество пар пустых кортежей) и

{ , }

– множество, содержащее единственный элемент (пару пустых кортежей),

которые в приложениях теории направленных отношений играют роль ис-

тинностных значений False и True , соответственно.

1.3.Языки схем d -отношений.

Общие принципы построения языков схем d -отношений традицион-

ны для задания интерпретированных формальных языков и предполагают задание области интерпретации, символов элементарных констант и пере-

менных, связок и операторов. Связки используются в языке для обозначе-

ния результатов применения операций, определенных на области интер-

претации, и имеющих каждая определенную положительную арность. В

связи с этим, константы иногда могут рассматриваться как связки нулевой арности. Применительно к построению языков схем d -отношений эти принципы конкретизируется нижеcледующим образом:

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 4

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

1) область интерпретации

RD RDn ,n

( RDn ,n – множество всевоз-

 

 

 

n ,n 0

 

 

 

 

можных d -отношений на D

арности

 

 

) задается уточнением но-

n , n

 

сителя D ;

 

 

 

 

 

 

 

 

2) множество

X

переменных d -отношений содержит неограниченное

 

 

 

 

 

 

 

 

 

количество переменных арности n ,n

для всех

n ,n

0 ;

3) множество

K

элементарных констант содержит имена некоторых

конкретных d -отношений на

D . Денотат константы

k K будем обо-

значать k ;

 

 

 

 

 

 

 

 

4) каждой связке

f (l ) из множества связок

F

сопоставлена, в общем

случае, частичная функция

f (l ) : (RD )l RD

в области интерпретации

(операция композиции d -отношений). Предполагается, что применимость операций композиции к d -отношениям определяется только некоторыми ограничениями на арность их аргументов. Схему, полученную применени-

ем связки f (l ) к схемам A ,...,A , будем обозначать fA ...A (если не идет

1

l

1 l

речь о конкретных связках конкретных языков);

 

5) в рассматриваемом классе языков схем

d -отношений допускается

использование только унарно-унарного оператора наименьшей фиксиро-

ванной точки (оператора рекурсии), результат применения которого к схе-

ме A

по операторной переменной x той же арности обозначается

{x A}.

В нeкоторых случаях используется альтернативная возможность

применения m -арно- m -арных (для любых

m 0 ) операторов наимень-

шей фиксированной точки, применение которых к схемам A1 ,...,Am

и опе-

раторным переменным x1 ,...,xm обозначается

{x1 A1 ,...,xm Am } , причем

в этом случае предполагается, что при построении схем A1 ,...,Am

опера-

торы наименьшей фиксированной точки не используются. Доказательство

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 5

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

равносильности этих вариантов введения в язык схем отношений операто-

ра наименьшей фиксированной точки приведено в конце параграфа 1.5.

Пусть A – язык схем d -отношений. Интерпретация формул (схем)

этого языка как d -отношений определяется заданием интерпретации пе-

ременных

: X RD , причем

x n ,n RDn ,n . Индуцированную

 

интерпретацию схем языка A обозначим через

и определим так:

 

 

1.

 

k k

для всех

k K ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.

 

x x для всех

 

x X ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.

 

 

f (l ) A ...A

 

f (

 

A ,...,

 

A

l

)

для всех f F ;

 

 

 

 

 

 

 

1

l

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

 

{x A}

 

 

min

– минимальное решение уравнения

x A

в ин-

X

терпретации, индуцированной .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

называется решением уравнения

 

x A

в интерпретации, индуци-

 

 

X

 

 

рованной

, если

 

 

' A , где

' x

 

и ' y y

для

 

X

X

всех

 

y ,

отличных

от

 

x .

Минимальное

(относительно теоретико-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

множественного

включения) решение

 

 

 

X min

 

удовлетворяет условию

 

 

min

 

 

 

 

 

 

 

 

 

X

X

 

для всех других решений X

 

 

 

того же уравнения в той же ин-

терпретации.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Следуя принципам конструктивности, мы ограничимся рассмотрени-

ем случая, когда все функции

f – интерпретанты связок

f F языка

A монотонны относительно включения

 

d -отношений как графиков. Из-

вестно,

что при этом условии для любого уравнения

x A минимальное

решение

существует,

 

 

и

оно

является

 

пределом

последовательности

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 6

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

 

 

 

(0) ,

 

(1) ,...,

 

(i) ,... при i ,

где

 

(0) – пустое d -отношение,

 

 

X

X

X

X

 

 

(i 1)

 

A , где ' x

 

(i)

и ' y y для всех y , отлич-

 

X

'

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ных от x . Отсюда очевидно, что оператор рекурсии тоже является моно-

тонным относительно включения.

1.4.Классы d -отношений.

Пару

(K, F)

назовем сигнатурой языка схем

d -отношений.

Язык с сигнатурой будем обозначать

A

или A , в зависимости от

того, используется или нет при его построении оператор рекурсии.

 

Множество FV ( A)

свободных переменных схемы

A определяется

обычным образом:

 

 

 

 

 

 

 

 

FV (k) для всех

k K ;

 

 

 

 

 

FV (x) {x}

 

для всех

x X ;

 

 

 

 

 

FV ( f (l ) A ...A ) FV (A ) ... FV (A )

для всех f F ;

 

 

1

 

l

1

 

l

 

 

 

 

 

FV({x A}) FV (A) \ {x}.

 

 

 

 

 

Схема, множество свободных переменных которой пусто, называется

константой языка. Обозначим через K (A )

множество

d -отношений –

денотатов констант языка

A .

 

 

 

 

 

Пусть

R Dбаз – подмножество d -отношений из R D , которые могут вы-

ступать в качестве интерпретантов переменных языка

A ? ( ? { , }).

 

О п р е д е л е н и е 1.5 .

 

 

 

 

 

 

 

 

[R баз ] ? {

 

A | A A

 

? &( x X ) x R баз }

класс

d -

D

 

 

 

 

 

D

 

 

 

отношений, порожденных из R Dбаз языком A ? .

Как следствие этого определения, получим, что

K (A( K ,F )? ) [ ]( K ,F )? [{k | k K}]( ,F )? .

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 7

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

Далее рассматриваются различные сигнатуры языков схем отношений и особенности классов d -отношений, порождаемых этими языками. Основ-

ное внимание будет уделено cигнатурам, в определенном смысле не зави-

сящим от выбора конкретного носителя D (некоторую роль будет играть только мощность множества D ). Более того, мы вообще ограничимся рас-

смотрением только наборов связок, отвечающих этому требованию: любая

перестановка

на носителе

D для присоединенных функций связок яв-

ляется автоморфизмом, то есть для

 

справедливо утверждение

 

( f F) x ,...,x . ( f (l ) (x ,...,x )) x ,..., x . f (l ) ( (x ),..., (x )), где

1

l

1

l

1

l

1

l

: D D распространяется на

d -отношения общепринятым образом.

Константы, удовлетворяющие условию независимости от выбора носите-

ля, назовем комбинаторными, и посвятим им отдельный параграф. В даль-

нейшем будут рассмотрены и языки, сигнатура которых связана со специ-

фикой носителя, а именно, когда в качестве носителя рассматривается эр-

брановский универсум.

1.5.Операции композиции d -отношений.

Операция последовательной композиции d -отношений. Последовательная

композиция d -отношений R1 и R2

обозначается через

R1 R2

и опре-

деляется как произведение графиков

R1 и R2 :

 

 

 

 

 

R1 R2

{ , | ( , R1 & , R2 )}.

 

 

 

 

Если

R1

и R2

d -отношения арностей

 

и

 

, соот-

n ,n

n,n

ветственно, то

R1 R2

d -отношение арности

 

 

. Операция после-

n ,n

 

довательной композиции ассоциативна.

 

 

 

 

 

Операция параллельной композиции

d -отношений. Параллельная компо-

зиция d -отношений R1 и R2 обозначается через R1 # R2

и определяется

как раздельное декартово произведение компонентов графиков R1

и R2 :

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 8

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

R1 # R2 { 1 2 , 1 2 | 1 , 1 R1 & 2 , 2 R2 }.

 

 

 

 

Если R1

и R2

– типизированные

d -отношения арности

n'1 , n"1 )

и

 

 

R1 # R2

 

 

 

 

 

 

 

 

 

n2 , n2 , то

d -отношение арности n1 n2

,n1 n2 . Операция

параллельной композиции ассоциативна.

 

 

 

 

 

 

Операция объединения

d -отношений. Объединение

 

d -отношений R1

и

R2

обозначается

через

R1 R2

и

определяется

как

теоретико-

множественное объединение

d -отношений

R1 и R2

 

как графиков.

 

 

Для объединения требуется равенство арностей

 

d -отношений R1

и

R2 , причем результат объединения будет иметь ту же самую арность. Опе-

рация объединения ассоциативна и коммутативна.

 

 

 

 

 

Операция пересечения

d -отношений. Пересечение

d -отношений R1

и

R2

обозначается

через

R1 R2

и

определяется

как

теоретико-

множественное пересечение

d -отношений

R1 и R2

как графиков.

 

 

Для пересечения также требуется равенство арностей d -отношений

R1

и R2 , причем результат пересечения имеет ту же самую арность. Опе-

рация пересечения ассоциативна и коммутативна.

 

 

 

 

 

Операция конкатенации. Конкатенация

d -отношений R1

и

R2 опреде-

ляется как декартово произведение вторых компонентов графиков при равных первых компонентах:

R1 R2 { , 1 2 | , 1 R1 & , 2 R2 }.

Конкатенация определена только для операндов арностей n,n1 и

n, n2 ,

соответственно. Результат операции

будет иметь

арность

n,n1 n2

.

 

 

Операция эквализации (унификации). Эквализация

d -отношений

R1 и R2

определяется как декартово произведение первых компонентов графиков при равных вторых компонентах:

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 9

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

R1 R2 { 1 2 , | 1 , R1 & 2 , R2 }.

 

 

Эквализация определена только для операндов арностей

n1 ,n

и

n2 , n . Результат операции будет иметь арность n1 n2 ,n .

 

Условная композиция. Условная композиция d -отношений R1

и R2 обо-

значается знаком и представляет собой проекцию R2

по первому

компоненту графика на область определения d -отношения R1 :

 

R1 R2 { , | , R2 & '( , ' R1 )}.

 

 

Арности операндов условной композиции должны быть

n,n1

и

n, n2 , соответственно. Результат композиции, очевидно, имеет арность

второго операнда.

 

 

 

 

 

 

 

Операция итерации. Итерация d -отношения R n,n

обозначается

{R} и

определяется так:

 

 

 

 

 

 

 

{R} R(k )

, где

R(0)

{ , | Dn } (тождественное

d -отношение

k 0

 

 

 

 

 

 

 

 

 

арности

n,n ), R(1) R и R(i 1) R(i) R .3

 

Очевидно, что итерация

{R} d -отношения R

является наименьшим

решением уравнения

x R(0)

R x , т.е. {R} {x R(0)

R x}.

 

Результат

применения

итерации будет иметь

ту

же

арность

n,n , n 0, что и ее операнд.

 

 

 

 

Операция повторения. Повторение d -отношения

R n,n

обозначается

[R] и определяется так:

 

 

 

 

 

 

[R] R(k ) R {R}.

k 1

Результат применения операции повторения будет иметь ту же ар-

ность n,n , n 0, что и ее операнд.

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 10