Разделы презентаций


Система функционально-логического программирования на языке S-FLOGOL

Содержание

Разработка и исследование подсистемы исполнениязапросов и графического редактора системы функционально-логического программированияБебчик Антон МихайловичСпециальность 05.13.11 – Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетейЦель работы: создание системы функционально-логического программирования (СФЛП),

Слайды и текст этой презентации

Слайд 1Система
функционально-логического программирования
на языке S-FLOGOL
FLOGOL Integrated Development Environment
FLIDE

Системафункционально-логического программирования на языке S-FLOGOLFLOGOL Integrated Development EnvironmentFLIDE

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

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

машин, комплексов и компьютерных сетей

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

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

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

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

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

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

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

Разработка и исследование подсистемы исполнениязапросов и графического редактора системы функционально-логического программированияБебчик Антон МихайловичСпециальность 05.13.11 – Математическое и

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

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

n'', соответственно.

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

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

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

Направленным отношением (НО) R арности (n', n'') на носителе D называется множество упорядоченных пар кортежей элементов D

Слайд 42. НО называется тотальным (

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

), если

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


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

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

(0,0)

(0,1)

(n,1)

(n,1)

(n,0)


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

Слайд 5где - НО арности

на носителе

.

Размеченной сетью арности , в базисе элементов называется шестерка , где

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

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

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

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

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

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

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

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










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


P

N


S

F





| I | = n ′, |O| = n″;

где      - НО арности

Слайд 6F
Сетевое представление семантических объектов
∙ Константа
∙ Конструктор
∙ Функция
∙ Предикат
∙ Список
K
C
P
Cn



Nil

∙ Дерево
Tr

Nil

НО общего типа
R
голова
хвост
пустой список
пустое дерево
левое поддерево
правое поддерево
вершина
Семантические примитивы
Составные объекты

FСетевое представление семантических объектов∙ Константа∙ Конструктор∙ Функция∙ Предикат∙ СписокKCPCnNil∙ ДеревоTrNil∙ НО общего типаRголовахвостпустой списокпустое дереволевое поддеревоправое поддеревовершинаСемантические

Слайд 7Программа
Программа задается контекстно-свободной сетевой грамматикой (КССГ), определяемой как четверка

, где

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

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

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

− аксиома;

− множество правил вида , где , − сеть в базисе


Null



ПрограммаПрограмма задается контекстно-свободной сетевой грамматикой (КССГ), определяемой как четверка

Слайд 82. Сетевой язык определяется как

, где обозначает выводимость сети из аксиомы :

Вычисление

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

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







R

M



M′





b

M

=



M′


e


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

исходная сеть

тело правила


e



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

2. Сетевой язык определяется как

Слайд 9Подстановка

e


Succ

Add

Null

Succ

Null

Succ

e
=

ПодстановкаeSuccAddNullSuccNullSucce=

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

свойствах интерпретации их элементов.





С




С







С









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



С







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


С







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



обратное

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

Слайд 11
A


S

Вычисление в базисе конструкторов
N
N


N
N
A



S



N

N
S

A



S


S






S

A


S



N


e

ASВычисление в базисе конструкторовNNNNASNNSASS∅∅SASNe

Слайд 12Вычисление с разметкой
Использование разметки позволяет:
∙ упростить структуру сети,
∙ снизить требования

к объему доступной оперативной памяти,
∙ повысить читаемость результатов вычисления.
∙ упростить

взаимодействие с внешними процедурами вычисления,

∙ реализовать Data - Flow подход,

Введенное понятие размеченной сети и предложенные правила редукции по разметке положены в основу режима вычисления с разметкой.

∙ использовать системные типы данных и системные НО,

Недостатки использования разметки:

∙ отсутствие поддержки неполных структур данных,

∙ необходимость использования смешанной редукции.

∙ повысить скорость вычисления за счет простой обработки разметки,

Вычисление с разметкойИспользование разметки позволяет:∙ упростить структуру сети,∙ снизить требования к объему доступной оперативной памяти,∙ повысить читаемость

Слайд 13
A



Вычисление с разметкой


S




A













S

A


S







e

AВычисление с разметкойS∅A∅SASe

Слайд 14Стратегии вычисления
В СФЛП реализованы следующие стратегии:
∙ поиск в ширину,
∙ поиск

в глубину,
∙ смешанная стратегия.
Реализация смешанной стратегии основана на использовании масок

вычислимости.

+ гарантированное получение результата

- высокие требования к вычислительным ресурсам

+ высокая эффективность выполнения программ

- возможность «зацикливания»

+ сохранение преимуществ чистых стратегий и
ослабление их недостатков

- необходимость учета специфики задачи


Стратегии вычисленияВ СФЛП реализованы следующие стратегии:∙ поиск в ширину,∙ поиск в глубину,∙ смешанная стратегия.Реализация смешанной стратегии основана

Слайд 15Маски вычислимости


Cn



App



Cn






Nil


App



L1
L2


Cn



Nil

A



Nil

?


Cn



App



Cn



L1
L2


Cn


Cn


L1
L2

Cn

App



Cn



Маски вычислимости позволяют задавать требования к наличию разметки точек

входов и выходов элементов для выполнения подстановки.
Пример: Вычисление без использования

масок.
Маски вычислимостиCnAppCnNilAppL1L2CnNilANil?CnAppCnL1L2CnCnL1L2CnAppCnМаски вычислимости позволяют задавать требования к наличию разметки точек входов и выходов элементов для выполнения подстановки.Пример:

Слайд 16Маски вычислимости (продолжение)


Cn



App



Cn






App



L1
L2




?
Пример: Вычисление НО App с использованием масок.


Cn

App



Cn



L2

App


L2
?



App


Cn


L2





Cn

L2




Пусть для

сорта App заданы маски {(1,1,1), (1,0,0), (0,0,1)}, тогда элемент

сорта App может быть выбран для подстановки в следующих случаях:

App




App




App




(1,1,1)

(1,0,0)

(0,0,1)




Маски вычислимости (продолжение)CnAppCnAppL1L2?Пример: Вычисление НО App с использованием масок.CnAppCnL2AppL2?AppCnL2CnL2Пусть для сорта App заданы маски  {(1,1,1), (1,0,0),

Слайд 17Логический вывод

мультиправило

Y

S


V



обычные правила

Y

S



z
z
Теория НО позволяет производить доказательство общезначимости формул

логики предикатов первого порядка.
∙ логические формулы представляются сетями арности (0,

0),

∙ используется двойственная форма сколемизации,

∙ проводится прямое доказательство общезначимости,

Особенности процедуры доказательства:

∙ используется сетевая резолюция (реализована через подстановку).


E



V




Y





z


E



V



Y


S



z


E


Для повышения удобства построения программ и увеличения эффективности вычисления введено понятие мультиправила.

Пример: зададим формулу

Логический выводмультиправилоYSVобычные правилаY SzzТеория НО позволяет производить доказательство общезначимости формул логики предикатов первого порядка.∙ логические формулы представляются

Слайд 18Подсистема исполнения запросов (ПСИЗ)
Реализация

Подсистема исполнения запросов (ПСИЗ)Реализация

Слайд 19Абстрактная машина вычисления НО
Реализация ПСИЗ СФЛП основана на
предложенной абстрактной

машине
вычисления НО (АМНО).
Реализация ПСИЗ СФЛП основана на
предложенной абстрактной

машине
вычисления НО (АМНО).

параметры подстановки
FindNet − поиск исходной сети
FindElm − поиск замещаемого элем.
FindRule − поиск правила

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

редукция
Normalize − редукция сети

вспомогательные
DelNet − удаление сети
CopyNet − копирование сети
MoveNet − перемещение сети
IsResult − проверка на результат

Абстрактная машина вычисления НОРеализация ПСИЗ СФЛП основана на предложенной абстрактной машине вычисления НО (АМНО).Реализация ПСИЗ СФЛП основана

Слайд 20Внутреннее представление КССГ
Структура внутреннего представления сети является избыточной, но позволяет

реализовать эффективные алгоритмы выполнения основных вычислительных операций.

Внутреннее представление КССГСтруктура внутреннего представления сети является избыточной, но позволяет реализовать эффективные алгоритмы выполнения основных вычислительных операций.

Слайд 21Внутреннее представление сети

Succ

Add


Succ


∙ Визуальное представление
∙ Внутреннее представление

Внутреннее представление сетиSuccAddSucc∙ Визуальное представление∙ Внутреннее представление

Слайд 22Внутреннее представление сети (продолжение)
Пример: удаление элемента сети. Требуется скорректировать ссылки

точек сети на удаляемый элемент.

Succ

Null



Простое ссылочное представление
Представление ПСИЗ

СФЛП


Succ


Null









- Необходимо просматривать список связей точки с элементами сети.

+ Точно известно, какую связь необходимо скорректировать.


Внутреннее представление сети (продолжение)Пример: удаление элемента сети. Требуется скорректировать ссылки точек сети на удаляемый элемент. Succ NullПростое

Слайд 23









Реализация подстановки

A





B
A





B

A









B
e

A









B

e

A









B



e
A






B



e
результат







=

A

R

Подстановка во внутреннем представлении:

e
e

Реализация подстановкиABABABeABeABeABeрезультат=ARПодстановка во внутреннем представлении:ee

Слайд 24Реализованы следующие виды оптимизации:
∙ редукция «по фронту»
∙ кольцевая подстановка
∙ оптимизация

последнего вызова
∙ оптимизация порядка применения правил
Оптимизация вычислений
(позволяет сократить область сети,

анализируемую на применимость правил редукции − используется «ленивый» принцип анализа сети);

(позволяет уменьшить количество элементов сети при ее копировании для выполнения подстановки за счет реализации копирования «по необходимости»);

(уменьшает вычислительные затраты за счет отказа от копирования исходной сети в том случае, если для замещаемого элемента осталось применить только одно правило);

(позволяет повысить эффективность вычисления рекурсивных НО за счет применения сначала не рекурсивного, а затем рекурсивного правила, как правило, с оптимизацией последнего вызова);

Реализованы следующие виды оптимизации:∙ редукция «по фронту»∙ кольцевая подстановка∙ оптимизация последнего вызова∙ оптимизация порядка применения правилОптимизация вычислений(позволяет

Слайд 25Редукция «по фронту»

F



G
N

C

X
H
N

S










F



G

D





N


F





N

S








Редукция «по фронту»FGNCXHNSFGDNFNS

Слайд 26
H
S




N





Редукция «по фронту» (продолжение)


C
H
S






G

D



N




Т

C
H
S






D


N






Т
Т

HSNРедукция «по фронту» (продолжение)CHSGDNТCHSDNТТ

Слайд 27Кольцевая подстановка

N
N










S

S

S

S

S

S

S
N

S
N

N







S

S

S

N



S
S
S
N
















N
Обычная подстановка:
Кольцевая подстановка:





Кольцевая подстановкаNNSSSSSSSNSNNSSSNSSSNNОбычная подстановка:Кольцевая подстановка:

Слайд 28Кольцевая подстановка (докопирование контекста)


N
N

S
A


S




S


S

A

S

S



N
S

A

S


S




N
S

S
N
S


A


S




S


S
N

S


N

S


N

S





Кольцевая подстановка (докопирование контекста)NNSASSSASSNSASSNSSNSASSSNSNSNS

Слайд 29Системные типы данных и системные НО
Для повышения производительности СФЛП и

удобства ее использования введены системные типы данных и системные НО*

для их обработки.

Системные типы данных:

∙ натуральные числа,

∙ списки,

∙ строки,

∙ термы.

Системные НО:

Пример: [A,B,C]

Пример: 2

Пример: "TXT"

Пример: F(B,G(C,A))

*Системные НО поддерживаются только в режиме вычисления с разметкой.
Системные НО можно рассматривать как НО с внешней интерпретацией.

Системные типы данных и системные НОДля повышения производительности СФЛП и удобства ее использования введены системные типы данных

Слайд 30Отладка программ
Для отладки программ в СФЛП предусмотрены следующие средства:
Дерево

отладки
Системное НО $Write
Системное НО $Show
(отображает построение дерева вывода

в процессе вычисления запроса),

(отображает разметку входных точек элемента сети сорта $Write в специализированном окне редактора),

(отображает сеть в момент начала вычисления элемента сети сорта $Show),

Окно статистики

(отображает основные параметры процесса вычисления).

Отладка программДля отладки программ в СФЛП предусмотрены следующие средства: Дерево отладки Системное НО $Write Системное НО $Show(отображает

Слайд 31Импорт программ языка Пролог
X is 5 + 10*15
X is 5

+ 10*15
Импорт программ, написанных на языке логического программирования Пролог повышает

универсальность СФЛП и обеспечивает поддержку компиляции входного языка СФЛП S-FLOGOL.

Ограничения:

∙ отсутствие синтаксического анализа,

∙ отсутствие поддержки отсечения и отрицания,

∙ отсутствие поддержки полиморфизма предикатов,

из системных предикатов поддерживаются:
=\=, = =, >=, is, write, fail, [ | ], = и \=.

Пример преобразования предиката is:


Пример конструкции [ | ]:

P([a,b|c]).

Импорт программ языка ПрологX is 5 + 10*15X is 5 + 10*15Импорт программ, написанных на языке логического

Слайд 32Схема вычисления запроса в СФЛП

Схема вычисления запроса в СФЛП

Слайд 33Графический редактор
Интерфейсные средства

Графический редакторИнтерфейсные средства

Слайд 34Технология графического построения программ (ТГПП)
ТГПП предназначена для обеспечения корректности формируемой

программы на каждом шаге ее построения.
Формирование КССГ:
Формирование сетей:
добавление элемента

базиса

выделение запроса к системе

добавление правила грамматики

добавление элемента

отождествление точек

добавление ребра dif-графа

удаление элемента

«расщепление» точек

удаление ребра dif-графа

удаление элемента базиса

удаление правила грамматики

определение свойств элемента базиса

Для каждой технологической операции формально определено изменение сети после ее выполнения.

Технология графического построения программ (ТГПП)ТГПП предназначена для обеспечения корректности формируемой программы на каждом шаге ее построения.Формирование КССГ:Формирование

Слайд 35Формирование сетей
Пример добавления элемента сети и отождествления точек:
















Add



Add


Add




Succ




Succ






Add




Succ




Succ


Add




Succ




Succ



Add




Succ





Пример разрушения связей

(«расщепления») точки сети:
Пример удаления элемента сети:










Формирование сетейПример добавления элемента сети и отождествления точек:AddAddAddSuccSuccAddSuccSuccAddSuccSuccAddSuccПример разрушения связей («расщепления») точки сети:Пример удаления элемента сети:

Слайд 36
Вид окна графического редактора

Вид окна графического редактора

Слайд 37Графический редактор
Интерфейс пользователя
Подсистема передачи сообщений
Ядро редактора


Подсистема
построения
грамматики
Подсистема
редактирования
сетей
Подсистема
управления
вычислением
и отладкой
Подсистема
формирования
и прорисовки
изображения
Подсистема
автоматической
расстановки
сетей
Файловая
подсистема






П

С

И

З

Ц
е
н
т
р
а
л
ь
н
ы
й

м
о
д
у
л
ь




Архитектура графического редактора

Графический редакторИнтерфейс пользователяПодсистема передачи сообщенийЯдро редактораПодсистемапостроенияграмматикиПодсистемаредактированиясетейПодсистемауправлениявычислениеми отладкойПодсистемаформированияи прорисовкиизображенияПодсистемаавтоматическойрасстановкисетейФайловаяподсистемаПСИЗЦентральныймодульАрхитектура графического редактора

Слайд 38Автоматическая расстановка сетей
Этапы построения изображения:
предварительная расстановка элементов
Для отображения результатов

вычисления в сетевом виде требуется по внутреннему представлению сетей строить

их графическое отображение.

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

обработка полученного изображения

Особенности реализации основного этапа:

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

использование метода оболочек для ускорения расстановки

обнаружение и гашение циклических колебаний

моделирование вязкости среды

учет геометрических размеров объектов сети

Автоматическая расстановка сетейЭтапы построения изображения: предварительная расстановка элементовДля отображения результатов вычисления в сетевом виде требуется по внутреннему

Слайд 39

Автоматическая расстановка сетей

R
P






N


S




R

Рамки, силы отталкивания и притяжения:
Распределение сил отталкивания:




Автоматическая расстановка сетейRPNS RРамки, силы отталкивания и притяжения:Распределение сил отталкивания:

Слайд 40Основные результаты работы
2. Предложена абстрактная машина вычисления НО. Разработаны алгоритмы

линейной сложности для выполнения подстановки и редукции.
3. Предложены и

реализованы методы повышения эффективности вычисления НО – редукция «по фронту», кольцевая подстановка, оптимизации последнего вызова, маски вычислимости и мультиправила.

5. Разработана технология графического построения программ (ТГПП), гарантирующая корректность формируемой программы.

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

4. На основе предложенных методов и алгоритмов выполнена программная реализация подсистемы исполнения запросов СФЛП. Реализован импорт программ на языке Пролог.

6. Предложены оптимизационные модификации и реализован силовой метод автоматического формирования изображения сетей.

7. Разработана архитектура и выполнена программная реализация графического редактора СФЛП, поддерживающего ТГПП.

8. Подсистема исполнения запросов и графический редактор интегрированы в реализованную совместно с Бебчиком Ал.М. СФЛП.

Основные результаты работы2. Предложена абстрактная машина вычисления НО. Разработаны алгоритмы линейной сложности для выполнения подстановки и редукции.

Слайд 41Спасибо за внимание!

Спасибо за внимание!

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика