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

доктора физико-математических наук
Москвитин, Анатолий Алексеевич
город
Новосибирск
год
2004
специальность ВАК РФ
05.13.11
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Технология построения языков спецификаций классов задач, ориентированных на пользователей»

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

На правах рукописи УДК: 519:517.12

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

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

05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени доктора физико-математических наук

Красноярск - 2004

Работа выполнена в лаборатории математической логики Института математики имени С.Л. Соболева Сибирского отделения Российской академии наук

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

член-корреспондент РАН

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

профессор Шайдуров Владимир Викторович

доктор физико-математических наук, профессор Марчук Александр Гурьевич

доктор физико-математических наук, профессор Перязев Николай Алексеевич

Ведущая организация - Объединенный институт ядерных исследований

(г. Дубна)

Защита состоится 4 ноября 2004 г. в Л.& часов на заседании специализированного совета Д 212.098.03 при Красноярском государственном техническом университете по адресу: 660074, г. Красноярск ул. Киренского, 26

С диссертацией можно ознакомиться в библиотеке КГТУ.

Автореферат разослан « р /Ь » (ЬйЛ^о^ОЛЛ 2004 г.

Ученый секретарь диссертационного совета к.т.н.

Е.А. Вейсов

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

Актуальность, цель и задачи исследования. Традиционная схема решения задач на компьютерах была ориентирована преимущественно на ЭВМ. коллективного пользования. Главным специалистом здесь являлся программист, который ставил и решал задачу за пользователя. Поэтому основное внимание уделялось разработке и совершенствованию языков спецификаций программ. При этом общение с компьютером осуществлялось на языках императивного типа. В этом случае пользователь (он же заказчик) оставался фактическизаложником программистов.

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

Что .нужно сделать, чтобы удовлетворить эту потребность?

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

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

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

В частности, чтобы осуществить классификацию задач на доступные идеальному пользователю и доступные реальному пользователю необходи-

1РОС. НАЦИОНАЛЬНАЯ библиотека

СПетсрвург

ОЭ -,

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

Следующая, третья, проблема такова. Как известно, процесс решения задачи на компьютере начинается с ее точной постановки/Точная постановка задачи возможна лишь при ее правильной спецификации. Спецификация же задачи предполагает использование точного и достаточно выразительного языка. Точность языка обеспечивается его формальностью, выразительность - достаточно богатым набором синтаксических средств и точной семантикой такого языка. Для решения задач на компьютере, наиболее адекватным языком, отвечающим сформулированным требованиям, может служить, например; язык математической логики, однако более выразительного для пользователя, чем язык предметной области трудно определить. Возникает проблема - разработать методы и средства, позволяющие согласовать формальные и неформальные основы языкового интерфейса пользователя.

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

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

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

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

Методологическую основу и теоретическую базу исследований составляют работы Гончарова С.С., Ершова Ю.Л., Самохвапова К.Ф и Свири-денко Д.И.: 0) адаптированные к анализу понятия и понятности задачи для пользователя, проводимому в рамках нового подхода к методологии математики [3, 5]; (и) принципа относительно-конструктивных систем [6], адаптированному к языкам спецификаций задач [9]; Ом) развитие основных исследований по логическому и семантическому программированию, в направлении их практической реализации [2, 4] для массового пользователя.

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

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

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

пользователя, согласованных с его интеллектуальными потребностями, представимые как измеримые характеристики и приведена процедура их измерения. Ресурс (данного человека) р относительно (данной аксиоматической системы) 7есть тройка ге$(р,Т) =(т1(р,Т), т2(р,Т), тз)(р,Т)) натуральных

таких, что:

• гп1(р,Т) — наибольшая длина доказательств в 7, все еще имеющих достаточно высокую (заранее фиксированную) балльную оценку степени убедительности для данного человека р;

• тг(р,Т) — наибольшая длина последовательностей символов алфавита языка системы 7, все еще имеющих достаточно высокую (заранее фиксированную) балльную оценку (субъективной уверенности р в) безошибочной распознаваемости их р как формул (или не формул) языка системы;

тзф.Т) — таких, что и тгф.Т), но применительно к термам. Здесь Т описание предметной области пользователя.

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

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

Основные результаты, выносимые на защиту.

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

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

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

4. Архитектура инструментального комплекса в технологии языков спецификаций классов задач, ориентированных на пользователей, базирующаяся на понятии В-модуля и Управляющего Массива (УМ).

Апробация работы. Результаты диссертации докладывались на ряде всесоюзных и международных конференций: в гг. Москве, Новосибирске, Тамбове, Томске, Кемерово, в республике Казахстан; а также на научных семинарах в гг. Новосибирске, Томске, Кемерово, Красноярске, Иркутске, Москве, Дубне.

Публикации. Результаты диссертации опубликованы в 26 работах автора, в том числе одной монографии. Основные результаты исследований опубликованы в журналах реестра ВАК. Все основные результаты получены автором самостоятельно.

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

СОДЕРЖАНИЕ РАБОТЫ

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

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

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

В процессе решения задачи на компьютере можно выделить следующие этапы: 1) описание и корректная постановка задачи в терминах предметной области; 2) спецификация задачи на одном из формальных языков, 3) выбор наиболее адекватного, конструктивного и оптимального (в некотором смысле) алгоритма ее решения и его теоретическое обоснование; 4) кодирование алгоритма и его отладка; 5) решение задачи и анализ результатов.

В рассматриваемом «подходе от задач» самым критичным для пользователя, является этап постановки и спецификации задачи. Для программиста же, критичным является выбор эффективного и оптимального (в некотором смысле) алгоритма и языка программирования, а также перевод задачи с языка спецификации, понятного пользователю, на язык программирования, «понятного» компьютеру. Иначе говоря, переход от описания того, ЧТО надо делать к тому, КАК надо делать (КАК решать задачу на компьютере).

Многие проблемы перехода от алгоритмов к программам (этап кодирования) в настоящее время успешно решены созданием алгоритмических языков высокого уровня, а также технологий программирования и инструментальных комплексов (например, HIPO-, R-, л-, CASE-, Rational Rose и др.). Основной особенностью этих технологий является отделение этапа проектирования программного обеспечения от этапов кодирования и отладки, а это неминуемо ведет к решению проблемы взаимопонимания программистов различной квалификации (проектировщиков систем, системных и прикладных программистов, тестеров и др.). Заметим только, что главную роль при этом играет программист, фактически решающий за пользователя его задачу. Отсюда и все проблемы.

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

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

Развитие логического программирования возродило и другие идеи автоматизации построения программ, заимствованные из аппарата математической логики. Весьма популярным являются следующие подходы: (О «извлечения программ из конструктивных доказательств» - концептуальное программирование Тыугу и система «ПРИЗ»; (И) функциональное программирование, особенно та его ветвь, которая допускает функционалы высоких типов. Здесь уже как бы стирается грань между дескриптивным и императивным. Правда, требуется, чтобы спецификация задачи задавалась в виде функциональных отношений; (ш) «а бстрактные типы данных» (АТД); (м) попытки, для некоторых классов задач, совместить лучшие реализационные аспекты функционального и логического программирования (см., например, проект ФЛЭНГ). С методологической точки зрения, АТД - это, пожалуй, наиболее общая логическая концепция программирования, позволяющая посмотреть на все выше указанные логические направления с единых позиций. Практически же с понятием АТД связывается, как правило, лишь эквивалентный алгебраический подход. Причина здесь кроется, видимо в отсутствии универсальных, четких, хорошо интерпретируемых критериев (желательно, конечно, синтаксических) эффективной реализуемости абстрактных типов данных. Как показывает опыт теории конструктивных моделей, такие критерии действительно трудно найти, если придерживаться только «аксиоматического видения» формализуемых структур данных. Но в математической логике, помимо аксиоматического, известны другие способы описания проблемных областей, например, способ элементарной определимости, позволяющий строить описания в терминах уже хорошо изученной, богатой теории. В отличие от аксиоматического подхода описания моделей здесь используется элементарная определимость одной модели в другой [4]. Именно этот способ и был положен в основу нового стиля программирования, получившего название Е-программирования [2]. Чтобы данный способ спецификации задач мог стать основой некоторой модели вычислений, необходимо, во-первых, теоретико-модельную семантику, по Тарскому, превратить в алгоритм вычисления истинности формул на модели и, во-вторых, научиться автоматически извлекать те значения переменных, при которых

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

Таким образом, можно отметить следующие основные черты S-программирования Каким-то образом, явно не оговариваемым, выделяется конструктивная модель предметной области. В ней строятся такие предложения, истинность которых на этой модели можно конструктивно вычислить. Эти предложения и являются задачами в 2--программировании.Для построения и проверки истинности таких предложений разработан специальный язык S-выражений, по выделенным предложениям которого, легко строится программа, вычисляющая истинность на конструктивной модели.

Однако заметим, что вне пределов рассмотрения 1-программирования остался один из самых важных вопросов для конечного пользователя - вопрос о способах и возможностях построения самой конструктивной моде-гш предметной области для рассматриваемого класса задач. Кто? и самое главное, КАКдолжен строить эту самую конструктивную модель (сам пользователь? или же специалист-математик?) остается неясным. Отсюда и возникла постановка задачи в теме исследований.

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

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

полном соответствии с их интеллектуальными ресурсами и интеллектуальными запросами.

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

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

Если специалиста в области информатики спросить, каков синтаксис данного (формального) исчисления, то он не проявит никакой растерянности: он знает, что ему нужно сделать, чтобы удовлетворительно ответить на этот вопрос. Точно так же обстоит дело и с вопросом, какова возможная семантика данного исчисления. Но если спросить его, какова возможная прагматика данного исчисления, ситуация резко меняется: за этим вопросом нынешний квалифицированный специалист по информатике не видит той массы точных разработок (определений, методов и результатов), которая обеспечивала ему «почву под ногами» в отношении первых двух вопросов.

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

Алгебраическую систему, образуемую упомянутым множеством задач и упомянутыми операциями и отношениями на нём, естественно назвать «полем» задач рассматриваемого исчисления, а элементарную теорию этой алгебраической системы — соответствующим (указанному «полю») прагматическим описанием этого исчисления.

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

Практически, всегда бывает достаточным владение тем или иным подходящим фрагментом прагматического описания исходно заданного исчисления. Так что актуальна проблема: чем руководствоваться при выборе подобных фрагментов?

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

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

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

Интеллектуальные ресурсы. Когда пользователь обращается к компьютеру, то он либо знает, чего он хочет, либо думает, что знает это. В первом случае он, как минимум, понимает свою задачу, во втором - ему вообще не стоит иметь дело с вычислительной машиной. Стало быть, всегда можно основываться на предположении, что подвергаться компьютерной обработке будут лишь те задачи, которые понятны заказчику. Чем же определяется понятность для человека той или иной задачи? Самый общий ответ таков: данный человек понимает беспокоящую его задачу, а не просто обеспокоен ею, если и только если он в состоянии распознать ситуации, когда задача решена от всех прочих ситуаций.

Первое затруднение. Для задач на доказательства решением является некоторое доказательное рассуждение. Однако, если длина рассуждения достаточно велика, то человек может не усмотреть в нем никакой доказа-тельности(не поймет его) именно потому, что оно чрезмерно громоздко.

При оценке границ допустимости длин убедительных (понятных) доказательств колоссальным числом (например, 10100) немедленно наталкиваются на специфическое затруднение, известное как" парадокс кучи". В идеализированном варианте это затруднение выглядит так. Для данного человека р, если язык, аксиомы и правила вывода математической системы Г, в рамках которой он рассуждает, выбраны разумно, то для некоторого фиксированного числа по« 10100:

(I) доказательства длины не более по (символов) убедительны; (и) для любого п, если доказательства длины не более п убедительны, то доказательства длины не более п+1 также убедительны;

(III) найдется (можно указать) такое натуральное число М > По (например, М=10100), что доказательства длины £ М заведомо не убедительны.

Если (0 рассматривать как базис математической индукции, а (II) - как индукционный шаг, то (I), (II) противоречат (III). Между тем все три пункта ОНШ) выглядят интуитивно несомненными. В этом парадокс кучи.

Есть два пути для попыток его преодоления Во-первых, можно попытаться показать, что на самом деле не все три утверждения ОМш) верны, хотя кажутся на первый взгляд, несомненно, таковыми. Во-вторых, можно подвергнуть сомнению применимость обычных средств рассуждений (например, принципа математической индукции) к "существенно размытым" свойствам (например, к свойству доказательства "быть убедительным"). Некоторые авторы предпочитают второй путь, усматривая в "парадоксе кучи" мотив для радикальной перестройки привычного концептуального аппарата ("ультраинтуиционизм" Есенина-Вольпина, "полумножества" Вопенки, различные "размытые логики" Заде и т.д.). Автор придерживаются более консервативных взглядов, развивая первый путь. Начало этому пути положил М. Даммит [8], который, опираясь на тщательный анализ различных вариантов "парадокса кучи" (он называет его "парадоксом Вана"), показал, что индукционный шаг (II) не верен, и попутно объяснил, почему все же кажется, что это не так.

