Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FLOGOL IDE (отчёт).pdf
Скачиваний:
13
Добавлен:
28.06.2014
Размер:
923.8 Кб
Скачать

МОСКОВСКИЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

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 в качестве носителя выбран односортный носитель, поэтому язык можно считать нетипизированным. Однако

вследствие того, что многосортный носитель может быть легко

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

НО R1 называется обратным для НО R , если

α β((α, β) R (β,α) R1 ) .

3

(n', n")

НО могут обладать некоторыми фундаментальными свойствами, в определенном смысле не зависящими от выбора носителя. К таким свойствам относятся функциональность и тотальность.

НО 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