- •1. Теория направленных отношений.
 - •1.1. Основные понятия.
 - •2.2. Языки и схемы направленных отношений.
 - •2. Сетевое представление направленных отношений.
 - •2.1. Формальное определение сетевого представления НО.
 - •2.2. Графическая интерпретация сетевого представления.
 - •2.3. Вычисление НО на основе КССГ.
 - •2.4. Стратегии вычисления НО.
 - •3.2. Синтаксис языка и семантика S-FLOGOL.
 - •4.1. Базовые средства языка.
 - •4.2. Средства схемной надстройки языка S-FLOGOL.
 - •4.3. Системные отношения.
 - •5. Интегрированная среда разработки программ.
 - •5.1. Центральный модуль.
 - •5.2. Текстовый редактор.
 - •5.3. Графический редактор.
 - •5.4. Вычисление запроса.
 - •5.5. Отладка программ.
 - •Список литературы
 
МОСКОВСКИЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
FLIDE
FLOGOL Integrated Development Environment
Система функционально-логического программирования на языке S-FLOGOL
Руководитель проекта:
д.т.н., проф. Фальк В.Н.
Разработчики:
Бебчик Ал.М. Бебчик Ан.М.
Москва, 2004 г.
Оглавление  | 
	
  | 
|
1.  | 
	ТЕОРИЯ НАПРАВЛЕННЫХ ОТНОШЕНИЙ..........................................................  | 
	3  | 
  | 
	1.1. ОСНОВНЫЕ ПОНЯТИЯ. ................................................................................................  | 
	3  | 
  | 
	2.2. ЯЗЫКИ И СХЕМЫ НАПРАВЛЕННЫХ ОТНОШЕНИЙ........................................................  | 
	4  | 
2.  | 
	СЕТЕВОЕ ПРЕДСТАВЛЕНИЕ НАПРАВЛЕННЫХ ОТНОШЕНИЙ..................  | 
	6  | 
  | 
	2.1. ФОРМАЛЬНОЕ ОПРЕДЕЛЕНИЕ СЕТЕВОГО ПРЕДСТАВЛЕНИЯ НО..................................  | 
	6  | 
  | 
	2.2. ГРАФИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ СЕТЕВОГО ПРЕДСТАВЛЕНИЯ. ..................................  | 
	8  | 
  | 
	2.3. ВЫЧИСЛЕНИЕ НОНА ОСНОВЕ КССГ.......................................................................  | 
	10  | 
  | 
	2.4. СТРАТЕГИИ ВЫЧИСЛЕНИЯ НО..................................................................................  | 
	11  | 
3.  | 
	ЯЗЫК ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ S-  | 
	
  | 
FLOGOL. ...........................................................................................................................  | 
	12  | 
|
  | 
	3.1. ПРИНЦИПЫ ПОСТРОЕНИЯ. ........................................................................................  | 
	12  | 
  | 
	3.2. СИНТАКСИС ЯЗЫКА И СЕМАНТИКА S-FLOGOL. .....................................................  | 
	17  | 
4.  | 
	ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ S-FLOGOL..........................  | 
	28  | 
  | 
	4.1. БАЗОВЫЕ СРЕДСТВА ЯЗЫКА......................................................................................  | 
	28  | 
  | 
	4.2. СРЕДСТВА СХЕМНОЙ НАДСТРОЙКИ ЯЗЫКА S-FLOGOL. .........................................  | 
	32  | 
  | 
	4.3. СИСТЕМНЫЕ ОТНОШЕНИЯ........................................................................................  | 
	36  | 
5.  | 
	ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ ПРОГРАММ...........................  | 
	37  | 
  | 
	5.1. ЦЕНТРАЛЬНЫЙ МОДУЛЬ. ..........................................................................................  | 
	37  | 
  | 
	5.2. ТЕКСТОВЫЙ РЕДАКТОР. ............................................................................................  | 
	39  | 
  | 
	5.3. ГРАФИЧЕСКИЙ РЕДАКТОР. ........................................................................................  | 
	43  | 
  | 
	5.4. ВЫЧИСЛЕНИЕ ЗАПРОСА. ...........................................................................................  | 
	49  | 
  | 
	5.5. ОТЛАДКА ПРОГРАММ................................................................................................  | 
	50  | 
СПИСОК ЛИТЕРАТУРЫ...............................................................................................  | 
	51  | 
|
2
1. Теория направленных отношений.
Теория направленных отношений, разработанная Фальком В.Н., и Кутеповым В. П. [1,2], является универсальной теоретической моделью, позволяющей в естественной форме описывать и вычислять рекурсивно заданные объекты некоторой предметной области. На базе теории направленных отношений был разработан функционально-логический язык программирования высокого уровня S-FLOGOL, поддерживающий основные тенденции развития современных языков программирования и позволяющий в компактной схемной форме задавать определения конструктивных объектов в терминах направленных отношений (язык S-FLOGOL является представительным подмножеством языка FLOGOL, разработанного Фальком
В.Н. [3,4]).
1.1.Основные понятия.
Воснове теории направленных отношений лежит понятие направленного отношения (НО). Различают два вида направленных отношений – бестиповые и типизированные.
Направленным отношением типа  | 
	(ϑ',ϑ") ,  | 
	ϑ',ϑ" T * , на носителе D  | 
||||
называется график соответствия из  | 
	Dϑ'  | 
	в  | 
	Dϑ" . Пара (|ϑ'|,|ϑ"|) называется  | 
