Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FLIDE / PRESENT / MPEI_AN.ppt
Скачиваний:
9
Добавлен:
28.06.2014
Размер:
1.08 Mб
Скачать

FLIDE

FLOGOL Integrated

Development Environment

Система

функционально-логического программирования

на языке S-FLOGOL

Московский институт радиотехники, электроники и автоматики (МИРЭА ТУ)

Бебчик Антон Михайлович

Разработка и исследование подсистемы исполнения запросов и графического редактора системы функционально-логического программирования

Специальность 05.13.11 – Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

Цель работы:

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

Основные задачи:

разработка и исследование моделей вычислений НО,

разработка технологии графического построения программ,

программная реализация подсистемы исполнения запросов,

программная реализация графического редактора СФЛП.

Направленные отношения.

Направленным отношением (НО) R арности (n', n'') на носителе D

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

Пример графика НО сложения:

x

x

y

 

0

0

0

Add(2,1) {(x x , y) | y x x }

0

1

1

1

1

2

 

 

1

2

3

 

Пример графика НО факториала:

x

y

 

 

0

1

 

Fact(1,1) {(x, y) | y x!}

1

1

 

2

2

 

 

 

 

3

6

 

 

 

Свойства НО и представимые семантические объекты.

1.НО R называется функциональным ( F(R)), если

(( , ) R & ( , ) R )

2.НО R называется тотальным (T(R)), если

(( , ) R)

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

(( , ) R ( , ) R 1 )

Пример представления некоторых семантических объектов логического и функционального программирования:

НО

Арность

F(R)

T(R)

F(R 1 )

T(R 1 )

Утверждение

(0,0)

+

 

+

 

Константа

(0,1)

+

+

+

 

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

(n,1)

+

+

 

 

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

(n,1)

+

 

 

 

Предикат

(n,0)

+

 

 

 

Сетевое представление НО

Базисом сети B называется тройка ( X , , ), где X - множество сортов элементов, а , : X 0.. задают арность элементов каждого сорта.

Размеченной сетью

S арности (n , n ), n , n 0 , в базисе элементов B

называется шестерка

P, I,O, E,U , 0 , где

Pмножество точек сети;

I,O входной и выходной кортежи,

| I | = n , |O| = n ;

Eмножество элементов сети;

Uграф семантического различия;

0

начальная разметка сети.

Интерпретация сети S есть

Графическая нотация СПНО:

N P

S

F

S {( , ) | ( : P D)(( p dom( 0 ))( ( p) 0 ( p)) & (I ) & (O) &

( {p , p } U )( ( p ) ( p )) & ( e x, Ie ,Oe E)( (Ie ), (Oe ) x )},

где x - НО арности (x), (x) на носителе D .

Сетевое представление семантических объектов

Семантические примитивы

Константа

K

Конструктор

C

 

Функция

F

Предикат

P

 

НО общего типа

R

 

Составные объекты

Список

Cn

Nil

пустой список голова

хвост

Дерево

вершина

Tr

Nil

пустое

дерево левое правое

поддерево поддерево

Программа

Программа задается контекстно-свободной сетевой грамматикой

(КССГ), определяемой как четверка B

, B , , R , где

 

 

 

 

 

 

 

 

 

 

 

т

 

 

н

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bт

терминальный базис;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bн

нетерминальный базис

(Bт Bн );

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bн

аксиома;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

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

b S, где

b Bн,

 

S сеть в базисе

(Bт Bн ).

Пример: НО сложения Add.

Add

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S1

 

 

 

 

 

 

 

 

 

Bт {Null

(0,1)

, Succ

(1,1)

},

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Null

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B {Add (2,1)},

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

н

 

 

 

 

 

Add

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Add,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R {Add S1, Add S2}.

 

 

 

 

 

 

Succ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Add

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Succ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычисление

1. Вычисление программы производится путем порождения сетевого языка по заданной КССГ.

 

R

2. Сетевой язык определяется как LG {S | a S & ( (x, Ie ,Oe ) E(x Bн ))},

где R S обозначает выводимость сети

S из аксиомы :

R S ( S) R S1 ( R S1 & ( r R)(S1 r S))

3. Шаг вывода (применение правила КССГ к сети) производится путем

выполнения подстановки сети

 

S правила

b S вместо элемента e

сорта b сети

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

[S / b]S ).

 

S

S

 

 

[S / e]S

 

M

b

 

M

M

 

M

 

 

 

e

 

=

 

 

 

 

e

 

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

замещаемый элемент

 

 

 

 

4. Интерпретация программы

 

 

S .

S

Подстановка

Succ

Add

Succ

e

Null

Succ

Add

 

 

Succ =

Null Succ

e

Null

Succ

 

 

Succ

 

 

Add

Succ

 

Succ

Null

Succ

 

Редукция сетей

Редукция предназначена для трансформации сетей на основе знаний о свойствах интерпретации их элементов.

Редукция по структуре

функциональность деструкторов

С

С

С

тотальность

ортогональность

конструкторов

конструкторов

 

 

С'

 

С

 

 

 

С"

 

 

Редукция по разметке

прямое распространение

1

С

1

C( 1

,..., n )

n

 

 

 

 

n

 

 

обратное распространение

C( 1,..., n )

С

1

C( 1,..., n )

n

Соседние файлы в папке PRESENT