Развивая аргументацию Даммита, можно указать экспериментальную процедуру [10] установления зависимости степени убедительности (в некоторой шкале баллов) доказательств от их длины для испытуемого человека, когда он рассуждает в рамках фиксированной аксиоматической системы. Аналогичные процедуры можно указать также для установления зависимости степени безошибочного распознавания испытуемым человеком формул и термов данной аксиоматической системы от их длины (подробнее об этом

смотри далее). Поэтому, как уже было отмечено выше, можно оценивать интеллектуальный ресурс данного человека р относительно данной аксиоматической системы Т [9] тройкой геэф, Т)~ (т,(р,Т), т2(р,Т). тз(р,Т)) натуральных чисел ггц(р,7), т2(р,Т), т3(р,Т) таких, что:

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

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

• т3(р, 7) - то же, что и т2(р, Т), но применительно к термам.

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

Интеллектуальные запросы идеального пользователя Мы исходим из предположения, что каждый идеальный пользователь может быть полностью представлен (в результате специальной процедуры опроса) совокупностью тех сведений об интересующей его предметной области, которыми он исходно располагает или считает, что располагает. Т.е. идеальный пользователь - это какая-то первопорядксвая теория Т, одна из моделей которой (не важно, какая именно) - подразумеваемая предметная область В этом случае "задача для пользователя* - это "задача для произвольной модели теории Т, или, кратко, "Г-задача".

Каждая такая задача отождествляется с произвольным алгоритмом разбиения множества всех доказательств в Г на два подмножества: подмноже-ство доказательств, объявляемых решением рассматриваемой Г-задачи, и

подмножество остальных доказательств. Если первое подмножество не пусто - задача имеет решение. Если пусто - то не имеет решения. Всякое описание любого алгоритма такого разбиения - формулировка Г-задачи.

На практике теории Г могут иметь различные: сигнатуры, аксиомы и правила вывода. Но для всякой такой теории 7 хотелось бы уметь корректно, конструктивно и удобным образом рассуждать о любых формульных 7-задачах, имеющих или не имеющих решения в 7. Обеспечить такую возможность, значит, обеспечить учет интеллектуальных запросов идеального пользователя. Будем считать, что рассуждать удобным образом о Т-задачах - значит рассуждать о них в языке, который, по крайней мере, как-то тесно связан с языком теории 7, в частности, в языке, имеющем ту же сигнатуру и тот же синтаксис, что и язык теории Г.

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

Сказанному соответствуют следующие определения и теоремы [9].

Пусть L — язык первого порядка произвольной эффективно разрешимой сипнатуры ст. Логические символы L: &, v, V, 3,1 и, быть может, «равенство» «; 1 — атомное высказывание «ложно». Пусть Т— исчисление в языке L. Всякое такое исчисление [9] будем иногда называть первопорядковым независимо от того, каковы его аксиомы и правила вывода. Далее, исчисление 7 называется:

• формальным, если и только если множество D(7) всех выводов в Т эффективно разрешимо;

• противоречивым, если Thm(7) = F(L), где F(L) — множество всех формул языка L, Thm(T) — множество всех теорем в Г;

• непротиворечивым, если Thm(7) * F(L);

• сильно непротиворечивым, если 1 g Thm(T).

Для данного Т и данной формулы <р из F(L) пусть D(7", гр) обозначает множество такое, что D(7", <р) = {d | d € D(7) и d имеет последней своей фор-

мулой формулу <р). Обозначим через F°(L) множество Bœx конечных последовательностей формул языка L. Очевидно, всегда D(7, ç) q D(7) с F°(L). Очевидно также, что, если 7 формально, то D(7, <р) всегда эффективно разрешимо. В дальнейшем предполагается, что 7 формально.

