Главная > Документ


Все мы невежды, но только в разных областях.

У. Роджерс

Глава 1. Общение в системе человек-ВМ

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

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

Работа с ВМ - это диалог с предложениями от человека по выполнению заданий и с ответами ВМ на предложения. Диалог естественным образом подразумевает язык, с помощью которого формируются сообщения от человека для ВМ и от ВМ для человека. Нельзя при этом забывать об общении человек-человек и ВМ-ВМ. Общение человек-человек подразумевает использование ЕЯ, а общение ВМ-ВМ - последовательности кодов. Указанные средства важны для информатики, поскольку они влияют на средства общения человек-ВМ и способствуют углубленному пониманию смысла передаваемых сообщений. Изучение диалога человек-ВМ представляется сложным и быстро прогрессирующим делом. История такого диалога насчитывает уже достаточное число лет [Бакланов78, Белнап81, Белый10, Бидер76, Богодист74, Брябрин81, Ван Дейк78, Виноград76, Денинг84, Косарев89, Коутс90, Красилов78б, Ловицкий80, Машина86, ПоповЭ82, Рубашкин89, Сильдмяэ83, Фреге77, Ыйм78].

1.1. Основные средства общения

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

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

Общение в системах человек-человек строится на основе широкого использования всех органов чувств человека: зрения, слуха, осязания, обоняния, вкуса и др. Знаки, как единицы сообщений, имеют самые разнообразные формы и структуры. Информатика стремится использовать те же основы общения в системах человек-ВМ. Полная реализация программы общения человек-человек в системах человек-ВМ не представляется пока возможным. Эта ситуация объясняется достаточно еще слабыми результатами развития СВТ и сложностями формализации процессов общения человек-человек. Сегодня еще имеется недостаточное представление о проблеме передачи интонации, длинного контекста и условностей общения. Пути развития средств общения в системах человек-ВМ можно проследить на имеющихся средствах. Конечно, Здесь не будет никакого касательства технических средств конструирования устройств общения. Здесь рассматриваются только информатические вопросы и проблемы общения.

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

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

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

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

Совсем плохо дело обстоит с обонятельным и вкусовым общением человека с ВМ, поскольку моделирование таких способностей человека не достигло уровня, на котором можно реализовать такие средства в системе человек-ВМ. Нужны ли такие средства общения? Бесспорно, нужны. Если человек эффективно их использует, то эффективность использования органов чувств человека можно повысить в связи с применением СВТ и в особенности системы человек-ВМ.

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

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

Конечно, основным рассматриваемым средством общения будем считать язык. Самая общая классификация языков известна и она определяется следующей фразой: языки подразделяются на рассудительные и командные языки. Язык рассуждений представляются текстами описания предметов, явлений и процессов, фактами на эти объекты. Языки команд также представляются текстами описания предписываемых действий и требуют специального рассмотрения. Языки команд ВМ освоены широко в программировании, проблема командного общения человека нуждается в поисках новых путей реализации, исключая простые средства типа команда человека – одна процедура или подпрограмма. А начнем именно с рассудительного языка, а затем рассматриваются некоторые командные языки. История информатики начиналась с использования командных языков. В первую очередь к языкам команд относятся языки программирования. Специальным языком команд является язык МГР, который описывается в главе 5.

Основные функции языка связаны с задачами, которые решаются в процессе коммуникации и познания. Язык выполняет следующие основные функции:

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

  2. Язык предназначен для изложения смысла, передачи осмысливаемых сообщений.

  3. Язык определяет предметы, явления и процессы.

  4. С помощью языка осуществляется накопление фактов.

  5. К нормативным функциям языка относится формирование норм (правил) для понимания сообщений (приемником).

  6. С помощью языка реализуется изменение мира слов путем передачи команд и оценок состояния (приемника).

  7. Языком осуществляется выражение разнообразных чувств, отношений к реальному миру.

Все эти функции можно усмотреть при неформальном и формальном описании ЯПП.

1.2. Классификация языков общения в системе человек-ВМ. Языки ФРАК

