Пивоварчик О. В., Лазуркин Д. А., БГУИР, г. Минск
Теория программирования Библиотека совместимых ip-компонентов для создания программ Инструментальные средства, ориентированные на обработку семантических сетей Методика проектирования программ, ориентированных на обработку семантических сетей Методика обучения проектированию программ, ориентированных на обработку семантических сетей Интеллектуальная help-система по технологии проектирования программ
библиотека ip-компонентов инструментальное средство проектирования интеллектуальная help-система по технологии проектирования программ
В качестве базового языка программирования, предназначенного для эффективной интерпретации семантических сетей, используется язык SCP (Semantic Code Processing). SCP – это графовый процедурный язык программирования, ориентированный на переработку нечисловой информации. Особенности языка SCP: ориентация на использование структурно перестраиваемой (графодинамической) ассоциативной памяти; хорошая приспособленность к переработке нечисловых структур, в том числе представляющих сложные динамические базы знаний; ориентация на переработку непосредственно семантических сетей, а не структур (например, списковых), с помощью которых семантические сети кодируются (язык SCP описывает переработку информации непосредственно на уровне семантического кодирования); возможность реализации механизмов решения задач (логических операций, операций вывода), имеющих различный уровень сложности и поддерживающих различные стратегии решения задач; возможность через содержимое sc-узла интегрировать процедуры над sc-конструкциями с программами, написанными на традиционных языках и описывающими переработку различных информационных структур. Это обеспечивается тем, что содержимым SC-узла может быть информационный объект любой природы; высокий потенциал распараллеливания процессов переработки информации в графовой структурно перестраиваемой ассоциативной памяти. SCP является подъязыком базового графового языка SC (Semantic Code). Особенностью этого языка является то, что не только данные, но и сами программы, написанные на языке SCP, представляются в виде SC-конструкций.
представляется в виде специальным образом устроенной sc-конструкции хранится в sc-памяти может входить в состав данных по отношению к другим scp-программам либо по отношению к самой себе
Множество параметров scp-программы (spar) – это упорядоченное множество программных переменных этой scp-программы. Это множество упорядочено атрибутами 1_, 2_, 3_ и т.д. Параметры, значения которых scp-программа получает из вызвавшей её программы, уточняются атрибутам in_. Параметры, значение которых scp-программа возвращает вызвавшей её программе, уточняется атрибутам out_. Возвращение значений параметров происходит при вызове return-операторов. Множество констант scp-программы (sconst) – это множество константных sc-элементов. Значением scp-константы является узел, обозначающий scp-константу. Множество программных переменных scp-программы (svar) – это множество переменных sc- элементов. Значением переменной scp-программы является sc-элемент, связанный бинарным ориентированным отношением с sc-узлом, обозначающим scp-переменную.
SCP-операторы, при реализации которых осуществляется безусловная передача управления следующему реализуемому оператору; SCP-операторы, при реализации которых осуществляется условная передача управления одному из двух операторов; SCP-операторы, завершающие реализацию SCP-программ, т.е. операторы, при реализации которых не осуществляется передача управления одному из операторов этой же SCP-программы.
scp-операторы генерации sc-конструкций scp-операторы удаления sc-конструкций scp-операторы ассоциативного поиска sc- конструкций scp-операторы выборки scp-операторы проверки условий scp-операторы изменения свойств sc- элемента scp-операторы управления scp-процессом scp-операторы вывода на консоль
sc-конструкция, состоящая из одного sc-элемента sc-конструкция, состоящая из трех элементов (первый элемент такой конструкции является SC-узлом, тип которого может быть дополнительно уточнен с помощью атрибута const_, var_, meta_. Второй элемент - SC-дуга, тип которой может быть дополнительно уточнен с помощью атрибутов const_, var_, pos_, neg_, fuz_. Третий элемент может быть sc-узлом, sc-дугой или sc- элементом неопределенного типа. Этот элемент может быть дополнительно уточнен с помощью атрибута node _, arc_, elem_, а также с помощью атрибутов const_, var_, meta_, pos_, neg_, fuz_ sc-конструкция, состоящая из пяти элементов. Первые три элемента - те же, что и в случае трехэлементной SC- конструкции. Четвертый элемент - SC-дуга, пятый - SC- узел. Все элементы могут быть уточнены с помощью соответствующих атрибутов
Редактор scp-программ Средство сборки репозитория базы знаний SCP-интерпретатор SCP-отладчик Основой инструментального средства является библиотека для моделирования sc-памяти.
Служебные операции интерпретации scp-программ Операции интерпретации scp-операторов типа genEl типа genElStr3 типа genElStr5 типа add и других типов Операции навигационно-поисковых запросов Операции генерации по образцу
Работа с точками останова Пошаговая трассировка Пошаговая трассировка со входом в вызываемую программу Отображение значений scp-переменных во время выполнения Навигация по sc-памяти (использование навигационно-поисковых операций)
opi и opj – знаки некоторых scp-операторов. С целью реализации функционала отладки scp- программ был введен тип scp- оператора breakpoint. brk – знак точки останова, установленной на scp-оператор opj.
Следующие сообщения получает закрепленный за scp- процессом слушатель. Шаг трассировки Активировалась точка останова Произошла ошибка в процессе интерпретации scp- программы SCP-процесс породил дочерний scp-процесс SCP-процесс завершился
Help-система представляет собой консультационную программную систему по технологии разработки программного обеспечения на языке SCP
справочная подсистема по технологии проектирования программ на языке SCP; подсистема мониторинга и анализа деятельности разработчика программ; подсистема управления обучением по проектированию программ.
Базу знаний Машину обработки знаний Пользовательский интерфейс
интеллектуальный поиск запрашиваемой информации; отображение информации: о языке представления знаний, о языке программирования с ориентацией на уровень подготовки разработчика программ, об инструментальном средстве разработки программ, о методике программирования; генерация ответов на запросы пользователя, логический вывод на основании содержащейся информации в БЗ; самообучение системы (на основании запросов пользователя система генерирует ответы и формирует новые знания); анализ программных текстов пользователя и внесение предложений по улучшению их эффективности; генерация программ по запросу пользователя. 21
формальное описание языка программирования SCP, операционной семантики SCP формальное описание языков представления знаний (SCg-язык, SC-ядро, SC-язык множеств, SC-язык отношений, SC-язык числовых систем, гипермедийный SC-язык, дидактический SC- язык, логический SC-язык) формальное описание инструментальных средств проектирования программ формальное описание библиотеки IP-компонентов формальное описание методики проектирования программ: методики использования языка, инструментального средства, библиотеки ip-компонентов формальное описание методики обучения проектированию программ формальное описание самой help-системы 22
навигационно-поисковые операции операции трансляции информационных конструкций, являющихся запросами пользователя, и представление их в виде семантически эквивалентных sc-конструкций; операции, использующие логический вывод (например, вывод синтаксиса scp-оператора на основании утверждений, хранящихся в базе знаний); операции проектирования scp-программ по постановке задачи пользователя или по постановке задачи, сгенерированной самой системой; операции верификации, тестирования и оптимизации scp- программ; анализ эффективности scp-программ. 23
определение общей информации о разработчике программ; ведение постоянного мониторинга за действиями пользователя; анализ действий пользователя; определение уровня квалификации пользователя; определение и анализ ошибок. 24
управление обучением разработчика программ в соответствии с определенной методикой обучения; обеспечение помощи, соответствующей ситуации. 25
Использование help-системы позволит ускорить изучение языка программирования SCP и позволит существенно сократить сроки разработки интеллектуальных систем.
27