Для 7 и любой формулы (р из F(L) пара <р = (D(T), D(7, <р)) называется формульной Т-задачей. Если <р= (D(7), D{7", ç)) — формульная 7-задача, то <р называется формулировкой 7-задачи <р, а всякий вывод d е D(7, ç) — решением 7-задачи <р. Кроме того, для данного исчисления 7 множество Та(7) = {(D(7), D(7, ç>)) I q> e F(L)} называется множеством формульных Т-задач.

Тем самым, описан класс задач, формулировки которых возможны «внутри» произвольно заданной системы. Более того, если задано какое-то формальное исчисление 7 в языке L, то всякая формула этого языка, каково бы ни было её первоначальное назначение, приобретает дополнительный статус—кодировать (формулировать) некоторую формульную 7-задачу.

Определение 1. Для данных L и 7 тройка (L, 7, Та(7)) называется языком формулировок (формульных) Т-задач.

При этом, если (L, 7. Та(7)) — язык формулировок 7-задач, то его синтаксисом считается синтаксис языка L, а его семантикой — пара (7, Та(7)). Впредь язык формулировок формульных 7-задач будем обозначать через F{L, Т). Очевидно, на fi[L, 7) можно смотреть как на некоторое истолкование (представленное парой (7, Та(7))) языка L.

Теперь придадим каждой формуле <р языка L ещё один дополнительный статус. А именно, чтобы <р кодировала не только соответствующую формульную 7-задачу <р (любая задача <р не истин на и не ложна), но и некоторое суждение (истинное или ложное) о некоторых формульных 7-задачах (вообще говоря, ОТЛ1ННЫХ от <р).

Для этого условимся, что если <р имеет вид:

1. атомарной формулы L, то 9 кодирует суждение «формульная 7-задача ф имеет решение»;

2. (ф1 & фг), то ф кодирует суждение «формульная 7-задача <pi имеет решение и формульная 7-задача <рг имеет решение»;

3. (ф1 V tpi), то <р кодирует суждение «формульная 7-задача <р\ имеет решение или формульная 7-задача <pi имеет решение»;

« (а ß), то ç кодирует суждение «существует алгоритм А^ из F°(L) в F°(L) такой, что если х— решение формульной 7-задачи а, то А^ определён на х и (х) — решение формульной 7-задачи /?»;

s Vxor, то <p кодирует суждение «существует алгоритм Av*„ из множества всех термов языка L в F°(L) такой, что если t—произвольный замкнутый терм языка L, то Vxct (t) — решение формульной Т-задачи a (f)»;

6 Эха, то <р кодирует суждение «для некоторого замкнутого терма t языка L формульная 7-задача a(f) имеет решение».

Выделим среди всех формул языка L те и только те, которые при указанном истолковании кодируют (выражают) именно истинные суждения и, следовательно, говорят нечто о взаимосвязях 7-задач внутри Т. Каждую такую формулу назовём задачно-истинной относительно Т, или Т-истинной. Иными словами, примем следующее

Определение 2. Пусть С(7) — множество формул языка L такое, что если <р имеет вид:.

1. атомарной формулы, то <р е С(7) тогда и только тогда, когда q> е Thm(7);

2. {<р\ & 0г), то <р е' С(7) тогда и только тогда, когда <р\ е Thm(7) и <Р2 е Thm(7);

3. (pi v ç2), то <р е С(7) тогда и только тогда, когда <рл е Thm{7) или <Р2 e Thm(7);

4. (а -» /¡), то ç е С(Т) тогда и только тогда, когда существует эффективное (вообще говоря, частичное) отображение A^ из F°(L) в F°(L) такое, что если х— вывод в Г формулы a ( х е D(T, a) ), то определено на х и

(х) — вывод в Тформулы (х) е D(T, р) );

5. Vxar, то, то <р е С(7) тогда и только тогда, когда существует эффективное (вообще говоря, частичное) отображение AVXa из множества всех термов языка L в F°(L) такое, что если t - произвольный замкнутый терм языка L, то Дух« определено на f и AVXa (Q - вывод в Г формулы а( 0 (AVXa (Q е D(7", a(f))):

6. 3х«, то <г> e С(7) тогда и только тогда, когда a(f) е Thm(T) для некоторого замкнутого терма f языка L.

Тогда формула ç е F(L) задачно-истинна относительно Т (Т-истинна), если и только если <р е С(7). Если <р е F(L) не Г-истинна, то <р называется Т-ложной. Очевидно, это определение позволяет рассматривать задачно-истинные относительно Т формулы в L как коды определённых суждений о системе формальных выводов в Т (как коды суждений о Г-задачах). В этом отношении наше определение походит на обычные конструктивные интерпретации формул из L. Ибо и при обычных конструктивных истолкованиях первопорядковых формул эти формулы, в конечном итоге, высказываются о

(относятся к) некой (неявно подразумеваемой или указанной явно, формализованной частично или формализованной с достаточной полнотой) системе средств убеждения («канонические доказательства», «реализации» и т.д.). И хотя, на первый взгляд может даже показаться, что оно задаёт (в терминах выводимости в 7) множество конструктивно истинных формул языка I. обычным индуктизным путём. Но это не так.

Определение 2 не является индуктивным (хотя внешне походит на таковое). Если бы оно было индуктивным, то, например, в «и» вместо ««¡>1 е 171111(7) и е ТЬт(7)» должно было бы стоять «(¡я € С(7) и (рг е С(7)». Как следствие, определение 2 нарушает редукцию конструктивных значений сложных формул к конструктивным значениям их конституентов.

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

Определение 3. Пусть 7— формальное исчисление в первопорядковом языке 1-. Тогда тройка (Ц 7. С(7)) называется языком спецификаций (формульных) Т-задач.

Как и в случае определения 1, если (Ц 7, С(7)) — язык спецификаций 7-задач, то его синтаксисом считается синтаксис языка I., а его семантикой — пара (7, С(7)). Будем обозначать через 5(Ц 7) язык спецификаций 7-задач. Конечно, на 5(1-, 7) также можно смотреть как на некоторое истолкование (представленное парой (7, С(7))) языка 1_

Природу языка спецификаций Т-задач, проясняют некоторые дополнительные определения и теоремы. Имеет место очевидная

Теорема 1. Если формальное исчисление 7 в языке I. противоречиво, то любая формула в I. (любая формула в 7)) Т-истинна.

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

Определение 5. Пусть 7| и 7г — произвольные формальные исчисления в I.. Будем говорить, что Тг больше Ту (писать 71 5 7г), если и только если все аксиомы 71 являются аксиомами 7г и все правила вывода 71 являются правилами вывода 7г.

Отношение «больше» не следует путать с отношением «дедуктивно сильнее». В самом деле, если 71 £ 7г, то ТЬт(7|) е ТЬт(7г), однако обратное, вообще говоря не верно: легко указать примеры исчислений 7| и Тг таких, что ТЬт(71) е ТЬт(72), но не 71 <Тг.

Теорема 2. Для некоторого языка L существуют такие исчисления Ту и Тг, принадлежащие классу ъon (в L), что Tt s Тг, но не L({7i}) с Ц{Г2}) и не 1({Т2})<=Ц{Т,}).

Словом, если пользователь Тг знает больше истин о подразумеваемой предметной области, чем пользователь Ti, это ещё не означает, что Т2 знает больше истин и о формульных задачах, относящихся к подразумеваемой предметной области, чем 7i.

Несколько слов о «представлениях» г-логик.

Определение 6. Если L(z) — r-логика и К е Цг), то К называется фрагментом т-логики L(j).

Определение 7. Если формальное исчисление Т в L таково, что множество его теорем является фрагментом задачной лотки (является задачной логикой) класса г, то Т называется (тотальным) формальным представлением т-логики.

Теперь несколько слов о «задачных» системах.

Определение 8. Пусть формальное исчисление 7 в L —репрезентация некоторого идеального пользователя. Если при этом Т является формальным представлением {7}-логики, то Т называется автозадачной (или просто задачной) системой этого пользователя Заданная система Т точна, если Т

— тотальное формальное гредставпение {7}-логики.

Из сказанного вытекает, что для любого формального исчисления Т {7}-логика совпадает с С(7)- Поэтому определение 8 говорит, в частности, о том, что сведения пользователя об интересующей его предметной области могут одновременно рассматриваться как некоторые истинные утверждения о задачах для него, если эти сведения Т являются задачной системой. Эти сведения могут рассматриваться как все истинные утверждения об упомянутых задачах, если Т—точная заданная система.

Если формальное исчисление Т не является задачной системой, то Г среди своих теорем содержит ложное утверждение о каких-то Т-задачах

Так, исчисление СРС{L) (классическое исчисление предикатов в языке L)

— не задачная система, а исчисление HPC{L) (исчисление предикатов Гей-тинга в языке L)—задачная система.

Если условиться, что аксиома — это правило вывода с пустым множеством посылок, и что допустимость в Т правил вывода понимается обычным образом. то для точных задачных систем справедлива следующая-

Теорема 3. Если Т (в L) — точная задачная система, то в Т допустимы все аксиомы и правила вывода минимального исчисл ения высказываний. Если, дополнительно, 7 — сильно непротиворечивое исчисление, то в 7 допустимы все аксиомы и правила вывода интуиционистского исчисления высказываний Гэйтинга.

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

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

Пусть, по-прежнему, L — язык первого порядка (сигнатуры а), 7 исчисление в L. Пусть res — тройка (mi, пь, т$ натуральных чисел т\,т2,т$>0. Всякую формулу языка L назовём res-формулой (этого языка), если её запись в L содержит не более т2 вхождений символов (т.е. если длина формулы не более mz). Всякий терм языка L назовём res-термом (этого языка), если его запись в L содержит не более /т?з вхождений символов (т.е. если его длина не более /77з). Всякое доказательство в 7 назовём res-доказательством (в 7), если его длина не более mi.

Исчисление 7 в L называется:

• res-формальным, если множество Thm(7, res) его res-теорем (оконечных res-формул res-доказательств в 7) эффективно перечислимо;

• res-противорвчивым, если Thm(7, res) = F(L, res), где F(L, res) — множество всех res-формул языка L;

• гез-непротиворечивым, если Thm(7, res) с. F(L, res)-,

• ■ сильно res-непротиворечивым, если ± е Thm(7, res).

Ясно, что если в — конечная сигнатура, то любое формальное 7 в L — res-формальное исчисление; более того, в этом случае множества F(L, res), Thm(7, res) и множество Teim(L, res) всех лея-термов в L всегда конечны.

Параллельно определению 2 введем

Определение 9. Пусть С(7, res) — множество формул языка L такое, что если, р имеет вед:

1. атомарной формулыL, то ре С(7, res) тогда и только тогда, когда <р е F(L, res) и </> е Thm(7, res);

2. (pi & (рг), то q> е С(7, res) тогда и только тогда, когда <р е F(L, res), <р\ е Thm(7, res) и <pz е Thm(7, res);

3. (<p\ v <р2), то <р 6 С(7, res) тогда и только тогда, когда <р е F(L, res) и выполняется условие: <р\ е Thm(7, res) или qn е Thm(7, res);

4. (а -+/?), то ç> е С(Т, res) тогда и только тогда, когда ч> е F(L, res) и существует эффективное (вообще говоря, частичное) отображение из F°(L) в F°(L) такое, что если х—res-доказательство в 7 формулы а ( х е D(7", а) ), то A^ß определено на х и (х) — res-доказательство в Г формулы Д

5. Vxa, то <р б С(7,res) тогда и только тогда, когда: ре F(L,res); существует эффективное (вообще говоря, частичное) отображение Avxa из множества всех термов языка L в F°(L) такое, что если t — произвольный замкнутый res-терм языка L и a(Q — res-формула языка L, то Avx„ определено на t и AVXa (f) — res-доказательство в 7 формулы а(0;

6. Зха, торе С(7, res) тогда и только тогда, когда <ре F(L, res) и а{0 е Thm(7, res) для некоторого замкнутого res-терма t языка L

Тогда формула <р е F(L, res) задачно истинна относительно (7, res) ((T,res)-ucmuHHa), если и только если <р е С(7, res). Если <р е F(L, res) и не 7-истинна, то <р называется Т-ложной.

Подобно определению 2, определение 9 говорит о том, что мы можем рассматривать res-формулы языка L как коды суждений о формульных 7-задачах — однако только таких, которые доступны пониманию реального пользователя с интеллектуальным ресурсом res.

Определение 10. Пусть 7— res-формальнов исчисление в языке L тогда тройка (L, 7, С(7, res)) называется языком спецификаций (формульных) Т-задач для (реального пользователя) (Г,res), или, коротко, языком res-спецификаций Т-задач.

Язык res-спецификаций 7-задач я буду обозначать через S(L,T,res). Конечно, на S(L,7,res) можно смотреть, как на некоторое истолкование (представленное парой (7, С(7, res))) языка L.

Язык S(L,7/es) называется рекурсивно перечислимым, рекурсивным или конечным, если соответственно рекурсивно перечислимо, рекурсивно или конечно множество С(7, res).

Теорема 4. Если сигнатура a языка L конечна. То для любого res-формального исчисления Telязык5(L, 7, res)конечен.

Эта теорема очевидна. Более того, очевиден универсальный переборный алгоритм, который по любому res-формальному исчислению 7 в языке L конечной сигнатуры а строит соответствующее множество С(7, res).

Таким образом,- имеется принципиальная возможность учесть интеллектуальные запросы реального пользователя во всех практически значимых случаях, пользуясь только определением 9, чего нельзя было сказать применительно к запросам идеального пользователя. Можно получить (и это фактически сделано) аналоги тех определений и утверждений, которые приведены в характеристике природы'языка Э(1-, 7).

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

В третьей главе приводятся процедуры и алгоритмы оценки интеллектуальных ресурсов пользователей [10], а также рассматриваются синтаксические особенности организации интерфейса с пользователем [11], при измерении его интеллектуальных ресурсов и при формулировке задачи пользователем в терминах его предметной области.

Напомним, что измерить ресурс пользователя р (относительно Т) означает: (¡) исследовать вопрос о влиянии длины логических выводов в Т на степень убедительности их для р; (и) исследовать вопрос о влиянии длины последовательное™ символов на уверенность признания пользователем р этой последовательности формулой (или не формулой) языка системы 7; (¡¡¡) исследовать вопрос о влиянии длины последовательности символов на уверенность признания пользователем р этой последовательности термом (или не термом) языка системы Т.

Измерение тз(р, 7). Пусть L — язык (первого порядка с равенством) системы Т; А1 — алфавит Ц' <т — сигнатура Предполагается, что сигнатура а конечна. Пусть, далее, х, у, г, Х1, у1, ... — переменные Для слов (т.е. для конечных, включая пустую, последовательностей символов из) алфавита А1; а, Ь, с, а1, Ь1, С1, ... — константы для них же. Наконец, для любого слова х; алфавита А1 пусть |х| обозначает длину этого слова.

Как этап установления тз(р,1) нас пока интересует возможность измерения именно субъективной уверенности человека в правильности признания им слова х; термом или не термом, а не возможность измерения самой по себе правипьности такого признания: речь ведь вообще идет (см.- [14]) о ресурсах понимания человеком своих будущих действий, а не о ресурсах осуществления (сознательного или нет) правильных действий.

Как можно измерить субъективную уверенность человека в правильности признания им слова х термом или не термом?

Распознавая два произвольных слова а и Ь, человек, скажем р, может путем самонаблюдения установить, что: либо 1) уверенность, связанная с распознаванием а, заметно превосходит уверенность, связанную с распознаванием Ь, либо 2) уверенность, связанная с распознаванием Ь, превосходит уверенность, связанную с распознаванием а; либо 3) не то и не другое. Условимся первый случай обозначать фразой "(слово) а терм-больше (слова) Ь для (человека) р" второй — фразой "(слово) а терм-меньше (слова) Ь для (человека) р," третий — фразой "(слово) а терм-равно (слову) Ь для (человека) р" или фразой "(слово) Ь терм-равно (слову) а для (человека) р".

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

последовательность (а1,а2,аз.....ат) из т слов a1.a2.a3.....ат (в алфавите А1)

такая, что а\ терм-больше слова аг Для р, слово аг терм-больше слова аз для р, слово аз терм-больше... и т.д. При некоторых разумных предположениях это можно сделать так, чтобы всякое другое слово х оказалось либо терм-равным (для р) одновременно только двум смежным словам а и из ряда a1.a2.a3,... ,ат, либо терм-меньшим (для р) любого слова для этого ряда. Такую последовательность слов будем называть терм-калибровкой (для р) и

обозначать через ТСРа: ТСРа = (а1,а2,аз,...,ат). Каждое слово а, \ = 1.....т, из

последовательности ТСРа будем называть ¡-м терм-калибром (для р).

Отыскав терм-калибровку 7СР<Г можно далее использовать ее для измерения субъективной уверенности человека в правильности признания им слова х термом или не термом. Для этого нужно: а) установить, терм-равно ли слово х одновременно каким-нибудь двум смежным терм-калибрам ai и а,*1? Ь) если нет, то объявить, что субъективная уверенность р в правильности признания им слова х термом или не термом меньше т баллов; в) если да. то объявить, что субъективная уверенность р в правильности признания им слова х термом или не термом равна / баллам. При этом считается, что чем меньше уверенность, тем больше отвечающий ей балл.

Для этого применяется, "метод наименьших изменений", используемый в психофизических исследованиях (см., например, [7, с. 210-223]).

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

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

этого раздражения, измеряемой в абсолютной шкале, — длину |х| слова х. Под ощущением, вызываемым стимулом раздражения х, понимается теперь субъективно воспринимаемое испытуемым человеком чувство некоторой (быть может, очень малой) уверенности, которой сопровождается акт распознавания данным человеком слова х как терма или не терма. Если уверенность, распознать х, принимается за данное ощущение, то уверенность, распознать у, мы считаем заметно отличным ощущением от данного, если и только если имеет место —.Т1(х,у); и мы считаем ее едва заметно отличным ощущением отданного, если и только если имеет место -1Т1(х,у), и для всякого слова 2, длина |г| которого является промежуточной между длинами |х| и |у|, имеет место Т1(х,г). Аналогично будем понимать и смысл заявления, что Г|(|х|) обозначает верхний пункт равенства в |х|, а Д(|х|) обозначает верхний разностный порог (в |х[).

Теперь простейшая реализация искомой процедуры выглядит так.

Этап 1. В качестве исходного терм-калибра а1 для р берем пустое слово (т.е., слово нулевой длины).

Этап 2. Для а1 методом минимальных изменений определяем верхний пункт равенства И(|Эл|) в |а1|; берем произвольное слово в алфавите А1 длины И(|а1|); объявляем это слово вторым терм-калибром а & для р.

Этап 3. Для слова гг методом- минимальных изменений определяем верхний пункт равенства Ь(Ь(|а)])) в 1л(|а-»1>; произвольное слово в алфавите А1 длины Ь(И(|Э1|)) объявляем третьим терм-калибром аз для р.

Этап 4. Для слова аз методом минимальных изменений определяем верхний пункт равенства Ь(И(Ь()а1))>) в Ь(Ь(|а1|)) и т.д.

Мы, таким: образом, получаем для р терм-калибровку ТСра=(а1,а2,аз.....а™) из т терм-калибров a1.a2.a3.....ат (для р).

Шкала уверенности ТБ. Условимся говорить, что уверенность, связанная с распознаванием х, равна \ баллам (имеет \ баллов), если и только если |х| £ |а,| и ТвЛ*>, и меньше I баллов (имеет \ баллов), если и только если |х|>|а||и-.г0,<х).

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

Пусть это будет балл ¡, \ < т. Тогда соответствующее этому баллу значение тзф.Т) определяется следующем образом. В качестве Шэф.Т) берется натуральное число, на единицу меньшее, чем длина (¡+1)-го терм-калибра а„\ терм-калибровки ТС&,

тз{р,Т) = |ам|-1

Учитывая способ получения ТСр„ мы можем воспользоваться следующей равносильной формулой:

тз{р, 7) = 1Д(|3]!), где суммирование по / ведется от 1 до ¡.

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

тг[р,1) = 1М -1

Или следующей равносильной формулой:

тг(р, 7) = 2Д(|Ь,|), где суммирование по/ ведется от 1 до ¡.

Выполнение задачи (¡) - измерения т^р.Т). также следует подобной схеме, но нужно учесть следующие два обстоятельства. Во-первых, слово "убедительность" в определении т,(р,Т) играет ту же роль, что слово "уверенность" в определениях тг(р,Т) и тз{р, 7); во-вторых, роль алфавита А1 должен играть теперь алфавит А1\ полученный из А1 добавлением к нему ровно одного символа — символа пробела. Тогда значение т,{р,Т) определяется следующим образом:

Шг(р,7) =|См|-1

Или мы можем воспользоваться следующей равносильной формулой Я1)(р,7) = 2Д(|С]|), где суммирование по/ведется от 1 до ¡.

Таким образом, описана экспериментальная процедура, позволяющая при некоторых разумных, предположениях приписать испытуемому человеку (пользователю) р, рассуждающему в рамках аксиоматической системы Т, интеллектуальный ресурс гез(р,Т) =(т1(р,Т), тг(р,Т). п>з)(Р,V)-

Идея организации диалога [11, 19] при опросе испытуемого, для установления его интеллектуальных ресурсов, следующая. Пусть I. - естественный язык, Т - выбранный синтаксис, заданный первопорядковым языком I. с сигнатурой <Р,1,К>, где Р - множество предикатных символов, I - множество символов переменных. К- множество символов констант.

Синтаксис языка и был определён как теория, указывающая, с какими эталонами и текстами надлежит сравнивать каждый заданный текст. Поэтому можно сказать, что всякий синтаксис языка I задаёт некоторое отображе-

ние множества текстов во множество эталонов1. В данном случае эталонами являются формулы языка Поэтому синтаксис языка I - это отображение множества текстов этого языка во множество формул языка /.. Синтаксис любого текста из !_ - это одна или несколько формул языка I. (в первом случае текст синтаксически однозначен, во втором - нет).

Пусть формула f - это синтаксис некоторого текста Т языка и. Тогда функция 1^)=г, ставящая в соответствие сигнатурным символам языка и выражения языка Ц есть одна из возможных интерпретаций в I..

Оценивать интеллектуальные ресурсы человека можно так: (а) предъявлять ему непосредственно сами формулы языка- к (как в [12]), (б) предъявлять ему интерпретации этих формул в языке I. (иначе говоря, -выражения естественного языка, соответствующе заданным формулам-эталонам). Способ (а) рассчитан на тех, кто достаточно свободно оперирует с символикой формальных языков, (б) - на всех остальных.

Для того, чтобы учитывать структуру текстов в рамках способа (а), достаточно выбрать какую-либо из известных мер синтаксической сложности (например, одну из сложностных характеристик формальных грамматик [1]) и предъявлять формулы, упорядочивая их не только по возрастанию длины, но и по возрастанию сложности относительно этой меры. В случае (б) реально, формулируя интересующую нас задачу, мы используем некоторый подъязык 11 языка Ь

