
- •Московский институт радиотехники, электроники и автоматики (МИРЭА ТУ)
- •Цель, задачи и структура работы.
- •Научная новизна и практическая значимость.
- •Апробация работы и публикации.
- •Направленные отношения.
- •Сетевое представление НО
- •Вид программы и способ ее вычисления
- •Редукция сетей
- •Вычисление в базисе конструкторов
- •Вычисление с разметкой
- •Вычисление с разметкой
- •Стратегии вычисления
- •Логический вывод
- •Внутреннее представление КССГ
- •Внутреннее представление сети
- •Оптимизация вычислений
- •Редукция «по фронту»
- •Кольцевая подстановка
- •Системные типы данных и системные НО
- •Отладка программ
- •Импорт программ языка Пролог
- •Схема вычисления запроса в СФЛП
- •Технология графического построения программ (ТГПП)
- •Автоматическая расстановка сетей
- •Основные результаты работы

Системные типы данных и системные НО
Для повышения производительности СФЛП и удобства ее использования введены системные типы данных и системные НО* для их обработки.
*Системные НО поддерживаются только в режиме вычисления с разметкой. Системные НО можно рассматривать как НО с внешней интерпретацией.
Системные типы данных:
натуральные числа, Пример: 2
списки,
Пример: [A,B,C]
строки,
Пример: "TXT"
термы.
Пример: F(B,G(C,A))
|
Null |
Succ |
Succ |
C |
B |
A |
|
|
Cn |
Cn |
Cn |
Nil |
|
|
|
T |
X |
T |
|
|
Cn |
Cn |
Cn |
Nil |
|
|
|
|
|
B |
F |
|
C |
|
|
|
G |
|
|
|
|
|
|
|
A |
|
|
Системные НО:
Имя НО |
Комментарий |
123 |
Натуральные числа |
Генератор числа 123 |
|
Add |
Сложение |
Sub |
Вычитание |
Mult |
Умножение |
Div |
Деление |
> |
Оператор «больше» |
>= |
Оператор «больше либо равно» |
|
|
< |
Оператор «меньше» |
<= |
Оператор «меньше либо равно» |
== |
Оператор «равно» |
=/= |
Оператор «не равно» |
= |
Особые НО |
Унификация термов |
|
\\= |
Термы не унифицируемы |
is |
Предикат is Пролога |
write |
Выдача текстового сообщения |
flogol_spec |
Оптимизация компиляции |
|
21 |

Отладка программ
Для отладки программ в СФЛП предусмотрены следующие средства:
Дерево отладки
(отображает построение дерева вывода в процессе вычисления запроса),
Системное НО $Write
(отображает разметку входных точек элемента сети сорта $Write в специализированном окне редактора),
Системное НО $Show
(отображает сеть в момент начала вычисления элемента сети сорта $Show),
Окно статистики
(отображает основные параметры процесса вычисления).
22

Импорт программ языка Пролог
Импорт программ, написанных на языке логического программирования Пролог, повышает универсальность СФЛП и обеспечивает поддержку компиляции входного языка СФЛП S- FLOGOL.
Ограничения:
отсутствие синтаксического анализа,
отсутствие поддержки отсечения и отрицания,
отсутствие поддержки полиморфизма предикатов,
из системных предикатов поддерживаются:
=\=, = =, >=, is, write, fail, [ | ], = и \=.
Пример преобразования предиката is:
X is 5 + 10*15 |
|
|
|
X is 5 + 10*15 |
|
5 |
+ |
|
$ar(+(5,*(10,15))) |
10 |
|
$ar |
$ar |
|
* |
|
|||
|
|
|
155 |
|
15 |
|
|
X |
X |
|
|
|
Пример конструкции [ | ]:
P([a,b|c]).
|
A |
Cn |
B |
|
|
Cn |
App |
|
|
|
|
Nil |
|
|
C
Cn
Nil
23

Схема вычисления запроса в СФЛП
|
КССГ ПСИЗ в |
Блок визуализации |
|
|
|
|
ГРАФ |
вычислений |
|
|
|
Графический |
ГРАФ в |
Блок |
Ядро |
Системные |
|
предварительной |
|||||
редактор |
КССГ ПСИЗ |
ПСИЗ |
НО |
||
обработки КССГ |
|||||
|
|
|
|
|
|
|
|
|
|
|
Компилятор |
|
|
|
Пролог в |
|
|
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|||||
запросов |
|
|
|
КССГ ПСИЗ |
|
|
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|
|
|
|
|
SimpleNet в КССГ ПСИЗ
конверторы
ПСИЗ
24

Технология графического построения программ (ТГПП)
ТГПП предназначена для обеспечения корректности формируемой программы на каждом шаге ее построения.
Формирование КССГ*:
добавление элемента базиса
определение свойств элемента базиса
удаление элемента базиса
добавление правила грамматики
удаление правила грамматики
выделение запроса к системе
Формирование сетей*:
добавление элемента
удаление элемента
отождествление точек
«расщепление» точек
добавление ребра dif-графа
удаление ребра dif-графа
*Для каждой технологической операции формально определено изменение сети после ее выполнения.
Пример добавления элемента сети и отождествления точек:
Add
Add
Пример разрушения связей («расщепления») точки сети:
Succ |
Succ |
|
|
|
Add |
Пример удаления элемента сети: |
Succ |
Succ |
|
|
|
Add |
Succ |
Succ |
|
|
|
Add |
Succ |
Add |
25 |

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

Автоматическая расстановка сетей
Для отображения результатов вычисления в сетевом виде требуется по внутреннему представлению сетей строить их графическое отображение.
Рамки, силы отталкивания и притяжения: |
|||
Этапы построения изображения: |
|
|
|
предварительная расстановка элементов |
|
|
P |
основная расстановка методом силовых воздействий |
|
R |
|
|
|
||
обработка полученного изображения |
S |
|
|
|
|
N |
|
|
|
|
|
Особенности реализации основного этапа: |
|
|
|
учет геометрических размеров объектов сети |
Распределение сил отталкивания: |
||
использование метода оболочек для ускорения расстановки |
|
F |
|
особое распределение сил отталкивания |
|
|
|
обнаружение и гашение циклических колебаний |
|
R |
|
моделирование вязкости среды |
|
|
S |
|
|
|
27 |
Основные результаты работы
1.Введено понятие размеченной сети. Предложены правила редукции для разме- ченных сетей.
2.Предложена абстрактная машина вычисления НО. Разработаны алгоритмы линейной сложности для выполнения подстановки и редукции.
3.Предложены и реализованы методы повышения эффективности вычисления НО – редукция «по фронту», кольцевая подстановка, оптимизации последнего вызова,
маски вычислимости и мультиправила.
4.На основе предложенных методов и алгоритмов выполнена программная реализация подсистемы исполнения запросов СФЛП. Реализован импорт Пролог-программ.
5.Разработана технология графического построения программ (ТГПП), гарантирующая корректность формируемой программы.
6.Предложены оптимизационные модификации и реализован силовой метод автомати- ческого формирования изображения сетей.
7.Разработана архитектура и выполнена программная реализация графического редактора СФЛП, поддерживающего ТГПП.
8.Подсистема исполнения запросов и графический редактор интегрированы в реализо- ванную совместно с Бебчиком Ал.М. СФЛП.
28