автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.17, диссертация на тему:Исследование и реализация функционально-логической парадигмы программирования с использованием формализма направленных отношений

кандидата физико-математических наук
Карпова, Наталья Николаевна
город
Москва
год
1998
специальность ВАК РФ
05.13.17
Автореферат по информатике, вычислительной технике и управлению на тему «Исследование и реализация функционально-логической парадигмы программирования с использованием формализма направленных отношений»

Автореферат диссертации по теме "Исследование и реализация функционально-логической парадигмы программирования с использованием формализма направленных отношений"

На правах рукописи

Карпопа Наталья Николаевна

ИССЛЕДОВАНИЕ И РЕАЛИЗАЦИЯ ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОЙ ПАРАДИГМЫ ПРОГРАММИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ ФОРМАЛИЗМА НАПРАВЛЕННЫХ ОТНОШЕНИЙ

05.13.17 - теоретические основы информатики

Автореферат

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

Автор: "

Москва - 1998

Работа выполнена в Московском кисти гуте (техническом университете)

государственном инженерно-физическом

Научный руководитель:

кандидат гсхничсских наук В.А. ЛГшутдинов

Официальные оппоненты:

доктор физнко-матсматичсских наук, профессор

Абрамов Сергей Александрович,

Ведущая организация:

канлилат технических паук Лебедев Валентин Григорьевич

Военно-воздушная инженерная академия имени 11.1;. Жуковского

Защита состоится « 2.3 » Д^кГА^УрЯ 1998 г. в « И-5> » часов на заседании диссертационного совета Д053.03.08 в Московском государственном инженерно-физическом институте (техническом университете) но адресу: 115409, Москва, Каширское ш., дом 31, тел. 324-84-98.

С диссертацией можно ознакомиться в библиотеке МИФИ.

Автореферат разослан « 42. » ИОЙ§ря 1998 г.

Просим принять участие в работе совета или прислать отзыв в одном экземпляре, заверенный печатью организации. .

Ученый секретарь диссертационного совета д.ф.-м.н_ профессор

А.С. Леонов

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актулыюсть темы исследования

В настоящее время, несмотря на появление большого числа новых языков и парадигм программирования, по-прежнему остается Широкий класс задач, реализация которых является достаточно сложной. К таким задачам относятся задачи математического моделирования, создания экспертных систем с возможностью нечеткого вывода, описания недерминированных алгоритмов, а также комбинаторные задачи и алгебраические вычисления. Решение таких задач требует принципиально новых подходов к программированию, повышения 'эффективности' использования ЭВМ как на этапе разработки, так и на этапе эксплуатации программного обеспечения.

Для решения подобных задач были созданы языки и системы программирования, объединяющие преимущества функционального и логического программирования. Интерес к функциональному программированию обусловлен близостью функциональных языков к общепринятом математической нотации, возможностью строгого описания семантики функциональных языков, высокой степенью абстракции, а также тем. что функциональные программы обладают естественным внутренним параллелизмом.

Большинство реализаций систем программирования, объединяющих преимущества функционального и логического программирования, не имели собственного интерфейса, непосредственно использовали интерпретаторы функциональных языков и были выполнены для ЕС ЭВМ. Распространение ПЭВМ, распределенных вычислительных систем и связанный с этим прогресс в развитии программного обеспечения существенно изменили критерии оценки реализаций языков, что потребовало создания нового языка функционально-логического программирования.

Цель работы: исследование формализма направленных отношений как математической основы построения языков функционально-логического программирования, разработка и реализация с использованием данного формализма языка функционально-логического программирования РШСОЬ и реализация на его основе интегрированной системы программирования.

Методика исследований

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

Научная новизна

•, , ■ ■ ■ ■ -

В рамках решения поставленных задач в диссертации получены следующие новые научные результаты:

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

2. Предложено и разработано единообразное представление основополагающих математических понятий как подвидов направленных отношений.

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

4. Разработан язык функционально-логического программирования РИХЮЬ, предназначенный для алгебраических вычислений, решения комбинаторных проблем, символьной обработки данных и ряда задач искусственного интеллекта.

5. Разработана модель вычисления направленных отношений по запросу.

