Введение к работе
Актуальность темы. Исследование и разработка средств структурной и функциональной спецификации программ и данных в логическом программировании имеют важное значение для задач искусственного интеллекта, связанных с обработкой структурированной информации и управлением сложно организованных систем. Подобные приложения выдвигают растущие требования к созданию сложного и высококачественного программного обеспечения, развитию новых средств программирования, приближенных к понятийному уровню человека и позволяющих описывать алгоритмы и данные в терминах, близких к математическому и алгоритмическому содержанию задачи.
Одной из наиболее удачных реализаций идеи логического программирования является язык Пролог. Однако отсутствие полноценного функционального аппарата и недостаточная выразительность и гибкость средств спецификации Пролога в задачах символьного программирования постоянно стимулирует появление его модификаций, нередко подразумевающих частичный отказ от первоначальных идей языка. Следовательно, представляется важной и актуальной задача разработки средств спецификации, удовлетворяющих современным требованиям приложений, и создания единой языковой среды логического программирования, включающей указанные средства и дополнительные возможности функционального программирования, сохраняющей в то же время все основные черты Пролога.
Цель работы. Исследование и разработка расширенных средств структурной и функциональной спецификации программ и данных в логическом программировании и их интеграция в синтаксическую среду языка Пролог, а также экспериментальная реализация системы программирования, поддерживающей разработанные автором языковые средства.
Методы исследования. Работа основана на анализе и обобщении методов спецификации образцов в языках, принадлежащих различным парадигмам программирования, включая логический, функциональный и императивный стили программирования. При построении системы понятий и в процессе создания экспериментальной реализации предлагаемой иерархии языковых расширений использовались понятия и методы математической логики, спецификации программ, формальных грамматик и языков.
Научная новизна. В диссертации разработаны средства спецификации рекурсивными образцами с подбираемыми параметрами, в том числе средства функциональных спецификаций, предназначенные для применения в среде логического программирования; предложены алгоритмы функционального сопоставления и ограниченной унификации последовательностей; разработан метод интеграции рекурсивных образцов и функций в синтаксическую среду языка Пролог в виде языка (фактически, иерархии языков) логического программирования Проф (ПРОлог с функциями). Проведено сравнение выразительной силы похученного языка с другими языками логического и функционального программирования.
Проведенные исследования позволили создать экспериментальную реализацию системы программирования на языке Проф, демонстрирующую применение разработанных автором методов структурной и функциональной спецификации на модельных задачах символьного программирования.
Практическая ценность. Предложенные языковые расширения могут использоваться как инструментальное средство для создания развитых систем исполняемых спецификаций в задачах символьного программирования, для быстрого прототипирования программного обеспечения, как гибкое средство описания достаточно эффективного по времени работы программного кода в таких областях, как архитектура компьютеров, экспериментальные системы управления базами данных и знаний, искусственный интеллект (включая понимание естественных языков, автоматическое доказательство теорем, построение экспертных систем и др.), а также при обучении основам логического и символьного программирования.
Апробация работы. Основные результаты работы докладывались на всесоюзном совещании "Программное обеспечение новой информационной технологии" (Калинин, 1989), на конференциях "Прикладная логика" (Новосибирск, 1992) и "Новые информационные технологии в обучении математике в школе и вузе" (Петрозаводск, 1992), на международной конференции "Математика, компьютер, управление и инвестиции" (Москва, 1993), на философской конференции "Научная и техническая теория: закономерность и интерпретация" (С.-Петербург, 1993), на 10й международной конференции по логическому программированию (Будапешт, Венгрия, 1993), на международной конференции по компьютерным системам и прикладной математике (С.-Петербург, 1993), на международной конференции "Актуальные проблемы фундаментальных наук" (Москва,
1994), на международной конференции по математическим методам и средствам в компьютерном моделировании (С.-Петербург, 1994), на 2й международной конференции "Математические алгоритмы" (К. Новгород, 1995), были представлены на международной конференции по автоматам и формальным языкам (Шалготарьяк, Венгрия, 1993), а также на семинарах кафедры математического обеспечения ЭВМ С.-Петербургского университета. Язык Проф и его средства спецификации в течение двух лет изучались на учебном семинаре студентами кафедры математического обеспечения математико-мехакического факультета С.-Петербургского университета.
Работа выполнена при поддержке Р48И, грант #94-01-00б38-а.
Публикации. По теме диссертации опубликовано 11 работ.
Структура и объем работы. Диссертация состоит из введения, четырех глав, списка литературы из 92 наименований и приложения. Объем основной части работы составляет 145 машинописных листов, вместе с приложением - 201 лист.