Предполагается, что в ходе первого этапа тестирования (формулировка задачи) [9] все неоднозначные предложения подъязыка Ц были преобразованы в однозначные. Это значит, что синтаксис каждого из них строится единственным образом. Иначе говоря, если 01 - предложения, специфицирующие задачу, 2. - формулы-эталоны, сопоставляемые этим предложениям, то синтаксист, при ограничении области его применения только текстами из Ц, оказывается некоторой функцией О1.01

Выделив какую-нибудь другую предметную область, рассмотрим подходящий для неё подъязык и (языка Ц с множеством текстов ©о и синтаксисом Оо.таким, что ограничение области его применения только предложениями из и даёт некоторую функцию Сто: ©о-»г.

Определим отношение эквивалентности на множестве выражений языков 1.1 и Ц>: Vй V* тогда и только тогда, когда о,(у)=аг,(\0. где ¡,Ье{0,1} (то есть

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

когда выражениям V и V* поставлена в соответствие одна и та же формула-эталон). Пусть {ГЗк} - классы эквивалентное™ по отношению я, а fk - формула-эталон для всех элементов класса Пк-

Пусть д1 - некоторая интерпретация сигнатурных символов языка I. в и, до - интерпретация их же в Ьо- Функцию Р:д1—»до, где, назовём проекцией подъязыка 11 на подъязык и.

Допустим, что текст Т1 из 1и уже как-то разделён на выражения

VI, \/2.....соответствующие сигнатурным • символам языка Л. Если

Р(У1)=\лг1, Р(у2)=\М2.....Р(Уп)=\лгп, то, применив функцию Р к элементам последовательности VI, мг,.... у„, получим последовательность \/У1, у/г.....Приведя этот результат к приемлемому для русского языка виду, получим некоторый текст То из языка и.

Такой (не формальный) процесс преобразования произвольного текста Т1 из 1.1 в текст То из и в соответствии с функцией Р назовём проекцией текста Т1 на и.

Тексты Т1 и То принадлежат одному и тому же множеству Ок, им соответствует одна и та же формула-эталон интерпретации сигнатурных символов в них расположены одинаково. В этом случае примем предположение: оценка синтаксической сложности формулы! не зависит от того, какой из текстов (Т1 или То) рассматривается.

Подобрав язык 1_о с достаточно прозрачными и регулярными синтаксическими структурами, межно оценивать убедительность произвольного текста Т по его проекции на этот язык и. Иначе говоря, вместо текстов языка и можно предъявлять проекции этих текстов на язык и. Языки и и !_1 могут относиться к разным предметным областям.

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

В четвертой главе рассматриваются: а) применение технологии построения языков спецификаций классов задач в экономике и технике [15, 16]; Ь) часть программного обеспечения, реализующего указанную технологию [12, 13, 14]; с) технологические особенности реализации рассмотренного подхода, опирающегося на языки спецификаций задач [17,16].

Технология построения языков спецификаций задач апробировалась: (1) при разработке и реализации интернет-проекта: «Инвестиционное проек-

тирование и управление проектами» [16]; (2) при решение задач технической информатики: «Системные основы информатики» [15].

Для оценки интеллектуальных ресурсов и интеллектуальных запросов пользователей, а также при формировании технического задания на разработку необходимого пользователю программного обеспечения разработаны: (1) комплекс программных средств измерения интеллектуальны ресурсов и интеллектуальных запросов пользователя («система PLAST») [12]; (2) среда спецификационной деятельности (система «СИГМА-ТЗ») [13].

Технологический комплекс поддержки языков спецификаций задач базируется: на инструментальной системе разработки программ под задачу пользователя (система «ТеКоРЗ») [14]; и на инструменте отбора стратегий исполнения модулей в создаваемой системе [18].

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

Выводы диссертации

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

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

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

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

4. Предложена архитектура программного комплекса в технологии языков спецификаций классов задач, ориентированной на пользователя. Данная архитектура базируется на понятии В-модуля и Управляющего Массива. В-модуль имеет три точки входа/выхода: исходная, условие и выходная и работает в трех режимах: обычном вычислительном; проверочном и генерирующем. Управляющий Массив координирует все действия по расчетам на компьютере, динамически определяя, в некотором смысле оптимальную стратегию исполнения В-модулей. Так определенная архитектура программного обеспечения позволяет достичь экономичного и быстрого конструиро-' вания программ и программных комплексов под определенный пользователем класс задач.

Литература

1. Гладкий, А В. Формальные грамматики и языки / А В. Гладкий. М.: Наука, 1973. 368а

2. Гончаров, С. С. Методологические аспекты семантического программирования / С. С. Гончаров, Ю. Л. Ершов, Д. И. Свириденко // Научное знание: логика, понятия, структура. Новосибирск: Наука, 1987. С. 154-181.

3. Гончаров. С. С. Введение в логику и методологию науки / С. С. Гончаров, Ю. Л. Ершов, К. Ф. Самохвалов. М.: Интерпракс, 1994.256 с.

4. Гончаров, С. С. Логическое программирование в широком смысле / С. С. Гончаров, Д И. Свириденко // Теория алгоритмов и ее приложения Вып. 129: Вьнислительные системы. Новосибирск, 1969. С. 3-48.

5. Проблемжмэриентированньм подход к науке: Философия математики как концептуальный прагматизм / Отв. ред. В. В. Целишеа Новосибирск Наука, 2001.154с

6. Самохвалов, К Ф. Относительно конструктивные системы / К Ф. Самохвалов // Языки спецификаций и логическое программирование. Вьп. 124: Вычислительные системы. Новосибирск, 1988. С. 99-113.

7. Челпанов, Г. Введение в экспериментальную психологж) / Г. Чеппанов. М.: 1916. 293с

8. Dummett, M. Wang's paradox/ M. Dummet // Synthese. 1975. Vol. 30. P. 301-324.

Работы автора по теме диссертации >

9. Москвитин, А А Языки спецификаций задач, ориентированные на пользователя / А А Москвитин // Сибирский журнал индустриальной математики. Новосибирск, 2002. С. 148-159. Т. V. 2(10).

10. Москвитин, А А Измерение интеллектуальных ресурсов пользователей в языках спецификаций задач / А А Москвитин // Вычислительные технологии. Новосибирск, 2002. Т. 7. N4. С 71-83.

11. Москвитин, А А Диалог в языках спецификаций задач // Сибирский журнал индустриальной математики. Новосибирск, 2002. Т. V. 3(11). С. 139-145.

12 Москвитин, А А Задачный подход в информатике / А А Москвитин. Новосибирск, НГУ, 2003. 200 с.

13. Москвитин, А А Архитектура программной системы для реализации языков спецификаций задач / А А Москвитин // Модели когнитивных процессов. Вып. 164: Вычислительные системы. Новосибирск, 1998. С. 69-77.

14. Москвитин, А А Среда олецификационной деятельности СИГМА-ТЗ / А А Москвитин // Теория вычислений и языки спецификаций. Вып. 152 Выделительные системы. Новосибирск, 1995. С. 7&84.

15. Москвитин, АА Об одном способе организации профаммного обеспечения в технологическом комг1лексе решения логгических задач/А А Москвитин//Модели когнитивных процессов. Вып. 158: Вьнислитепьные системы. Новосибирск, 1997. С. 95-109.

16. Москвитин, АА Аппаратно-системнью основы информатики / А А Москвитин // Проблемы специализированного образования. Вып. 1. Новосибирск: НГУ, 1998. С. 37158.

17. Москвитин, АА Реализация программы «Обучение для развития: инвестиционное проектирование и управление проектами (с использованием Intemet-TexHonorvin)» / А А Москвитин// Международная конференция «Новые информационнее технологии в университетском образовании»: Тез. докл. Новосибирск, 2000. С. 68.

18. Косарев, Ю.Г. Проблемнсжнструментальная технология построения программных систем/Ю. Г. Косарев, А А Москвитин//Методы анализа данных Вып. 111: Вычислительные системы. Новосибирск, 1985. С. 59-76.

19. Костин, B.C. Инструмент отбора стратегий исполнения модулей (первая версия) /

B. С. Костин, А А Москвитин // Теория вычислимости и языки спецификаций. Вып. 139: Вычислительные системы. Новосибирск, 1991. С. 3&47.

20. Москвитин, АА Особенности диалога в языках спецификаций задач / А А Москвитин, М. К Тимофеева // Модели когнитивных процессов. Вып. 167; Вычислительные системы. Новосибирск, 2001. С. 3-18.

21. Москвитин, АА Заданный подход в информатике / А А Москвитин. Новосибирск. НГУ, 2002 400с

22 Косарев, Ю.Г. Система широкого применения для автоматизации редак-ционно-издательских работ / Ю. Г. Косарев, А. А. Москвитин // Методы обработки информации, Вып. 74: Вычислительные системы. Новосибирск, 1978.

C. 3-20.

23. Витяев, Е.Е. Введение в теорию открытий. Программная система DISCOVERY / Е. Е. Витяев, А. А Москвитин // Логические методы в информатике. Вып. 148: Вычислительные системы. Новосибирск, 1993. С. 117-163.

24. Казаков, К.В. Проект разработки языков спецификации задач, ориентированных на пользователя / К. В. Казаков, А. А. Москвитин, К. Ф. Самохвалов // Модели когнитивных процессов. Вып. 158: Вычислительные системы. Новосибирск, 1997. С. 63-94.

25. Казаков, Е.В. Установление ресурсов пользователей/ К. В. Казаков, А. А Москвитин, К. Ф. Самохвалов // Измерение и модели когнитивных процессов. Вып. 162: Вычислительные системы. Новосибирск, 1998. С. 41-57.

26. Moskvitin, АА. User-oriented task specification languages / A. A. Moskvitin. Of the second international scientific conference in the republic of Kazakhstan. "The informative technologies and control KazlTC'99", Almaty, 1999. P. 225-227.

27. Интенсивный курс информатики (сборник заданий и задач). / Сост. Е. Н. Алаев, Ю. И. Молородов, А А Москвитин и др. Новосибирск, 2000. 46 с. (Учебно-методическое пособие СУНЦ НГУ).

28. Москвитин, АА. Оценка длины убедительного доказательства для реального пользователя / А. А. Москвитин, М. К. Тимофеева // Модели когнитивных процессов. Вып. 169: Вычислительные системы. Новосибирск, 2001. С. 3-19.

29. Москвитин, А.А. Оценка длины убедительных доказательств в языках спецификаций задач / А. А. Москвитин // Вестн. ТГУ, приложение N 1 (II) материалы научных конференций, симпозиумов, школ, проводимых в ТГУ, Томск, 2002 г. С. 8-13.

30. Москвитин, А.А, Тимофеева М.К. Спецификация задач на основе трактовки естественного языка как формального / А. А. Москвитин, М. К. Тимо-

феева // Вестн. ТГУ, приложение N 1 (II) материалы научных конференций, симпозиумов, школ, проводимых в ТГУ, Томск, 2002 г. С. 14-19.

31. Москвитин, А.А. Оценка длины убедительного доказательства для реального пользователя / А. А. Москвитин, М. К. Тимофеева // Методологические аспекты когнитивных процессоа Вып. 170: Вычислительные системы. Новосибирск, 2002. С. 52-66.

32. Москвитин, А.А. Методологические аспекты языков спецификаций задач сложных систем / А. А. Москвитин // Поиск математических закономерностей мироздания (Физические идеи, подходы, концепции, том 1. Новосибирск, 2002. С. 173-186.

33. Базовый курс информатики. Алгоритмизация и программирование / Сост. С. С. Гончаров, А. А. Москвитин, Ю. И. Молородов и др.; НГУ. Новосибирск, 2003.100 с.

34. Москвитин, А.А. Методологические основы языков спецификаций задач, ориентированных на пользователей / А. А. Москвитин // 111 Международная конференция «Идентификация систем и задачи управления», 28 - 30 января 2004 г. БЮРЯОШ, 2004. С. 354-395. (Электронное издание).

35. Москвитин, А. А. Некоторые особенности задачного подхода в информатике / А. А. Москвитин // Труды Байкальской Всероссийской конференции с международным участием «Информационные и математические технологии». Иркутск: ИСЭМ СО РАН, 2004. с. 195-205.

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

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

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

Подписано в печать 06.09.2004 г. Формат 60x84 1/16. Офсетная печать.

Уч.-изд. л. 2. Тираж 100 экз.

Заказ N384

Лицензия ЛР N 021285 от 6 мая 1998 г. Редакционно-издательский центр НГУ 630090, Новосибирск-90, ул. Пирогова, 2.

I* 1692 1

Оглавление автор диссертации — доктора физико-математических наук Москвитин, Анатолий Алексеевич

Введение.

1 Обзор существующих подходов к исследуемой проблеме.

1.1 Решение задач в языках императивного типа.

1.2 Решение задач в языках декларативного типа.

1.3 Доказательное программирование.

1.4 Особенности подхода от задач.

1.4.1 Первый уровень общности.

1.4.2 Второй уровень общности.

1.4.3 Третий уровень общности.

2 Теоретические основы языков спецификаций задач.

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