|||
арностью этого  | 
	НО. Подкласс НО на  | 
	D  | 
	типа  | 
	(ϑ',ϑ") (арности  | 
	(n',n") )  | 
|
обозначается  | 
	RD( ϑ ',ϑ ") (соответственно,  | 
	RD( n ',n ") ).  | 
	Тип или арность  | 
	НО при  | 
||
необходимости указываются в виде правого верхнего индекса.  | 
	
  | 
|||||
В случае,  | 
	если в качестве  | 
	D  | 
	выбирается односортный  | 
	носитель  | 
||
(универсум), то тип любого НО на D вполне определяется его арностью. В языке программирования FLOGOL в качестве носителя выбран односортный носитель, поэтому язык можно считать нетипизированным. Однако
вследствие того, что многосортный носитель может быть легко
промоделирован с использованием односортного носителя, введение в язык пользовательских типов данных затруднений не вызывает.
НО R−1 называется обратным для НО R , если
α β((α, β) R ≈ (β,α) R−1 ) .
3
НО могут обладать некоторыми фундаментальными свойствами, в определенном смысле не зависящими от выбора носителя. К таким свойствам относятся функциональность и тотальность.
НО R арности на D называется тотальным, если
α(α Dn' β(β Dn" & (α, β) R)).
d -Отношение R называется функциональным, если
α β ' β"((α, β ') R & (α, β") R β '= β") .
Этими свойствами могут обладать как само НО, так и для обратное ему НО (свойства функциональности и тотальности, определенные для обратного отношения, будем называть свойствами обратной функциональности и тотальности).
Свойства функциональности и тотальности играют значительную роль в
процедурах редукции, использующихся в базовой модели вычисления направленных отношений и в вычислительной подсистеме системе функционально-логического программирования на языке S-FLOGOL.
2.2.Языки и схемы направленных отношений.
Воснову построения языка S-FLOGOL положено определенное в [3] понятие языка схем НО. Для задания языка схем НО необходимо определение области интерпретации, символов элементарных констант и переменных, связок и операторов. Связки используются для обозначения результатов применения операций композиции НО на области интерпретации.
Область интерпретации задается уточнением носителя. Бинарными операциями, рассматриваемыми в теории на правленых отношений, являются: последовательная композиция, параллельная композиция,
конкатенация, условная композиция, эквализация (унификация), операции
объединения и пересечения типизированных НО.
Последовательная композиция НО R1 и R2 обозначается через R1 •R2
и определяется как произведение графиков R1 и R2 :
R1 •R2 {(α, β) | γ((α,γ) R1 & (γ, β) R2 )}.
4
Если  | 
	R1  | 
	и R2 – НО арностей  | 
	(n',n)  | 
	и (n,n") , соответственно, то  | 
R1 •R2 –  | 
	НО  | 
	арности (n',n") . Операция  | 
	последовательной композиции  | 
|
ассоциативна.  | 
	
  | 
	
  | 
	
  | 
|
Параллельная композиция НО R1  | 
	и R2  | 
	обозначается через R1 # R2 и  | 
||
определяется как раздельное декартово произведение компонентов графиков R1 и R2 :
R1 # R2 {(α1α2 , β1β2 ) | (α1 , β1 ) R1 & (α2 , β2 ) R2 }.
Если R1  | 
	и  | 
	R2 – НО арности (n'1 ,n"1 )  | 
	и (n'2 ,n"2 ) , то  | 
	R1 # R2 – НО  | 
||
арности  | 
	(n'1 +n'2 ,n"1 +n"2 ) .  | 
	Операция  | 
	параллельной  | 
	композиции  | 
||
ассоциативна.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
Объединение  | 
	НО R1 и  | 
	R2 обозначается через  | 
	R1 R2  | 
	и  | 
||
определяется как теоретико-множественное объединение НО R1 и R2  | 
	как  | 
|||||
графиков. Объединение накладывает требование равенства арности НО R1
и R2 , причем результат объединения имеет ту же самую арность. Операция объединения ассоциативна и коммутативна.
Пересечение НО R1 и R2 обозначается через  | 
	
  | 
	R1 ∩R2  | 
	и  | 
определяется как теоретико-множественное пересечение НО  | 
	R1  | 
	и R2  | 
	как  | 
графиков. Пересечение накладывает требование равенства арности НО R1
и R2 , причем результат пересечения имеет ту же самую арность. Операция пересечения ассоциативна и коммутативна.
Конкатенация НО R1 и R2 определяется как декартово произведение вторых компонентов графиков при равных первых компонентах:
R1 R2 {(α, β1 β2 ) | (α, β1 ) R1 & (α, β2 ) R2 }.
Конкатенация определена для НО R1 и R2 , имеющих арности (n, n1 ) и (n,n2 ) , соответсвенно. Результат операции будет иметь арность (n,n1 +n2 ) .
Эквализация (унификация) НО R1 и R2 определяется как декартово произведение первых компонентов графиков при равных вторых
компонентах:
R1 R2 {(α1α2 , β) | (α1 , β) R1 & (α2 , β) R2 }.
5