Перечисленные результаты мо|-ут быть 'использованы для формализации

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

Теоретическая и практическая значимость

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

4

основе разработанного языка функционально-логического программирования ГЬОСОЬ реализована интегрированная система программирования, включающая средства разработки и исполнения функционально-логических программ, встроенный редактор текстов и другие подсистемы, выполняющие вспомогательные функции. .

Автор защищает:

1. Математическую модель языка функционально-логического программирования РЬСЮОЬ.

2. Язык функционально-логического программирования Н.ОСОЬ.

3. Алгоритм типового контроля.

4. Параметризацию и схемное представление программ и отношений.

5. Модель вычисления направленных отношений по запросу.

, 6. Организацию внутреннего представления программ на языке Р1ХЮОЬ.

Структура I! объем диссертации

Диссертация состоит из введения, четырех глав и двух приложений. Основной материал изложен на 159 страницах и содержит 11 рисунков, 2 таблицы. Список литературы включает 70 наименований.

Содержание работы

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

задачи. Программа в этом случае отражает функциональные зависимости, присущие решаемой задаче.

Анализ языков программирования различных стилей показал преимущества языков функционального программирования по сравнению с языками других стилей. В свою очередь анализ языков функционального профаммирования показал преимущества композиционных языков., в которых решена общая для ^.-основанных языков проблема, связанная с эффективной и корректной реализацией задания значений переменных. Другим преимуществом композиционных языков является наличие параллельной вычислительной модели.

Основная трудность, связанная с функциональным программированием и заключающаяся в том, что математическая функция всегда имеет одно значение, преодолена в логических языках. В работе щкгдлагается объединить преимущества функционального и логического программирования в одном языке на основе использования понятия направленного отношения.