Классификация языков. Существуют самые разнообразные классификации языков общения в системе человек-ВМ. Каждая из них удовлетворяет какому-либо критерию или признаку. Как было отмечено, в информатике рассматриваются два основных класса языков: рассудительные и командные. Рассудительные языки охватываются средствами ЯПП. Для командных языков будем придерживаться простейшей классификации: языки кодов, языки ассемблера (автокоды), языки ФРАК, ЯВУ, ЯПП и ЕЯ. Если рассматривать с конца данного перечисления, то ЕЯ считается известным языком, ЯПП изучается в данном томе, ЯВУ - известны программистам, а прямому пользователю знание их не обязательно, ФРАК представлен в самых общих чертах в данном разделе, коды и автокоды отчасти будут рассмотрены в томе 6. В этой классификации отражена история развития информатики программирования. С каждым уровнем классификации связано появление нового способа написания программ ВМ. Языки кодов выражают язык ВМ, в них используются цифры в некоторой системе счисления - коды адресов ячеек и коды команд ВМ. Автокоды используют символьное обозначение для адресов и кодов команд, что является нововведением в программировании символического кодирования. В автокодах используются слова и знаки (идентификаторы) в качестве символьного обозначения. ФРАК исключает покомандное написание программы и использует формулы для программирования вычислений, что является нововведением в программировании формульного кодирования (как в математике). ЯВУ использует типы данных и операторы - обобщение команд ВМ, что является нововведением в программировании понятия оператора А.А. Ляпунова. ЯПП использует часть ЕЯ, в которой выделены термины предметов и действий, что является нововведением в программировании понятия термина и его смысла. Грамматика ЕЯ включает правила СиГ, что является нововведением в информатике является грамотность в написании мыслей для передачи их в Интеллсист.

Иногда используют другие классификации. Вот несколько примеров признаков:

  • признак уровня языка:(низкий, высокий, сверхвысокий, промежуточный, эволюционный, диалект, с типизацией);

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

  • признак важности (поддержка, библиотека, преемственность, точность, надежность).

В статье [Любарский90] предложена такая классификация:

  • язык информационной потребности (у нас - это часть ЕЯ),

  • язык семантических групп (у нас - это ЯЛ) и язык семантических сетей (описание записей с полями),

  • язык синтаксических структур (у нас - это язык Марков),

  • язык доступа к данным,

  • язык проблемных сфер,

  • язык диспетчерских решений (у нас - это некоторый ЯПП),

  • язык представления ответов и язык форм отображения.

Иерархия этих языков отражается в конкретных реализациях подсистем Интеллсист в форме последовательного преобразования запроса пользователя по БЗ в ответ. Имеются и другие подходы к классификации. Все они отражают конкретные разработки так же, как и принятая здесь классификация для новых Интеллсист. Хоронить перечисленные признаки классификации языков нельзя, они сами отомрут, когда мода (практическая потребность) на них пройдет и не появится язык, покрывающий возможности имеющегося и находящегося в деле языка. Командные языки использовали и будут использовать как накопленный арсенал методов программирования, которые ориентированы на структурное, модульное, объектно-ориентированное, параллельное, графическое, картинное, предметное, синтезирующее представление команд при передаче ВМ алгоритмического знания. Устойчиво выживут только ЕЯ и близкие к нему языки.

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

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

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

Технология разработки управляющих программ описана в литературе достаточно широко [Анализ84, Берг76, Изерман84, Крамм89, Красилов79б, 81а, 81в, 81г, 83в, Тамм85]. Рассмотрим только один прием организации программирования встроенных ВМ. Он базируется на следующей идее. Поскольку встроенная ВМ ограничена по своим возможностям, для разработки программ используется универсальная ВМ в качестве инструментальной. На универсальной ВМ разрабатывается косвенная операционная система встроенной ВМ (КОС), которая включает:

  • транслятор языка ФРАК (в коды встроенной ВМ),

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

  • документатор объектных кодов,

  • интерпретатор кодов для отладочного исполнения,

  • имитатор внешних воздействий на встроенную ВМ,

  • средства отладки (обнаружение, локализация, индикация и информация об ошибке в программе),

  • генератор загружаемых кодов (для прошивки ППЗУ),

  • сервисные программы.

Именно поэтому такие операционные системы называются косвенными.

Языки ассемблера. Существенной проблемой разработки начального и во многих случаях функционального программного обеспечения проектируемой ВМ, в особенности входящей в состав систем реального времени, является проблема формирования эффективного языка программирования и отличного от языка машин. (Недостатки программирования в кодах ВМ известны.) Общепринятое решение проблемы - описание и реализация языка символьного кодирования (автокода 1:1 или ассемблерного языка), который обеспечивает использование словесных имен вместо кодовых адресов и чисел для обработки. Главный недостаток автокодов состоит в отсутствии рекурсивных определений для объектов и операций. Частично этот недостаток устраняется введением в автокод макроописаний и макрокоманд. Имеется и другой подход к увеличению изобразительных средств программы и к сохранению всех положительных свойств автокодов. Он связан с языками ФРАК.