2.2 Интеллектуальные ресурсы и интеллектуальные запросы пользователей.

2.2.1 Интеллектуальные ресурсы пользователей.

2.2.1.1 «Парадокс кучи».

2.2.1.2 Оценка интеллектуального ресурса пользователя.

2.2.1.3 Интеллектуальный ресурс сообщества пользователей.

2.2.2 Интеллектуальные запросы пользователей.

2.2.1 Интеллектуальные запросы идеального пользователя.

2.2.2 Интеллектуальные запросы реального пользователя.

2.3 Языки и логики спецификаций задач для идеальных пользователей.

2.3.1 Языки.

2.3.2 Т-логики.

2.3.3 Тзуш" логики.

2.3.4 Немонотонность некоторых Т-логик.

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

2.3.5.1 Представления Т-логик.

2.3.5.2 Конструктивные системы.

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

2.4.1 Яех-языки.

2.4.2 Логики.

2.4.3 (Т5уш, гей}- логики.

2.4.4 Немонотонность некоторых (Т,/-е^-логик.

2.5 Представления логик спецификаций для реальных пользователей.

2.5.1 Представления (Т, гех)-логик.

2.5.2 Лея-конструктивные системы.

3 Алгоритмические проблемы языков спецификаций задач.

3.1 Измерение интеллектуальных ресурсов пользователей.

3.1.1 Алгоритм измерения интеллектуальных ресурсов пользователей.

3.1.1.1 Терм-калибровка.

3.1.1.2 Шкала уверенности ТЗ.

3.1.2 Измерение т3(р, Т) ресурса ге$(р,Т).

3.1.3 Измерение т2(р,Т).

3.1.4 Измерение т^р.Т).

3.2 Особенности организации диалога в языках спецификаций задач.

3.2.1 Организация диалога с реальным пользователем.

3.2.2 Длина текста и сложность текста.

3.2.3 Синтаксис, семантика и прагматика.

3.2.3.1 Синтаксис.

3.2.3.2 Оценка синтаксической сложности текста.

3.2.4 Особенности формулировки задачи в языках спецификаций.

3.2.4.1 Тестирование.

3.2.4.2 Пример формальной спецификации задачи.

3.2.5 Некоторые комментарии и обоснования.

3.2.6 Реализационные аспекты диалога.

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

4.1 Применение языков спецификаций задач в экономике и технике.

4.1.1 Спецификация экономической задачи.

Инвестиционное проектирование и управление проектами».

4.1.2 Реализация интернет-проекта.

Инвестиционный менеджмент (в инновационной сфере)».

4.1.3 Спецификация технической задачи «Системные основы информатики». j 4.1.4 Реализация программы «Системные основы информатики».

4.1.4.1 Комплекс обучающих программ «Конструктор IBM PC».

4.1.4.2 Аппаратные основы информатики. «Конструктор IBM PC».

4.1.4.3 Работа с конструктором IBM PC.

4.1.4.4 Конфигурирование персонального компьютера.

4.1.4.5 С ЧЕГО начать и КАК это делается.

4.1.4.6 Лабораторный практикум.

4.1.4.7 Задания лабораторного практикума.

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

4.2.1 Измерение интеллектуальных ресурсов пользователей. Система «PLAST».

4.2.1.1 Определение интеллектуальных ресурсов пользователя.

4.2.1.2 Схема постановки задачи пользователем р.

4.2.2 Среда спецификационной деятельности. Система «СИГМА-ТЗ».

4.2.2.1 Схема решения задач в системе «Сигма-ТЗ».

4.2.2.2. Формирование исходных спецификаций в «Сигма-ТЗ».

4.3 Инструментальный комплекс языков спецификаций задач.

4.3.1 Архитектура инструментальной системы «ТеКоРЗ».

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

4.3.1.2 B-модули.

4.3.1.3 Управляющий массив.

4.3.1.4 Организация программного обеспечения на базисном уровне.

4.3.1.4.1 Решение задач на базисном уровне.

4.3.1.4.2 Технологический этап решения задач в «ТеКоРЗ».

4.3.1.4.3 Свойства качественных решений Г-задач.

4.3.2 Инструмент отбора стратегий исполнения модулей.

4.3.2.1 Схема работы 71-конструктора.

4.3.2.2 Структура и состав ТС-конструктора.

Введение 2004 год, диссертация по информатике, вычислительной технике и управлению, Москвитин, Анатолий Алексеевич

Необходимость в разработке новых методик постановки и решения задач на компьютере объясняется тем, что появление относительно дешевых, малогабаритных, надежных и быстродействующих персональных компьютеров [98] обеспечило их доступность массовому пользователю. Появилась реальная возможность обеспечить каждого специалиста персональным компьютером, способным решать многообразные, в том числе и достаточно сложные задачи [32]. Данная ситуация наступила настолько быстро, что возник разрыв между необходимой и фактической подготовленностью основной массы потенциальных пользователей, способных ставить и решать свои задачи [95] на персональных компьютерах. Причин этому несколько:

• недостаточные знания, умения и навыки постановки задачи в точных математических терминах;

• неумение выбирать или разрабатывать эффективные алгоритмы решения задачи;

• незнание формальных языков программирования и инструментальных программных средств;

• отсутствие знаний, умений и навыков перевода постановки своей задачи с языка предметной (профессиональной) области на «язык компьютера» и другие.

И если некоторые из указанных проблем можно разрешить сравнительно быстро (например, изучив язык программирования [130]), то решение других проблем (например, формулировка задачи в терминах предметной области пользователя и ее точный перевод на формальный язык, а, далее, на «язык компьютера» [82]) вызывает серьезные затруднения.

Отметим, что всегда одной из центральных проблем области человеческих знаний и деятельности была и остается проблема корректной постановки задачи, в самом широком смысле этого слова [9, 27, 28]. Эта проблема относится как к решению повседневных бытовых, так и самых сложных научных и производственных задач. С момента появления вычислительных устройств, и особенно с появлением персональных компьютеров, эта проблема еще более обострилась, поскольку теперь к решению задач приобщилась еще большая аудитория (к профессионалам математикам и программистам добавились, так называемые, непрограммирующие профессионалы — конечные пользователи [110, 120]). Последние же составляют подавляющую часть работающего населения мира.

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

Другой подход основан на «поле» осмысленных задач данной предметной области пользователя. В отличие от предыдущего подхода, конструирование задач здесь не осуществляется, а задача рассматривается целиком и, более того, она ставится в соответствие задачам из блока задач предметной области. В этом случае нет необходимости в какой-либо дополнительной проверке на ее осмысленность, поскольку для пользователя она осмысленна с самого начала. Конечно же, остается определить: «Что такое осмысленная задача?» При этом подходе задача считается понятной пользователю, если он может любой предъявленный ему результат расчетов на компьютере признать решением своей задачи, или признать нерешением своей задачи. В работе рассматривается этот второй подход, для которого разработаны языки спецификаций задач, ориентированные на пользователя.

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

Решение проблемы взаимопонимания между различными группами программистов ищут на пути разработки различных технологий программирования [4, 12-14, 16-17, 42, 49, 90], а решение проблемы взаимопонимания между заказчиками и программистами ищут на пути разработки новых методик постановки задач, например [26-31, 37, 39, 43, 75], предполагающих их решение на компьютере.

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

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

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

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

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

До последнего времени от пользователя требовалось не столько умение точно поставить свою задачу для ее решения на компьютере, сколько умение описать ее программисту или постановщику, переадресовав последним ее точную постановку. Другой подход: пользователю предлагали изучить язык программирования («вторая грамотность» [36, 37]) и изучив возможности компьютера по решению определенного класса задач, самостоятельно разработать требуемое программное обеспечение. Иначе говоря, самому поставить и решить свою задачу. Естественно, что при этом пользователю нужно было знать не только и, может быть даже не столько то, ЧТО он хочет, сколько уметь точно описать КАК желаемое ЧТО должно быть реализовано на компьютере. Вот эти ЧТО и КАК и явились главной преградой на пути массового применения персональных компьютеров.

Здесь и далее: термин ЗАЧЕМ отвечает за прагматику', термин ЧТО — за семантику, термин КАК - за синтаксис.

Заметим, что подавляющее большинство пользователей персональных компьютеров относится к так называемым «непрограммирующим профессионалам», т.е. к специалистам, работающими с уже готовым программным обеспечением [35]. Именно они, представители всех сфер человеческой деятельности, и являются основными постановщиками задач, предполагающих их решение на компьютерах. Их часто именуют «конечными пользователями» [120] (чтобы отличать от программистов, исполняющих роль посредников между пользователем и компьютером). Естественно, что когда каждый специалист в своей предметной области станет конечным пользователем, никакой армии программистов-посредников не хватит. Попытки обучить всех программированию, возведя его в ранг «второй грамотности» не дали положительных результатов по вполне понятным причинам (нельзя всех обучить программированию).

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

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

Многочисленные попытки решить данную проблему автоматизации построения алгоритмов и программ по спецификациям задач, привели к появлению и широкому распространению языка логического стиля - ПРОЛОГ [51,52,117,129,131,148].

В отличие от языков фон-неймановского типа [11, 104, 124, 130] (когда программист вынужден был смотреть на решение своей задачи как на процесс планирования вычислений) в логическом программировании [10, 31, 51-52, 60, 91, 131, 148] сознательно переходят на разделение описания задачи (в специальных терминах) от метода ее решения на компьютере. Иначе говоря, происходит переход от императивных языков постановки и решения задач, к декларативным языкам. Это позволило применить к описанию задачи универсальный способ вычислений функций и отношений, составляющих содержание задачи (метод резолюций). Правда, на практике вновь происходит смешение чисто логических и вычислительных аспектов вследствие жесткого детерминизма исполнения логических программ.

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

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

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

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

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

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

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

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

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

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

II. Понятность задачи для пользователя классифицируется тремя следующими уровнями общности рассмотрения понятия задачи: a) «Г-задача» - задача понятна пользователю, т.е. он может сформулировать критерий, позволяющий эффективно отделять решение задачи от ее нерешения', b) «Г-полузадача» - при постановке задачи явно указан критерий определяющий только решение задачи, т.е. решения задачи составляют рекурсивно перечислимое множество, а нерешения - никак не определяются; c) «Г-томление» - пользователь может указать только нерешение задачи. Что же при этом является решением задачи и как это определяется ничего не сказано. Так, например, в 1932 году Колмогоров [170] предложил интуиционистское пропозициональное исчисление трактовать как исчисление задач. При этом он не определил ни что такое задача, ни что такое решение. Импликацию он истолковывал следующим образом: импликация а—> Ь {а влечет Ь) означает, что имеется общий метод сведения задачи Ь к задаче а. Затем Клини предложил уточнить термин «сведение» как алгоритм, который по каждому решению задачи а выдает решение задачи Ь.

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

Замечание 2. Конструктивный подход в определении задачи совпадает с классическим определением в том случае, когда задача осмысленна, т.е. является Т- задачей.

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

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

2. Принципиальный отказ от универсальности в определении языков спецификаций задач в пользу эффективности. Чем плоха универсальность и какие здесь могут быть «подводные камни» достаточно хорошо известно и с теоретической и с практической стороны.

3. Проблема «машинного нуля» [26] или презумпция неточности. Кто может гарантировать, что если известен результат и известен путь его получения, то можно отправляясь от результата однозначно прийти к исходным посылкам (нарушение транзитивности)?

4. В основе проводимых исследований (предшествующих теоретическому обобщению) лежит значительный этап практических разработок программных систем, хотя он и не является единственно определяющим фактором. Анализ данного этапа позволил выделить некоторые особенности решения задач на компьютерах, которые были положены в основу рассматриваемого подхода от задач. Так, например, а) разработанное программное обеспечение только тогда долго и эффективно эксплуатируется, когда в постановке задачи и формировании технического задания на разработку программного обеспечения непосредственное участие принимает сам заказчик; Ь) сам процесс постановки задачи оказывается успешным тогда, когда язык общения заказчика с исполнителем бывает с одной стороны простым, удобным и понятным, а с другой - точным и формальным; с) разработанное программное обеспечение только тогда эффективно, когда при его разработке отказываются от принципа универсальности; с!) было замечено также, что знания о предметной области пользователя не монотонны по отношению к его знаниям о задачах из той же самой предметной области; е) пользователи, как правило, в практических действиях руководствуются не предметной областью (имеется ввиду модель предметной области [109]), а оперируют понятием, которое определено в работе как «поле» задач этой предметной области.

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

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

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

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

Пример 1. Чем отличается доказательство того, что пятый постулат геометрии Евклида эквивалентен теореме о сумме внутренних углов треугольника, от попыток геодезическим способом измерять сумму внутренних углов треугольника»?

Пример 2. Если в качестве исходных аксиом выбрать заповеди «Не убий» и «Не прелюбодействуй», то они явно будут иметь разный вес, по крайней мере, не будут эквивалентными.

Таким образом, недостаток аксиоматического метода, который может привести к неприятным ситуациям, заключается именно в том, что вообще-то аксиомы должны иметь разные веса (например, в смысле того, как часто вы пользуетесь аксиомой, у которой «вес сомнительности» больше, чем у других используемых аксиом). Это особенно важно при решении задач, связанных с деятельностью, или с мыследеятельностью, когда при аксиоматическом методе это свойство веса аксиом утрачивается. Решение этой проблемы остается за заказчиком.