Известна фундаментальность значения понятая «отношение» как математического объекта в теории вычислений. (Угнетение определяется как подмножество р| я Рг'х ... х декартова произведения множеств

0|, ..., Ц,. В отличие от этого базовым понятием формализма направленных отношений является понятие (ш, п)-арного направленного отношения к""-1" как некоторого неоднозначного в общем случае соответствия (отображения) К,гп'п':

X О/ X ... X От' 0|" х 02" * ... х 0„" для соответствующих множеств О,', 1<1<т и О,",

Направленное отношение К1"1-"1 однозначно определяется своим графиком {(а', а") | Ща'ИП, где а,=<^|'dJ•...dm, и а"=а,"<3."...а„", а.'бО,' (!<1<ш), й/'еО/' (1<3<п) - кортежи. Множества {а'| За" Н<т-П)(а')=а"} и ¡а" 1 За'Я|т'",(а,)=а"} называются областью определения и областью значений К""'Допускаются также случаи т=0 или п=0 или т=п=0. При этом предполагается существовать множества О'0'«»}).}, содержащего единственный элемент X - пустой кортеж сс свойством Ха=аХ=а для любого кортежа а. Это дает возможность рассматривал направленные отношения в этих случаях как «обычные» ш-арные отношения.

Отношения К<0'т> можно трактовать как множества кортежей длины т Поскольку любой т-арный предикат однозначно характеризуется множество»

6

кортежей длины m, на которых он принимает значение «истина», то вполне естественно его представление в виде (т, 0)-арного направленного отношения, область определения которого совпадает с областью истинности соответствующего предиката. Для ш=п=0 существует всего два возможных направленных отношения -.с пустым графиком и с графиком {(X, X)), которые могут играть роль истинностных значений false и true соответственно. Функции и программы также представляют собой направленные отношения с условием, что их графики являются функциональными. Таким образом, понятие направленного отношения не только обобщает общепринятое понятие отношения, но также является естественным прн представлении таких отображений (в том числе многозначных), как функции, программы и др.

С использованием формализма направленных отношений в работе предложена математическая модель и разработан язык функционально-логического программирования F1-OGOL. Все конструкции в языке рассматриваются как направленные отношения (далее отношения) с наложенными на них ограничениями. Основные конструкции языка представлены втаблице К

Таблица 1

Основные конструкции языка

№ п/п Ha3Bamie Смысл Арность Функциональность

1 PROPOSITION Утверждение, факт (0,0)

2 OBJECT Объект (0,1) +

3 SET Множество (0,1) -

4 TUPLE Кортеж объектов (0,п) +

S TUPLE SET Множество кортежей . (0,п) -

6 PREDICATE Предикат (т,0) +

7 CONSTRUCTOR Конструктор (т,1) +

8 FUNCTION Функция (т,1) +

9 TUPLE FUNCTION Возвращает кортеж < (гал) +

10 RELATION Направленное отношение (т,п) -

Выражение вида Р=Тгие представляет собой факт (PROPOSITION); выражение OBJECT B=succ(2) - определение объекта (OBJECT). Каждый обьект может быть получен только одним конструктором (CONSTRUCTOR).

Под кортеркем объектов (TUPLE) понимается упорядоченное множество объектов.

TUPLE FUNCTION является расширением классического понятия функции и представляет собой функцию, которая возвращает ие одно значение, а кортеж значений.

В качестве базисных в язык введены следующие операции композиции отношений:Л, |. Обозначим символами R' и R" существующие отношения.

Последовательная композиция (Л):

R' R" - {<а, р> | (Зу) <а, у> е R'& <у, Р> е R"), где а - входной кортеж отношения R1, р - выходной кортеж отношения R", у -выходной кортеж олюшения R', являющийся одновременно входным кортежем отношения RV

Параллельная композиция (#):

R'#R" = {<а'а", Р'Р"> | <а\ Р'> е R' & <а", е R"), где а' и р' - входные и выходные кортежи отношения R', a ci" и Р" - входные и выходные кортежи отношения R". Данная операция является параллельной, т.к. возможно одновременное вычисление связанных этой операцией отношений.

Объединение d-отпошгний (|) - обычное теоретико-множественное объединение.

Все отношения в языке допускают рекурсивное описание.

Язык содержит набор встроенных элементарных комбинаторных констант, представляющих собой простые комбинаторные отношения, применяя к которым операции композиции, можно получить любое отношение арности (т, п). Существует восемь элементарных комбинаторных констант:

1. Комбинаторное отношение арности (0,0), записываемое как о или {<, >), что обозначает соответственно пустое множество или пару пустых кортежей. Запись о в языке рассматривается как TRUE, а запись {<, >} - FALSE.

2. Нулификатор, или отношение арности (1,0), имеющее один вход и не имеющее выходов (->):

.><'-°>o {<e,>|aeD).

3. Генератор, или отношение арности (0,1), не имеющее входов и имеющее один выход (<-):

" <-t01)o {<,a>|aeD}.

4. Копирование, или отношение арности (I, 2) (-<):

-<(1J)o {<a,cea>|aeD}. Если на входе данного отношения кортеж а, то на выходах - два кортежа а.

5. Слияние, или отношение арности (2,1) (>-):

,>-мо {<am;a>|aeD}. Если на входах данного отношения два одинаковых кортежа а, то на выходах -один кортеж а.

6. Пересечение, или отношение арности (2,2) {><):

х<г-2,о. {<ap,p<x>|a€D&PeD}.

Если на первом входе данного отношения имеется кортеж а, на втором -кортеж Р, то на черном выходе отношения - кортеж (î, а на втором - кортеж а. Отношение двойственно само себе.

7. Неравенство, или отношение арности (1, 1) (-/-): •

-/-"'"о (<а,(5>|aeD&peD Ha входе данного отношения кортеж <х, на выходе - кортеж р, и эти кортежи не равны. Отношение двойственно егмо себе: .

8. Тождество (идентичность), или отношение арности (1.1) (—):

-"•"о {<а, a>|acDK Ha входе и на выходе данного отношения один и тот же кортеж а.

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

Отношение R типа (ti, h) означает, что область определения отношения R: Dom(R)stiy а область значений: Range(R)et;, где ti, t2 - типы входного н выходного кортежей соответственно.

В спецификациях входов и выходов отношений могут быть использованы только отношения арности (0, m) и (п, 0), а, именно, PROPOSITION, OBJECT, SET, TUPLE, TUPLE SET и PRED1CATE. В свою очередь, при описании самих этих отношений не могут быть использованы отношения произвольных арностей, отличающихся от (О, m) и (п, 0).

Правша задания отношений, связанных операцией последовательной композиции:

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

вид:

Я'ЛЯ" = {<а\ (Г> | <а', р*> б Я" & <а", Р"> е И"). ■

1. Арность выходного кортежа [У отношения Я' должна совпадать с арностью входного кортежа а" отношения К". Проверка арностей кортежей а' и [Г не осуществляется.

2. Арность входного кортежа результирующего отношения Я равна арности входного кортежа отношения Я', а арность выходного кортежа Я равна арности выходного кортежа отношения Я".

3. В случае, если Л' и К" - отношения типов ((|, и (ь, (з) соответственно, то Я'ЛЯ"~ отношение типа

Правила задания отношений, связанных операцией параллельной композиции:

Параллельная композиция отношений:

= {<а'а", Р*Р"> | <а\ р'> ей' & <а", р"> е Я"}.

1. Входные кортежи а' отношения Я' и а" отношения Я" также, как и выходные кортежи р' отношения Я' и Р" отношения Я" могут иметь различные арности.

2. Входная и выходная арности результирующего отношения Я определяются как суммы соответствующих арностей отношений Я' и Я".

3. Если отношения Я* типа (МИг) и Я" типа {I}, и) связаны операцией параллельной композиции, то результирующее отношение Я будет иметь тип (^хЬИгхц).

Правила задания отношений, связанных операцией объединения:

1. Арности входных и выходных кортежей объединяемых отношений Я' и Я" должны быть одинаковы.

2. Типы объединяемых отношений Я' и Я" должны быть равны. Результирующее отношение имеет тот же самый тип.

Отличительной особенностью языка является возможность использования в спецификациях входов и выходов отношений неопределенного отношения арности (0,1), обозначаемого и неопределенного отношения арности (0, п), обозначаемого Вместо отношения # может быть подставлено любое отношение

арности (0,5), а вместа отношения «-любое отношение арнбсти (0, п).

Типовой контроль в языке разделен на два этапа. Первый этап осуществляется на стадии компиляции исходной программы, второй - на стадии исполнения программы, т.е. после формирования запроса.

На стадии компиляции программы типовой ксштр^оль является статическим и, в свою очередь, также проходит несколько этапов для каждой операции композиции: •

Этап 1. Проверка арностей отношений для соответствующих операций композиции.

Этап 2. Проверка типов входных и выходных кортежей отношений, связанных данной операцией (проверка спецификаций входов и 'выходов отношений).

При выполнении операции последовательной композиции осуществляется проверка арностей отношений по следующему правилу: арность выходного кортежа первого операнда должна быть равна арности входного кортежа второго операнда. Типы данных кортежей должны совпадать.

D качестве первого операнда операции могут выступать все конструкции языка, за исключением PREDICATE. В качестве второго операнда могут выступать следующие конструкции: PREDICATE, FUNCTION, TUPLE FUNCTION, RELATION. CONSTRUCTOR.

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

При выполнении операции объединения отношений осуществляется проверка арностей отношений по следующему правилу: арности входных кортежей, также как и арности выходных кортежей, должны быть равны. Типы объединяемых отношений должны совпадать.

Программа на языке FLOGOL представляет собой один или несколько связанных через импорт-экспорт отношений модулей. Импорт и экспорт реализованы в неявной форме. Это означает, что часть отношений внутри модуля является доступной из другого модуля. При импорте отношения из другого модуля необходимо указывать квалифицированное имя отношения, что позволяет избежать проблем с совпадением имен разных отношений.

Каждый модуль содержит хотя бы один домен. Внутри такого домена

может содержаться любое количество поддоменов.

«

Для всех отношений, определенных в поддоменах, допустимо использование в правой части имен всех отношений, описанных выше данного, вне зависимости от глубины их вложенности. При этом действует ограничение, связанное с заданием экспортируемых к («экспортируемых отношений (рис. 1). Механизм «видимости» имен покажем на примерах.

Пример I. Находимся в определении значения параметра С.

При этом можно пользоваться следующими именами: О, С, А, В, I/, ЛУ, Е, Я. Остальные имена не доступны.

Пример 2. Находимся в определении значения параметра Ь.

При этом можно пользоваться следующими именами: I., Я, Р, и, V/, Е, Т, А, В, С. Остальные имена не доступны.

Задание отношения С может выглядеть, к примеру, следующим образом: , А{Еи,Еж}.С{Ей}, -

где Ей, Б*, Ел - фактические значения параметров и, W, О. Можно задать отношение С с другим фактическим значением параметра О, тогда его задание будет выглядеть следующим образом:

А{Е„, Е»}.С{Е\|}, или с другими фактическими значениями параметров и, \У: А{Е\,, Е'»(-С{Е'<|},

Аналогично задание параметра В, для которого не задано значение по умолчанию (рис. 1), будет выглядеть следующим образом: А{Е„, Е,}.В или А{Е*,„ Е'„}.В.

При вызове отношения на исполнение, т.е. при формировании запроса, пользователь задает имя модуля с фактическими значениями внешних параметров н имя отношения с фактическими параметрами. Результатом исполнения запроса является выражение, представляющее из себя константное отношение с заданными значениями параметров.

Язык РЬОСЮЬ является «схематологическим» языком с высоким уровнем абстракции. В языке можно выделить два его подмножества: подъязык конструирования параметризованных схемных функционально-логических программ и подъязык извлечения их конкретного представления.

в

©

---\

\ \

/' N

■ и ;

Условные обозначения:

Имя

домена

Закрытая часть домена X

Открытая часть доменаХ

Параметр, для /•• которого не

' ^ задано значение

по умолчанию

Значение параметра по умолчанию

Изображение домена

* Видно все, что определено из * точек, находящихся выше

Рис. 1. Структура программного модуля на языке ГЬОООЬ 13

В языке имеется возможность параметризации доменов с помощью списка внешних параметров домена. Роль списка внешних параметров заключается в том, что с его помощью весь домен в целом может быть описан как схема, которая зависит от параметров.

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

- композицией отношений;

- арифметическими выражениями, которые строятся применением арифметических операций и конструкций выбора (условной и разбора случаев .значений арифметического выражения) к натуральным константам, значениям . доступных натуральных параметров, значениями доступных определенных в модуле арифметических функций, числовым характеристикам (количеством входов и выходов) отношений;

-логическими выражениями (условиями), вычисляемыми с применением операций сравнения значений арифметических выражений и конструкций выбора.

Возможна параметризация отдельных отношений в домене. Эта параметризация осуществляется с помощью списков входных и выходных ' параметров отношения. С учетом вида отношения при объявлении задается спецификация входов и выходов с помощью отношений арности (0, п) или (ш, 0), m, nSO, определяемых в общем случае как композиция доступных для использования отношений. Допускаются обе формы спецификации, случай m=n=0 не требует спецификации вообще. Это дает программисту свободу . выражения типов входов и выходов отношений как через указание множества значений (арность отношения (0, п)), так и через характеристический предикат множества (арность ((ш, 0))).

Схемы отношений могут быть заданы также с помощью существующих в языке кояструкций IF - THEN - ELSE и CASE - OF. ,

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

Типовой контроль на этапе исполнения являетсц динамическим. Это объясняется тем, что только на данном этапе при формировании запроса . указываются фактические параметры соответствующих модулей, доменов и отношений. Таким образом, для всех внутренних элементов доменов модуля, т.е. отношений, не импортируемых из других модулей, типовой контроль заключается

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

Так как в запросе могут использоваться операции композиции, то сам запрос также проходит этап типового контроля.

Язык рассматривается ка» основа интегрированной системы функционально-логического программирования и проектирования программ, главная составляющая которой - интегрированная система программирования - в работе разработана й полностью реализована. При ее разработке и реализации учитывались следующие требования. Во-первых, требовалось повысить эффективность работы иро|раммиста за счет лучшей организации процесса разработки программ. Во-вторых, требовалось создать программное обеспечение, которое могло бы с минимальными переделками быть использовано а рамках различных операционных систем и различных типов ЭВМ. В-третьих, требовалось создать систему, которая сочетала бы в себе легкость внесения изменений и дополнений на всех уровнях с достаточно высокой эффективностью се функционирования. Кроме того, базовая реализация должна была функционировать на ПЭВМ'тина 1ВМ РС. что могло бы существенно расширить круг потенциальных пользователей языка.

Основными элементами интегрированной системы программирования являются компилятор и система исполнения.

Компилятор .языка РЬОООЬ осуществляет перевод программы из исходного текстового представления во внутреннее представление, проводит лексический и синтаксический анализы, а также типовой контроль исходной программы.

Лексический анализатор осуществляет проверку исходной программы с точки зрения правильности представления лексических конструкций языка РШООЬ и приведения се к виду, допускающему обработку этой программы синтаксическим анализатором.

Синтаксический анализатор осуществляет проверку исходных конструкций языка на соответствие синтаксическим правилам языка П.ООЮЕ..

Назначение системы исполнения - формирование и исполнение запроса на вычисление конкретного отношения

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

Оригинальными особенностям внутреннего представления являются:

1. Допускаются длинные (без ограничений) имена, хранимые в уплотненном массиве и извлекаемые по номеру имени из массива. При некотором увеличении времени доступа это позволяет существенно экономить память. При классическом подходе имена: хранятся как элементы списка, при атом резервируемая пол каждый элемент память равна самому длинному имени.

2. Введение избыточных горизонтальных связей существенно увеличивает скорость поиска при незначительном расходовании дополнительной памяти. В . среднем, добавляется I байт на 10, т.е. расход памяти увеличивается на 10%, при этом скорость доступа увеличивается на 50-60%.

Интегрированная система программирования, ядром которой является ' язык функционально-логического программирования FLOGOL, имеет многооконный интерфейс, обладает всеми возможностями классического текстового редактора и, имеет возможности, характерные для интегрированных сред программирования.

Основные результаты

Главным итогом диссертационной работы является разработка и реализация на ПЭВМ IBM PC языка функционально-логического программирования, обладающего преимуществами по сравнению с языками функционального программирования и объединяющего в себе черты функционального композиционного и логического программирования. Данная реализация обладает удобным синтаксисом, возможностью создания различных структур данных и средствами контроля типов. В ходе работы были получены следующие результаты:

1. Проведен анализ существующий языков функционального, логического и реляционного программирования, в котором отражены различные подходы к определению, а также вопроси реализаций и практического использования этих языков. Особое внимание уделено средствам структурирования и модульной организации программ, а также вопросам типизации языков программирования.

2. Исследован формализм направленных отношений как математическая основа построения языков функционально-логического программирования. Предложено использовать данный формализм для создания языка, объединяющего преимущества функционального композиционного и логического программирования.

: 3. Разработано единообразное представление основополагающих математических понятий как подвидов направленных отношений.

4. Разработан язык функционально-логического программирования РЬОСОЬ с целью применения в системах искусственного интеллекта для обработки сложно организованных данных с широким использованием рекурсивных определений объектов и задания на таких данных функций и отношений. Опнсан синтаксис и семантика его конструкций.

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

6. Разработана архитектура интегрированной системы функционально-логического программировали* и проектирования 'программ, ядром которой является язык П.ОСОЬ.

7. Разработано и реализовано внутреннее представление программ, позволяющее в 1,5 раза сократить время их исполнения по сравнению с языками функционального программирования.

8. Разработаны алгоритмы компиляции и реализован компилятор языка функционально-логического программирования рЦХЮЬ.

9. Реализована интегрированная среда программирования, включающая средства разработки и исполнения функционально-логических программ, встроенный редактор текстов и другие подсистемы, выполняющие вспомогательные функции.

Реализация результатов работы

Выполненная работа соответствует «Перечню технологий двойного назначения (двойных технологий федерального уровня)» (раздел R.4.2.1.3 «Языхи программирования и компиляторы»). Результаты исследований, изложенных в диссертационной работе, использованы при разработке программ в Государственном центре компьютерных технологий «СиликонТелекомСофт» при Министерстве общего и профессионального образования РФ, г.Москва. Разработанная система программирования внедрена в ЗАО «Фирма «АйТи». Информационные технадопш», г. Зеленоград.

Публикации и апробация диссертации

Результаты диссертационной работы докладывались и обсуждались на Всероссийской научно-технической конференции с участием зарубежных представителей «Интеллектуальные САПР-96» (Геленджик, 1996г.), международной конференции ■ «Информационные средства и технологии» (Москва, 1997г.), Всероссийской научно-технической конференции с участием зарубежных представителей «Интеллектуальные САПР-97» (Геленджик, 1997г.), Второй Всероссийской научно-технической конференции с международным участием «Электроника и информатика - 97» (Зеленоград, 1997г.), научной сессии МИФИ (Москва, .1998р.), ежегодной научно-технической конференции студентов и аспирантов ВУЗов России (Москва, 1998г.).

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

КБенеташвили А.Г., Карпова H.H. Структурное программирование -общая методологическая основа построения программ." Известия ТРТУ. Тематический выпуск Интеллектуальные САПР «Материалы Всероссийской научно-технической конференции с участием зарубежных представителей «Интеллектуальные САПР-96». Таганрог: ТРТУ, 1997, № 3(6), с. 220-221.

2. Бенеташвили А.Г., Карпова H.H. Функциональный язык параллельного программирования и его применение при решении задач искусственного интеллекта // Пятая национальная конференция с международным участием

«Искусственный интеллект - 96». Сб. науч. трудов. В 3-х томах. Том 3. Казань, 1996, с. 430-433.

3. Будихин A.B., Гуджоян О.П., Карпова H.H., Николаев А.Б., Шаврин К.А. Использование технологии «клиент-сервер» в базах данных// «Электронные системы автоматического управления на транспорте и в •строительстве». Сборник научных трудов МАЙИ (ТУ). Москва: Издание МАДИ (ТУ), 1997, с. 71-82.

4. Будихин A.B., Гурьянов В.М., Карпова H.H. Особенности организации баз данных и знаний итерированных автоматизированных производств // «Элек1ронные системы автоматического управления на транспорте и в строительстве». Сборник научных трудов МАДИ (ТУ). Москва: Издание МАДИ (ТУ). 1997, с. 121-132.

5. Карпова H.H. Абстрактные типы данных в языках функционального программирования // Научная сессия МИФИ-98. Сб. науч. трудов. Часть 5, с. 5152.

6. Карпова H.H. Диаграммы Вирта как формальная система задания синтаксиса языка функционально-логического параллельного программирования. Известия ТРТУ. Тематический выпуск Интеллектуальные САПР «Материалы Всероссийской научно-технической конференции с ' участием ззрубежных представителей «Интеллектуальные САПР-96». Таганрог: ТРТУ, 1997, № 3(6), с. 203-204.

7. Карпова Н.иЯР^^нн'гти написания функционально-логических параллельных про-рамм с использованием языка FLOGOL. Известия ТРТУ. Тематический вылусх Интеллектуальные САПР «Материалы Всероссийской научно-технической конференции с участием зарубежных представителей «Интеллектуальные САПР-96». Таганрог: ТРТУ, 1997, № 3(6), 232 с.

8. Карпова H.H. Реляционные языки программирования и язык FLOGOL. Ежегодная научно-техническая конференция студентов и аспирантов вузов России «Радиоэлектроника и электротехника в народном хозяйстве». Тезисы докладов. В 2-х томах. Том 1. М.: Изд-во МЭИ, 1998, С. 184-185.

9. Карпова H.H. Средства модульной организации программ на языке FLOGOL // Сборник научных статей к иаучнр-технической конференции МИРЗА (ТУ) 1998 года. Москва: Изд-во«Эребус», 1998,с. 10-13.

10. Карпова H.H. Структура и особенности организации интеллектуальной среды для автоматизации проектирования функционально-логических программ. Вторая Всероссийская научно-техническая конференция с международным участием «Электроника и информатика - 97». Тезисы докладов. Зеленоград, 1997, с. 68-69.

11. Карпова H.H. Теория направленных отношений как основа построения языка функционально-логического программирования FLOGOL. Международная конференция «Информационные средства и технологии». Тезисы докладов. Москва, 1997, с. 108-113.

ч

Подписано в печать Ь- Заказ 'Jib Тираж ЮС экз.

Типография МИФИ, Каширское шоссе, 31