Рассмотрим метод устранения большинства недостатков автокодов. Основой подхода к построению метода ФРАК является процедура сопоставления языков программирования высокого уровня и архитектуры конкретной ВМ. Результатом такого сопоставления являлись, к примеру, язык программирования PL 360, разработанного Н. Виртом для ЭВМ IBM серии 360. Далее будут рассмотрены и другие примеры. Основная цель подобных рассмотрений - подойти к таким средствам общения в системе человек-ВМ, которые обеспечивают максимальное приближение к ЕЯ. Исторически к этому многих привела, в частности, технология создания языков ФРАК. Именно эту веху желательно раскрыть. Заметим, что ФРАК можно использовать не только для разработки программ управляющих ВМ, но и для разработки программ, ориентированных на любой класс проблем.

В результате сопоставления языков программирования высокого уровня с архитектурой ВМ обычно разрабатывались машинно-ориентированные языки высокого уровня, сочетающие высокую эффективность реализации программ с изобразительными средствами ЯВУ. Такие языки именуются формульными автокодами, или сокращенно - ФРАК. Первая реализация языка ФРАК появилась в результате сопоставления языка Фортран и архитектуры ЭВМ БЭСМ-6. Язык был разработан В.Г. Суховым и получил название PL-БЭСМ-6. ФРАК является средством составления программ начального программного обеспечения, он используется системными программистами. Всего было разработано 5 языков ФРАК [Красилов74а, 74б, 78б, 81б]. Схематическое определение языков типа ФРАК можно пояснить следующим образом. ФРАК активно использует свойства и возможности кода и автокода:

  • явно или неявно (по умолчанию) предоставлять доступ ко всемоперациям и ресурсам ВМ,

  • определять все типы простых и некоторых составных данных, скоторыми может оперировать ВМ на базе реализованных в нейкоманд,

  • транслировать записи программ за 1 или 2 прохода,

  • получать кодовые программы с эффективностью 1:1 или снезначительной потерей в эффективности (на 5-10%).

ФРАК может включать в себя макросредства и возможности использования корреляции между командами ВМ. ФРАК активно использует свойства и изобразительные возможности языков высокого уровня и систематически применяет рекурсивные определения для конструирования объектов, операций и логики программ, он максимально использует опыт, приемы и обозначения ЯВУ. ФЯ ФРАК определяются как проекции языков типа Фортран, алгол-60 [Красилов67], алгол-68 [Красилов78в], PL\1 [Универс68] и др. на архитектуру ВМ. И это определение будет в дальнейшем уточняться через приемы конструирования и сравнения языка ФРАК с языками ассемблера и ЯВУ. Кроме этого ФРАК в конкретных условиях его применения использует ориентацию на область применения ВМ, на пользователя этой ВМ, обеспечивая сервисные средства для эффективного решения проблем системного программирования.

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

Ядро языка ФРАК определяет:

  • форматы только тех данных, над которыми в архитектуре ВМи операционной системе (если таковая имеется) определены операции, а изображаются они средствами ЯВУ;

  • операции и операторы, эквивалентные командам или наборам команд в отношении 1:1, одна операция : одна команда;

  • четыре группы операций: формульные, управляющие, специальные и вспомогательные;

  • форматы величин (переменных), имеющих адресуемые единицы памяти;

  • ключевые форматы операторов в соотношении 1:1, один ключ: однамашинная команда (ключ - это зарезервированное слово, или синтаксический символ языка ФРАК);

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

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

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



Скачать документ

Похожие документы:

  1. Информатика в семи томах том 3 концептуальная информатика

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

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

    Документ
    Излагается неформальное описание представления знаний различных видов на языке профессиональной прозы. Описание дано в полном соответствии с формальным изложением языка в томе 2.
  4. А а красилов информатика в семи томах том 1 основы информатики

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

    Книга
    Книга дает начальные сведения о новом определении информатики. Они необходимы для получения представлений о возможностях СВТ и человека, использующего или желающего использовать свой компьютер для принятия интеллектуальных решений
  6. Том 7 интеллектуальные системы (системы решения проблем) москва 1997 -2003

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

Другие похожие документы..