Вместе с тем, чем точнее система аксиом отражает предметную область, тем решение задачи будет точнее.

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

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

Заметим, что понимание ограниченности аксиоматического метода в смысле Геделя в данном случае неприемлемо. Это нечто совсем другое. Отсюда вывод: при аксиоматическом изложении трудно добиться того, чтобы все аксиомы были равно приемлемы. Пока же предлагается исходить из рав-новзвешенности и равноприменимости аксиом для заказчика.

II. Желательно учитывать не только то, КАК будет работать система, если бы она работала идеально, но и ЧТО будет, если она будет работать плохо. Что будет, когда система будет откланяться от того, что в ней предусмотрено? Видимо, в этих случаях необходимо предусмотреть некоторые другие механизмы организации взаимодействия заказчиков и исполнителей, и другой методики решения задач на компьютерах. Здесь также играют роль предпочтения неуниверсальности. Это же может выражаться и в виде нечеткости самих понятий, но в этом случае предлагается поступать особым образом, описанным далее в главе III. Такие ситуации в данной работе не рассматриваются и не исследуются, хотя на практике они также могут встречаться.

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

IV. Если пользователь получил решение своей задачи, и оно его не удовлетворяет, то можно рассмотреть две ситуации: первая — мы считаем, что пользователь сам виноват во всем; вторая — мы признаем, что пользователь может не знать всех особенностей компьютерной реализации и соответственно не может указать их в спецификации своей задачи. В этом случае исполнитель может включить в реализацию программы фрагменты, способные повысить эффективность программного обеспечения, решающего задачу пользователя (например, алгоритмические логики [39]). Однако при этом необходимо быть особенно осторожным и учесть следующее обстоятельство. Может возникнуть следующая опасная ситуация - берется конкретная задача, потом она обобщается, затем конкретизируется и в результате решается уже совсем другая задача, не та которую имел ввиду пользователь.

V. В рассмотрение введен критерий, отделяющий решение задачи от ее нерешения. Но может быть в рассматриваемом «поле» задач и есть и еще что-то, что нашим критерием не улавливается, (что не является ни решением и ни нерешением)? Тогда имеет смысл говорить о системе критериев, поскольку меняется само понятие истины. Здесь можно вспомнить теорему Геделя, о существовании арифметической формулы, которая истинна, но не доказуема в арифметике: если она и истинна, то в каком-то другом, не таком смысле, что а + Ь = Ь + а.

Для решения перечисленных выше задач имелись следующие предпосылки. Методологическую основу исследований составляет анализ понятий задачи и «поля» задач, рассматриваемый в рамках нового подхода к философии математики [4\], а теоретическую базу исследований составляет математический аппарат относительно конструктивных систем, адаптированный применительно к языкам спецификаций задач [105, 111]. Технологические основы апробированы при решении практических задач и описаны в [55,65-67,70-71,73-74].

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

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

Дано определение интеллектуальных потребностей {интеллектуальных запросов) пользователя в виде так называемого «поля» задач. Дано определение интеллектуальных возможностей (интеллектуальных ресурсов) пользователя, согласованных с его интеллектуальными потребностями, предста-вимые как измеримые характеристики и приведена процедура их измерения. Ресурс (данного человека) р относительно (данной аксиоматической системы) Т есть тройка гез(р,Т) =(т](р,Т), щ2(р,Т), ш3)(р,Т)) натуральных чисел т1(р,Т)> ш2(р,Т), т3(р,Т) таких, что:

• т](р,Т) — наибольшая длина доказательств в Т, все еще имеющих достаточно высокую (заранее фиксированную) балльную оценку степени убедительности для данного человекар\

• гп2(р,Т) — наибольшая длина последовательностей символов алфавита языка системы Т, все еще имеющих достаточно высокую (заранее фиксированную) балльную оценку (субъективной уверенности р в) безошибочной распознаваемости их р как формул (или не формул) языка системы; тз(р,Т) — таких, что и Ш2(р,Т), но применительно к термам. Здесь Т описание предметной области пользователя.

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

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

Основные результаты, выносимые на защиту.

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

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

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

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

Диссертация состоит из введения, четырех глав, разбитых на параграфы и заключения. Параграфы разбиты на пункты.

Заключение диссертация на тему "Технология построения языков спецификаций классов задач, ориентированных на пользователей"

Заключение

На защиту выносятся следующие результаты.

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

2. Разработана, теоретически обоснована и применена на практике (для технических, экономических задач и задач обучения) технология построения языков спецификаций классов задач, ориентированных на конечных пользователей. Основу данной технологии составляют понятие и понятность задачи для пользователя, относительно конструктивная система Т (аксиоматическая система Т), интеллектуальный ресурс и интеллектуальный запрос, задачная система, «поле» осмысленных задач и др.

3. Разработаны процедуры измерения интеллектуальных ресурсов (знаний, умений и навыков) и их соответствия интеллектуальным запросам (задачам) пользователей в языках спецификаций классов задач, ориентированных на пользователей, позволяющие, при некоторых разумных ограничениях, приписать испытуемому человеку (пользователю) р, рассуждающему в рамках аксиоматической системы Т, интеллектуальный ресурс: гев(р,Т) = (т,(р,Т), т2(р,Т), ш3(р,Т)), где

Ш}(р,Т) - наибольшая длина доказательств в Т, все еще имеющих достаточно высокую (заранее фиксированную) балльную оценку степени убедительности для данного человека р; т2(р,Т) - наибольшая длина последовательностей символов алфавита языка системы Т, все еще имеющих достаточно высокую (заранее фиксированную) балльную оценку (субъективной уверенности р в) безошибочной распознаваемости их р как формул (или не формул) языка системы; т3(р,Т) - таких, что и т2(р,Т), но применительно к термам;;

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

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

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

Библиография Москвитин, Анатолий Алексеевич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Агафонов, В. Н. Типы и абстракция данных в языках программирования / В. Н. Агафонов // Данные в языках программирования. М.: Мир, 1982. С. 265-327.

2. Агафонов, В. Н. Надъязыковая методология спецификации программ / В. Н. Агафонов // Программирование. Москва, 1993. N 5. С. 28-49.

3. Агафонов, В. Н. Языки и средства спецификации программ / В. Н. Агафонов // Требования и спецификации в разработке программ. М.: 1984. С. 285-344.

4. Арефьева, Н. А. HIPO-технология метод разработки и сквозного документирования программ по принципу «сверху-вниз» / Н. А. Арефьева, И. Б. Пушкина, С. Т. Родионов // УСИМ. 1978. N 3. С. 35-39.

5. Базисный РЕФАЛ и его реализация на вычислительных машинах (методические рекомендации). М.: ЦНИПИАСС Госстроя СССР, 1977. 300 с.

6. Бауэр, Ф., Брей, М. На пути к языку широкого спектра для поддержки спецификации в разработке программ // Требования и спецификации в разработке программ. М., 1984. С. 28-46.

7. Белякин, Н. В., Самохвалов, К.Ф. Логика мнений и ритуалов / Н. В. Белякин, К. Ф. Самохвалов // Методологический анализ математических теорий. М.: Центр, совет филос. (метод.) семинаров при Президиуме АН СССР, 1987. 296 с.

8. Бельтюков, А. П. Язык дедуктивного программирования / А. П. Бель-тюков // Теория языков программирования. Ижевск, 1983. С. 3-18.

9. Бенерджи, Р. Теория решения задач (подход к созданию искусственного интеллекта) / Р. Бенерджи. М.: Мир, 1972. 224 с.

10. Борщев, В.Б. Семантика параметрических конструкций в логическом программировании /В.Б. Борщев // Логические методы в программировании. Вып. 120: Вычислительные системы. Новосибирск, 1987. С. 3-13.

11. Характеристики качества программного обеспечения / Б. Боэм, Дж. Браун, X. Каспар, М. Липов, Г. Мак-Леод: Пер. с англ. Е.К.Масловского. М.: Мир, 1981. 206 с.

12. Боггс, У., Боггс, М. UML и Rational Rose / У. Боггс, М. Богсс. М.: Лори, 2000. 582 с.

13. Буч, Г., Рамбо, Дж., Джекобсон, A. UML Руководство пользователя / Г. Буч, Дж. Рамбо, А. М. Джекобсон. М.: ДМК, 2000. 432 с.

14. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++ / Г. Буч. М.: Бином, 1999. 560 с.

15. Васильев, С. Н. Методы логического вывода и генерирование гипотез в задачах искусственного интеллекта / С. Н. Васильев // Труды III международного симпозиума "Интеллектуальные системы" (INTELS'98): Тез.докл. Псков, 1998. С. 105-108.

16. Вельбицкий, И.В. Технология программирования / И. В. Вельбицкий. Киев: Техника, 1984. 280 с.

17. Вендров, A.M. CASE-технологии. / А. М. Вендров. Современные методы и средства проектирования информационных систем. М.: Финансы и статистика, 1998. 176 с.

18. Вирт, Н. Алгоритмы + Структуры данных = программы / Н. Вирт. М.: Мир, 1985. 406 с.

19. Волож, Б. Б. Система ПРИЗ и исчисление высказываний / Б. Б. Волож и др. // Кибернетика. 1982. № 6. С. 65-70.

20. Вопенка, П. Математика в альтернативной теории множеств / П. Во-пенка. М.: Мир, 1983. 150 с.

21. Гантер, Р. Методы управления проектированием программного обеспечения / Р. Гантер. М.: Мир, 1981. 388 с.

22. Гаек, П., Гавранек, Т. Автоматическое образование гипотез: математические основы общей теории / П. Гаек, Т. Гавранек. М.: Наука, 1984. 280 с.

23. Гладкий, А. В. Формальные грамматики и языки / А. В. Гладкий. М.: Наука, 1973. 368 с.

24. Глушков, В. М. Синтез цифровых автоматов / В. М. Глушков. М.: Физматгиз, 1962. 476 с.

25. Глушков, В. М. Алгебра. Языки. Программирование / В. М. Глушков, Г. Е. Цейтлин, Е. JI. Ющенко. Наукова Думка, 1989. 376 с.

26. Годунов, С. К. Решение систем линейных уравнений / С. К. Годунов.1. М.: Наука, 1980. 177 с.t

27. Гончаров, С.С. Методологические аспекты семантического программирования / С. С. Гончаров, Ю. JI. Ершов, Д. И. Свириденко // Научное знание: логика, понятия, структура. Новосибирск: Наука, 1987. С. 154-183.

28. Гончаров, С.С. Введение в логику и методологию науки / С. С. Гончаров, Ю. JI. Ершов, К. Ф. Самохвалов. М.: Интерпракс, 1994. 256 с.

29. Гончаров, С. С., Свириденко, Д. И. Z-программы и их семантики / С. С. Гончаров, Д. И. Свириденко // Логические методы в программировании. Вып. 120: Вычислительные системы. Новосибирск, 1987. С. 24-51.

30. Гончаров, С. С., Свириденко, Д. И. Z-программирование / С. С. Гончаров, Д. И. Свириденко // Логико-математические проблемы МОЗ. Вып. 107: Вычислительные системы. Новосибирск, 1985. С. 3-29.

31. Гончаров, С. С., Свириденко, Д. И. Логическое программирование в широком смысле / С. С. Гончаров, Д. И. Свириденко // Теория алгоритмов и ее приложения. Вып. 129: Вычислительные системы. Новосибирск, 1989. С. 3-48.

32. Громов, Г. Р. Профессиональные приложения персональных ЭВМ / Г. Р. Громов // Микропроцессорные средства и системы. 1985, N 3. С. 9-15.

33. Грисс, Д. Наука программирования / Д. Грисс. М.: Мир, 1984. 416 с.

34. Дейкстра, Э. Дисциплина программирования / Э. Дейкстра. М.: Мир, 1978. 276 с.

35. Денинг, В. Диалоговые системы Человек-ЭВМ: адаптация к требова4ниям пользователя / В. Денинг, Г. Эссиг, С. Маас. М.: Мир, 1984. 112 с.

36. Ершов, А. П. Избранные труды / А. П. Ершов. Новосибирск: Наука Сибирская издательская фирма, 1994. 416 с.

37. Ершов, А. П. Научные основы доказательного программирования / А. П. Ершов//Вестн. АН СССР. № 10. 1984, С. 7-18.

38. Ершов, Ю. Л. Язык Х-выражений / Ю. Л. Ершов // Логические вопросы теории типов данных. Вып. 114: Вычислительные системы. Новосибирск, 1986. С. 3-10.

39. Ершов, Ю. Л. Динамическая логика над допустимыми множествами / Ю. Л. Ершов // ДАН СССР. Т. 273 N 5. 1983. С. 1045-1048

40. Ершов, Ю. Л., Палютин, Е. А. Математическая логика / Ю. Л. Ершов, Е. А. Палютин. М.: Наука. 1987, 320 с.

41. Ершов, Ю. Л., Самохвалов, К. Ф. О новом подходе к философии математики / Ю. Л. Ершов, К. Ф. Самохвалов // Структурный анализ символьных последовательностей. Вып. 101: Вычислительные системы. Новосибирск, 1984. С. 141-148.

42. Жоголев, Е.А. Система обосновательного гиперпрограммирования / Е. А. Жоголев // Программирование, N 1. Москва, 1993. С. 58-65.

43. Интеллектное управление динамическими системами / С. Н. Васильев, А. К. Жерлов, Е. А. Федосов, Б. Е. Федунов // Федер. целевая программа. М.: Физматлит, 2000. 352 с.

44. Интенсивный курс информатики (сборник заданий и задач). Учебно-методическое пособие / Сост. Ю. И. Молородов, А. А.Москвитин, Е. Н. Алаев и др. Новосибирск, СУНЦ НГУ, 2000. 46 с.

45. Казаков, Е. В. Проект разработки языков спецификации задач, ориентированных на пользователя / Е. В. Казаков, А. А. Москвитин, К. Ф. Самохвалов // Модели когнитивных процессов. Вып. 158: Вычислительные системы. Новосибирск, 1997. С. 63-94.

46. Казаков, Е.В. Установление ресурсов пользователей / Е. В. Казаков, А. А. Москвитин, К. Ф. Самохвалов // Измерение и модели когнитивныхпроцессов. Вып. 162: Вычислительные системы. Новосибирск, 1998. С. 41-57.

47. Каргальцева, С. Л., Самохвалов, К. Ф. Как измерить склонность к конформизму / С. Л. Каргальцева, К. Ф. Самохвалов // Искусственный интеллект и экспертные системы. Вып. 160: Вычислительные системы. Новосибирск, 1997. С. 18-35.

48. Касьянов, В.Н. Редуцированные преобразования программ / В. Н. Касьянов // Трансляция и оптимизация программ. Новосибирск, ВЦ СО АН СССР, 1983. С. 86-98.

49. Кахро, М.И., Калья, А.П., Тыугу, Э.Х. Инструментальная система программирования ЕС ЭВМ (ПРИЗ) / М. И. Кахро, А. П. Калья, Э. X. Тыугу. М.: Финансы и статистика. 1981. 158 с.

50. Клини, С. Математическая логика / С. Клини. М.: Мир, 1973. 480 с.

51. Клоксин, В., Меллиш, К. Программирование на языке ПРОЛОГ / В. Клоксин, К. Меллиш. М.: Мир, 1987. 336 с.

52. Ковальский, Р. Логическое программирование / Р. Ковальский // Логическое программирование. М.: Мир, 1988. С. 134-166.

53. Косарев, Ю.Г. О путях развития математического обеспечения средств вычислений / Ю. Г. Косарев // Проблемы обработки информации. Вып. 100: Вычислительные системы. Новосибирск, 1985. С. 5-10.

54. Косарев, Ю.Г., Москвитин, A.A. Проблемно-инструментальная технология построения программных систем / Ю. Г. Косарев, А. А. Москвитин // Методы анализа данных. Вып. 111: Вычислительные системы. Новосибирск, 1985.С. 59-76.

55. Костин, B.C., Москвитин, A.A. Инструмент отбора стратегий исполнения модулей (первая версия) / В. С. Костин, А. А. Москвитин // Теория вычислимости и зыки спецификаций. Вып. 139: Вычислительные системы. Новосибирск. 1991. С. 38-47.

56. Кяхро, М. Инструментальная система программирования для ЕС ЭВМ (ПРИЗ) / М. И. Кяхро, А. П. Калья, Э. X. Тыугу. М.: Финансы и статистика, 1981. 158 с.

57. Лавров, С. С., Силогадзе, Г. Г. Автоматическая обработка данных. Язык ЛИСП и его реализация. / С. С. Лавров, Г. Г. Новосибирск: Нау-ка,1978. 176 с.

58. Логическое программирование / Отв. Ред. В. Н. Агафонов. М.: Мир, 1988.366 с.

59. Маклаков, С. В. Моделирование бизнес-процессов с BPwin 4.0 / С. В. Маклаков. М: «Диалог-МИФИ», 2002. 224 с.

60. Малпас, Дж. Реляционный язык ПРОЛОГ и его применение / Дж. Малпас. М.: Наука, 1990. 464 с.

61. Манцивода, А. В. Флэнг-проект: обзор основных результатов / А. В. Манцивода. Иркутский университет, 1993. 27 с.

62. Мартьянов, В. И. Теоретико-модельная семантика методов решения комбинаторных проблем / В. И. Мартьянов // Труды XI Байкальской международной школы-семинара "Методы оптимизации и их приложения", Иркутск, 1998, т. 1. С. 167-170.

63. Минц, Г. Б. Логические основы синтеза программ / Г. Б. Минц. Таллинн, 1982. 42 с.

64. Минц, Г. Б., Тыугу, Э.Х. Обоснование структурного синтеза программ / Г. Б. Минц, Э. X Тыугу // Автоматический синтез программ. Таллинн, 1983. С. 52-60.

65. Москвитин, А. А. Среда спецификационной деятельности СИГМА-ТЗ / А. А. Москвитин // Теория вычислений и языки спецификаций. Вып. 152: Вычислительные системы. Новосибирск, 1995. С. 76-84.

66. Москвитин, А. А. Компьютерные приложения в информатике / А. А. Москвитин // Международная конференция «Новые информационные технологии в университетском образовании»: Тез. докл. Новосибирск, 1995. С. 96-98.

67. Москвитин, А. А. Методологические основы языков спецификаций задач / А. А. Москвитин // Второй Сибирский Конгресс по Прикладной и Индустриальной Математики (ИНПРИМ-96): Тез. докл. Новосибирск, 1996. С. 98.

68. Москвитин, А. А. Об одном способе организации программного обеспечения в технологическом комплексе решения логических задач / А. А. Москвитин // Модели когнитивных процессов. Вып. 158: Вычислительные системы. Новосибирск, 1997. С. 95-109.

69. Москвитин, А. А. Компьютерные технологии в преподавании информатики в СУНЦ НГУ (Подход от задач) / А. А. Москвитин // Международная конференция «Новые информационные технологии в университетском образовании»: Тез. докл. Новосибирск, 1997. С. 128-129.

70. Москвитин, А. А. Аппаратно-системные основы информатики / А. А. Москвитин // Проблемы специализированного образования. Вып. 1: НГУ. Новосибирск, 1998. С. 137-158.

71. Москвитин, А. А. Архитектура программной системы для реализации языков спецификаций задач / А. А. Москвитин // Модели когнитивных процессов. Вып. 164: Вычислительные системы. Новосибирск. 1998. С. 69-77.

72. Москвитин, А. А. Языки спецификаций задач в преподавании информатики / А. А. Москвитин // Международная конференция «Новыеинформационные технологии в университетском образовании». Тез. докл. Новосибирск, 1998. С. 108-109.

73. Москвитин, А. А. Языки спецификаций задач, ориентированные на пользователя / А. А. Москвитин // Сибирский журнал индустриальной математики. Новосибирск, 2002. Т. V. 2(10). С. 148-159.

74. Москвитин, А. А., Тимофеева, М. К. Оценка длины убедительного доказательства для реального пользователя / А. А. Москвитин, М.К.Тимофеева // Модели когнитивных процессов. Вып. 169: Вычислительные системы. Новосибирск. 2001. С. 3-19.

75. Москвитин, А. А. Три взгляда на преподавание информатики. Методика преподавания информатики / А. А. Москвитин // Международная конференция «Новые информационные технологии в университетском образовании». Тез. докл. Новосибирск, 2001. С. 136-37.

76. Москвитин, А. А., Тимофеева, М. К. Особенности диалога в языках спецификаций задач / А. А. Москвитин, М. К. Тимофеева // Модели когнитивных процессов. Вып. 168: Вычислительные системы. Новосибирск, 2001. С. 3-18.

77. Москвитин, А. А. Измерение интеллектуальных ресурсов пользователей в языках спецификаций задач / А. А. Москвитин // Вычислительные технологии, Т. 7. N 4. Новосибирск, 2002. С. 71-83.

78. Москвитин, А. А. Языки спецификаций задач в преподавании информатики / А. А. Москвитин // Международная конференция «Новые информационные технологии в университетском образовании». Тез. докл. Кемерово, 2002. С. 138-140.

79. Москвитин, А. А. Задачно-ориентированный подход в информатике / А. А. Москвитин // Четвертая Всероссийская МегпеЬконференция. «Компьютерное и математическое моделирование в естественных и технических науках». Вып. 16. Тез. докл. Тамбов, 2002. С. 12-17.

80. Москвитин, А. А. Диалог в языках спецификаций задач / А. А. Москвитин // Сибирский журнал индустриальной математики. Новосибирск, 2002. Т. 5. N 3(11). С. 139-145.

81. Москвитин, А. А. Методологические аспекты языков спецификаций задач сложных систем / А. А. Москвитин // Поиск математических закономерностей, Новосибирск, ИМ СО РАН, 2002, Т. 1. С. 173-186

82. Москвитин, А. А.Задачный подход в информатике / А. А. Москвитин. Новосибирск, НГУ, 2003. 200 с.

83. Москвитин, А. А. Задачный подход в информационных технологиях / А. А. Москвитин // Международный форум «Новые инфокоммуника-ционные технологии: достижения, проблемы, перспективы». Тез. докл. Новосибирск, 2003. С. 100-101.

84. Москвитин, А. А. Методологические основы языков спецификаций задач, ориентированных на пользователя / А. А. Москвитин // 81СРИО'04. 2004. С. 354-395.

85. Нагао М. и др. Структуры и базы данных / Нагао М., Катаяма Т., Уэмура С. М.: Мир, 1986. 416 с.

86. Непейвода, Н. Н., Свириденко, Д. И. Логичекая точка зрения на программирование / Н. Н. Непейвода, Д. И. Свириденко // Новосибирск, 1981. Ч. I. 49 е., Ч. II. 51 с. (Препринт / АН СССР. Сиб.отд-ние. Ин-т математики).

87. Непейвода, Н. Н., Свириденко, Д. И. К теории синтеза программ / Н. Н. Непейвода, Д. И. Свириденко // Математическая логика и ее приложения: Труды Института математики АН СССР. Сибирское отделение. Т. 2. Новосибирск, 1982. С. 159-175.

88. Непейвода, Н. Н. Анализ методов доказательного программирования в конструктивных логиках: Автореф. дис. . д-ра физ.-мат. Наук / Н. Н. Непейвода. Новосибирск, 1988. 27 с.

89. Непомнящий, В. А. Практические метода верификации программ / В. А. Непомнящий // Кибернетика, 1984, N2. С. 21-28.

90. Непомнящий, В. А., Сабельфельд, В. К. Трансформационный синтез корректных программ / В. А. Непомнящий, В. К. Сабедьфельд // Прикладная информатика. 1986. Вып. 2(11). С. 19-38.

91. Оптнер, С. Системный анализ для решения деловых и промышленных проблем / С. Оптнер. М.: Сов. Радио, 1969. 148 с.

92. Пайл, Я. АДА язык встроенных систем / Я. Пайл // М.: Финансы и статистика, 1984. 238 с.

93. Панащук, С. А. Разработка информационных систем с использованием СА8Е-системы 8Пуеггип / С. А. Панащук // СУБД, 1995, №3. С. 41-47.

94. Персональные компьютеры. Материалы Всесоюзной конференции. «Диалог-82-Микро». Пущино, 1983. 72 с.

95. Перязев, Н. А. Основы теории булевых функций // Н. А. Перязев // М.: Физматлит, 1999. 112 с.

96. Пойа, Д. Как решать задачу / Д. Пойа // М.: Учпедгиз, 1961. 207 с.

97. Поляков, В. Г. Формула успеха в бизнесе. Практическое руководство для российского менеджера / В. Г. Поляков // Новосибирск. ЭКОР, 1993. 127 с.

98. Попов, Э. В. Общение с ЭВМ на естественном языке / Э. В. Попов // М.: Наука, 1982. 360 с.

99. Поттосин, И. В. О критериях добротности программ / И. В. Поттосин // Системная информатика. Вып.6. 1989. С. 90-122.

100. Практическое руководство по программированию / Б. Мик,. П. Хит, Н Рашби и др. М.: Радио и связь, 1985. 168 с.

101. Проблемно-ориентированный подход к науке: Философия математики как концептуальный прагматизм / Отв. ред. В.В.Целищев. Новосибирск: Наука, 2001. 154 с.

102. Психологические измерения: Сб. науч. Тр. / Под ред Л.Д. Мешалкина; М.: Мир, 1967. 196 с.

103. Редько, В. Н. Основания композиционного программирования / В. Н. Редько // Программирование. 1979. N 3 С. 3-13.

104. Редько, В. Н., Никитченко, Н. С. Композиционные аспекты програм-мологии / В. Н. Редько, Н. С. Никитченко // Кибернетика. 1987. № 5. С. 49-56.

105. Робинсон, А. Введение в теорию моделей и метаматематику алгебры / А. Робинсон . М.: Наука, 1967. 376 с.

106. Савельев, А. Я. Персональный компьютер для всех / А. Я. Савельев, Б. А. Сазонов, С. Э. Лукьянов. М.: Высшая школа, 1991. 191 с.

107. Самохвалов, К. Ф. Относительно конструктивные системы / К. Ф. Самохвалов // Языки спецификаций и логическое программирование. Вып. 124: Вычислительные системы. Новосибирск, 1988. С. 99-113.

108. Сазонов, В. Ю., Свириденко, Д. И. Абстрактная выводимость и теория областей / В. Ю. Сазонов, Д. И. Свириденко // Тез. докл. VII Всесоюзной конференции по математической логике. Новосибирск, 1984. С. 58.

109. Грани творчества. Секция информатики / В. Л. Селиванов, А. А. Мо-сквитин, А. А. Шрайнер, В. Н. Тимкин. Новосибирск, 1997. 38 с.

110. Свириденко, Д. И. О природе программирования / Д. И. Свитиденко // Математическое обеспечение ВС из микро-ЭВМ. Вып. 96: Вычислительные системы. Новосибирск, 1983. С. 51-74.

111. Свириденко, Д. И. Проект СИГМА. Цели и задачи / Д. И. Свириденкео // Логические методы в программировании. Вып. 133: Вычислительные системы. Новосибирск, 1990. С. 68-94.

112. Степанов, А. М. Экспериментальная база данных с запросами на естественном языке / А. М. Степанов. Новосибирск, 1978. С. 96-120.

113. Стерлинг, Л., Шапиро, Э. Искусство программирования на языке Пролог / Л. Стерлинг, Э. Шапиро. М.: Мир, 1990. 235 с.

114. Суппес, П., Зинес, Дж. Основы теории измерений / П. Суппес, Дж. Зинес // Психологические измерения. М.: Мир, 1967. С. 9-110.

115. Теория алгоритмов и программ. Т. 1-3. / Под ред. Я.М. Барздиня, Рига, 1974, 1975, 1977 (Латв. госуниверситет).

116. Толковый словарь по вычислительной технике и программированию (основные термины) / Под ред. М. Р. Шура-Бура. М.: Русский язык, 1988.222 с.

117. Тыугу, Э. X. Концептуальное программирование / Э. X. Тыугу. М.: Наука, 1984.256 с.

118. Успенский, В. А., Семенов, А. Л. Теория алгоритмов: ее основные открытия и приложения / В. А. Успенский, А. Л. Семенов // Алгоритмы в современной математике и ее приложениях. 4.1. Новосибирск, 1982. С. 99-342.

119. Филд, А., Харрисон, П. Функциональное программирование / А. Филд, П. Харрисон. М.: Мир, 1993. 637 с.

120. Фокс, Дж. Программное обеспечение и его разработка / Дж. Фокс. М.: Мир, 1985. 568 с.

121. Хендерсон, П. Функциональное программирование. Применение и реализация / П. Хендерсон. М.: Мир, 1983. 349 с.

122. Челпанов, Г. Введение в экспериментальную психологию / Г. Челпа-нов. М., 1916. 293 с.

123. Шенк, Р. Обработка концептуальной информации / Р. Шенк. М.: Энергия, 1980.360 с.

124. Шеннон, К. Работы по теории информации и кибернетики / К. Шеннон. М.: Издательство иностранной литературы, 1963. 830 с.

125. ЭВМ пятого поколения. Концепции, проблемы, перспективы / Под ред. Мотто-ока. М.: Финансы и статистика, 1984. 110 с.

126. Языки программирования. Ада, Си, Паскаль. Сравнение и оценка / Под ред. А. Р. Фьюэра, Н. Джехани. М.: Радио и связь, 1989. 368 с.

127. Язык Пролог в пятом поколении ЭВМ: Сб. ст. / Сост. Н. И. Ильинский. М.: Мир, 1988. 501 с.

128. Analogical and Inductive Inferece / К. P. Jantke (Ed.) // Lect. Notes in Al. 1989. N397. 338 p.

129. Angluin, D.; Smith, С. H. Inductive inference: theory and methods // Computing Serveys. 1983. Vol. 15. P. 237-269.

130. Ansari, M.; Rusinkiewicz, M.; Ness, L. and Sheth, A. Executing Multidata-base Transactions. In Proceedings of the 25th International Conference on System Sciences, Hawaii, January 1992.

131. Apt, K. P.; van Emden, M. H. Contributions to the theory of logic programming//J. ASM. 1982. Vol. 29. P. 841-863.

132. Attie, P.; Singh, M.; Sheth, A. and Rusinkiewicz, M. Specifying and Enforcing Intertask Dependencies. In Proceedings of the 19th VLDB Conference, 1993.

133. Backus, J. Can programming be liberated from the von Neumann Style? A functional Style and its algebra of Programms.-Comm. ACM, 1978, Vol. 21. P. 613-641.

134. Bates, J. L.; Constable, R. L. Proofs as programs // ACM Trans. Programming Languages and Systems. 1985. Vol. 7, N1. P. 113-136.

135. Bauer, F. L.; Moller, B.; Partsch, H.; Pepper P. Formal program construction by transformations computer-aided, intuition-guided programming // IEEE Transactions on Software Engineering. 1989. Vol. 15. N 2. P. 165-180.

136. Bauer, E. I.; Wossner, H. Algorithmic Language and program development. //Berlin-Heidelberg-New York: Tpringer-Verlag, 1982. 497 p.

137. Beeson, M. Foundation of constructive mathematics // Mathematical Studies. Berlin: Springer Verlag. 1985.

138. Beeson, M. Proving programs and programming proofs // Logic, Methodology and Philosophy of Science.VII. Studies in Logic and Foundations of Mathematics. Vol. 114. Amsterdam: North-Holland, 1986. P. 51-82.

139. Blikle, A. MetaSoft Primer, Towards a Metalanguage for Applied Denota-tional Semantics // Lect. Notes in Comp. Sci. 1987. N 288. P. 81-86.

140. Booch, G.; Rumbaugh, J.; Jacobson I. The Unified Software Development Process. Addison-Wesley. 1999.

141. Burstall, R. M.; Darlngton, J. Transformation for developing recursive programs // J.ACM. 1977. Vol. 24. N 1. P. 44-67.

142. Clark, K. L.; Darlington, J. Algorithm classification trough synthesis // The Computer Journal. 1980. Vol. 23. N1. P. 61-65.

143. Clocksin, W. F.; Mellish C. T. Programming in Prolog. Berlin

144. Heidelberg-New York: Springer-Verlag, 1981. 327 p.

145. Constable, R. L. Constructive mathematics and automatic program writes //

146. Proc.of IFIP'71. Amsterdam: North-Holland, 1971. P. 229-233.

147. Constable, R. L.; Zlatin, D. R. The type theory of PL/CV3 //Lect. Notes in

148. Comp. Sci. 1982. Vol. 131. P. 72-93.

149. Dummett, M. Wang's paradox // Synthese. 1975. Vol. 30. P. 301-324. Dershowitz, N.; Plaisted, D. A. Equational programming. //Machine Intelligence. 1987. Vol. II. P. 21-56.

150. Dershowitz, N.; Sivakumar, G. Solving goals in equational languages // Lect. Notes in Comp. Sci. I987.N.308. P. 45-55.

151. Freivalds, R.; Kinber, E. B.; Wiehagen, R. Inductive inference from good examples //Lect. Notes in AI. 1989. N 397. P. 1-17.

152. Current trends in programming methodology. Vol. 4: Data structures. Englewood Cliffs, NY; Prentice-Hall, 1978. P. 80-114.

153. Gordon, M. J.; Milner, A. J.; Wadsworth, C. P. Edinburgh LCE // Lect. Notes in Comp.Sei. 1979. Vol. 78. 160 p.

154. Goto, S. Program synthesis from natural deduction proofs // Proc. of the 6th Internat.Joint Conf. on Articial Intelligence. Amsterdam, 1979. Vol. 2. P. 339-341.

155. Goncharov, S. S.; Sviridenko, D. I. Theoretical aspects of E-programming // Lect.Notes in Comp.Sci. 1986, Vol.215. P. 169-179.

156. Goncharov, S. S.; Ershov, Y. L.; Sviridenko, D. I. Semantic programming // roc. 10th World Congress Information Processing 86. Amsterdam. 1986. P. 1093-1100.

157. Hayashi, T. Extracting LISP-programs from proofs // PRIMS, Kyoto University. 1983. Vol.19, N I. P. 169-191.

158. Hogger, C. Introduction to logic programming. London: Academic Press, 1984. 278 p.

159. Hoffmann, C. M.; O'Donnell, M. J. Programming with equations // ACM Trans.Programming Languages and Systems. 1987. Vol. 4. N 1. P. 83-112.

160. Howard, W. A. The formulae-as-types notion of construction // Festschrift on the occasion of Curry's 80th birthday. N.Y., 1980. P. 83-112.

161. Kolmogoroff, A. Zur Deutung der intuitionistischen Logic. Heiting, Die formalin Regelen der intuitionistischen Logik, Sitzel. Pens. Anad. (1930), I, S. 42: II. S. 57; III.S.158.

162. Kowalski, R. Logic Programming. In: Information Processing 83 (IFIP-83). Amsterdam, North-Holland, 1983. P. 133-145.

163. Krishnakumar, N.; Sheth, A. Specifying Multi-system Workflow Applications in METEOR. Bellcore, Technical Memorandum, 1994.

164. Kzrywda, Andrzej Concurrent execution of transactional workflows. Master's thesis, University of Houston, May 1994.

165. Lloyd, J. W. Foundation of logic programming. Berlin: Springer-Verlag, 1984. 124 p.

166. Manna, Z.; Waldinger, R. Synthesis: dreams —» programs // IEEE Trans, on Software Eng. 1979. Vol. SE-5. N4. P. 294-328.

167. Martin-Lof, P. An intuitionistic theory of types: predicative part // Logic Coll.73. Amsterdam: North-Holland, 1975. P. 73-119.

168. Martin-Lof, P. Constructive mathematics and computer programming // Logic, Methodology and Philosophy of Science. VI. Amsterdam: North-Holland. 1982. P. 153-179.

169. McCartny, J.; Abrahams, P. W.; Edwards, D. J.; Hart, T. P.; Levin, M. I. LISP 1.5 programmers manual, MIT Press, Cambridge, MA. 1965.

170. Middelburg, C. A. VVSI: A language for structured VDM Specifications // Formal Aspects of Computing. 1989. Vol. 1. N 1. P. 115-136.

171. Moskvitin, A. A. User-oriented task specification languages // Of the Second international scientific conference in the republic of Kazakhstan. The informative technologies and control. Almaty, 1999. P. 225-227.

172. Nielsen, M.; Havelund, K.; Wagner, K. R.; George, Ch. The RAISE language, method and tools // Formal Aspects of Computing. 1989. Vol. 1. N l.P. 85-114.

173. O'Donnell, M. J. Equational logic as a programming language. Cambridge, Mass: MIT Press, 1985. 212 p.

174. Partsch, H. The CIP transformation system // Program transformation and program environment. Rept.Workshop NATO Adv.Res., Munich, 1983. Berlin, a.o. 1984. P. 305-322.

175. Privara, I. PROGRESS system podporujuci systematicku konstrukciu programu z formalnych specifikacii // Programovacie a databazove sys-temy, projekt G a projeckt Progress, Vyskumna praca Y, VUSKI-AR, Bratislava. 1984. P. 83-119.

176. Sato, M. Towards a mathematical theory of program synthesis I I Proc. Internal Joint Conf. on Artificial Intelligence. Tokyo. 1979. P. 757-762.

177. Scherlis, W. I.; Scott, D. S. First stepts towards inferential programming. In: Information Processing 83 (IFIP-83). Amsterdam, Worth-Holland, 1983. P. 199-212.

178. Sheth, A. and Kalinichenko, L. Information Modeling in Multidatabase Systems: Beyond Data Modeling. // In Proceedings of the 1st International Conference on Information and Knowledge Management, November 1992.

179. The Munich project CIP, vol. 1: The wide spectrum language CIP-L // Lect. Notes in Сотр. Sci. 1985. Vol. 183. 276 p.

180. Tomlinson, C.; Attie, P.; Cannata, P.; Meridith, G.; Sheth, A.; Singh, M.; Woelk, D. Workflow Support in Carnot. In Data Engineering Bulletin, June 1993. P. 33-36.

181. Tyugu, E. H.; Matskin, M. В.; Penjam, J. E.; Fomois, P. U. NUT an object-oriented language // Computer and Artificial Intelligence. 1986. Vol. 5. N6. P. 521-542.

182. VDM A formal method at work / Bjorner D., Jones С. В., MacAirchin-nigh M., Neuhold E. J. (eds) // Lect. Notes in Сотр. Sci. 1987. N 252.

183. Wirth, N. Program development by step-wise refinement // Commun.ACM. 1974. Vol. 14. P. 221-227.

184. Warren, D. H. D. Logic Programming and Compiler Writing, Software-Practice and Experience 10, Number II, 1980. P. 97-125.

185. Zadeh, L. A. Fuzzy logic = computing with words // IEEE Trans, on Fuzzy Systems, 1996. Vol. 4. 2. P. 103-111.

186. Базовый курс информатики: Алгоритмизация и программирование / Сост. С. С. Гончаров, А. А. Москвитин, Ю. И. Молородов и др.; НГУ. Новосибирск, 2003. 100 с.

187. Москвитин, А.А. Некоторые особенности заданного подхода в информатике / А. А. Москвитин // Труды Байкальской Всероссийской конференции с международным участием «Информационные и математические технологии». Иркутск: ИСЭМ СО РАН, 2004. с. 195-205.