- •Владимир Паронджанов
- •Оглавление
- •Глава 1: На подступах к новому языку 25
- •Глава 2: Можно ли создать язык, улучшающий понимание и взаимопонимание? 29
- •Глава 3: Соображения, повлиявшие на создание языка Дракон 32
- •Глава 4: Понимание и взаимопонимание – ключевые проблемы информатики 43
- •Глава 5: Проблема улучшения работы ума: новый когнитивный подход 47
- •Глава 6: Изюминки языка Дракон 56
- •Глава 7: Эргономичные алгоритмы 77
- •Глава 8: Визуализация циклов 96
- •Глава 9: Визуализация логических формул 111
- •Глава 10: Что такое эргономичный текст? 122
- •Глава 12: Дружелюбное Программирование 142
- •Глава 17: Исчисление икон и попытка предсказать будущее 214
- •Глава 18: Место языка Дракон в системе человеческой культуры 223
- •Глава 19: Возможна ли эргономизация математики? 236
- •Глава 20: Можно ли стать интеллектуальным суперменом? 252
- •Глава 1 271
- •Легкомысленный словарик
- •Третий глаз для бизнесменови руководителей
- •Интеллектуальный терроризм: фантазия или реальность?(Вместо предисловия)
- •Почему умные люди страдают и гибнут?
- •Разве такая проблема существует?
- •Информационный стресс – зловещий спутник информационного общества
- •Камикадзе умственного труда
- •Что такое интеллектуальный терроризм?
- •Гуманитарная постановка задачи
- •Компьютерная мифология: облегчают ли компьютеры умственный труд?
- •Что такое интенсификация интеллекта?
- •Критерий Декарта и эргономизация науки
- •О чем эта книга?
- •Секреты мудрого дракона: объяснение на пальцах
- •Притча о том, как Господь Бог языки создавал
- •Смена терминов или изменение концепции?
- •Самая сложная вещь на свете
- •Зачем Дракону две головы?
- •Вы правы. Язык программирования — ваш враг. Но дракон— не язык программирования.Дракон— ваш друг
- •Справка о состоянии дел
- •Глава1: На подступах к новому языку
- •Зачем нужен язык Дракон?
- •В чем секрет Дракона? — в когнитивном подходе
- •Почему люди не интересуются собственным мозгом?
- •Станет ли Дракон чемпионом мира по критерию «понимаемость алгоритмов»?
- •На кого рассчитан язык Дракон?
- •Перечень задач, решаемых с помощью языка Дракон
- •Глава 2: Можно ли создать язык, улучшающий понимание и взаимопонимание?
- •Почему специалисты не понимают друг друга?
- •Язык Дракон как «эксперанто» делового мира
- •Что такое интеллектуальное взаимопонимание?
- •В чем особенность Дракона?
- •Глава3: Соображения, повлиявшие на создание языка Дракон
- •Что важнее: компьютеры или человеческий мозг?
- •Что такое производительность умственного труда?
- •Зависит ли производительность персонала от производительности компьютеров?
- •Можно ли увеличить скорость работы человеческого мозга?
- •Проблема формализации профессиональных знаний
- •Можно ли обойтись без когнитологов?
- •Чем отличается алгоритм от технологического процесса?
- •Что такое технологический язык?
- •Технологические и декларативные знания
- •Почему нельзя жить по-старому?
- •Социальные технологии и электронные методологии
- •Методология быстрой разработки системRad
- •Схемы действий и язык Дракон
- •Необходимость культурных изменений
- •Техноязык как элемент струкутуры
- •Глава 4: Понимание и взаимопонимание – ключевые проблемы информатики
- •Отсутствие понимания ведет к миллионным убыткам
- •Издевательство над здравым смыслом под названием «Абсолютная правильная программа»
- •Спецификации программ – вот главный «Гадючник»!
- •Спецификации программ и методология rad
- •Концепция когнитивного программирования
- •Глава 5: Проблема улучшения работы ума: новый когнитивный подход
- •Текст как зрительная сцена
- •Симультанное и сукцессивное восприятие
- •Когнитивный недостаток текстового представления знаний
- •Каким должен быть формат диосцены?
- •Когнитивные рекомендации
- •Зачем нужны психологические эксперименты?
- •Ошибка Джеймса Мартина
- •«Это чудакам-инженерам нужны большие чертежи, а мы, хитрецы-программисты, обойдемся маленькими»
- •Возможна ли стретегическая реформа мировой практики программирования
- •Глава6: Изюминки языка Дракон
- •Критика блок-схем
- •Преимущества Дракон-схем
- •Иконы и макроиконы
- •Зачем нужна ветка?
- •Как работает ветка?
- •Как следует располагать ветки в поле чертежа?
- •Что такое шапка?
- •Что лучшее: примитив или силуэт?
- •Как описать силуэт с помощью текстового языка?
- •Есть ли в алгоритме «Царская дорога»?
- •Главный маршрут силуэта
- •Пересечения линий? — боже упаси!
- •Визуальный и текстовый синтаксис Дракона
- •Семейство Дракон-языков
- •Глава 7: Эргономичные алгоритмы
- •Визуальная проверка алгоритмов
- •Что такое эргономичный алгоритм?
- •Чем отличается икона “Вопрос” от развилки?
- •Маршруты и формулы маршрутов
- •Что такое рокировка?
- •Использование рокировки для улучшения эргономичности
- •Вертикальное и горизонтальное объединение
- •Эргономичность литеральных алгоритмов
- •Что делать, если эргономические требования противоречат друг другу?
- •Икона-вставка как эргономический прием
- •Что такое подстановка?
- •Улучшение эргономичности алгоритмов с помощью цепочки эквивалентных преобразований
- •Глава8: Визуализация циклов
- •Обычный цикл
- •Переключатель и переключающий цикл
- •Цикл Для
- •Веточный цикл
- •Главный маршрут силуэта
- •Глава 9: Визуализация логических формул
- •Визуализация функции и
- •Визуализация функции или
- •Визуализация функции не
- •Визуализация сложных логических функций
- •Глава 10: Что такое эргономичный текст?
- •Можно ли сделать логические выражения эргономичными?
- •Пример для исследования эргономичности логических выражений
- •Логическое выражение с абстрактными идентификаторами
- •Логическое выражение с короткими смысловыми идентификаторами
- •Логическое выражение с длинными смысловыми идентификаторами
- •Важный момент, о котором часто забывают
- •Как присвоить значение логической переменной?
- •Правила записи рамочных логических выражений
- •Как построить эргономичный логический текст?
- •Г лава 11: Визуальные операторы реального времени
- •Список операторов реального времени
- •Операторы ввода-вывода
- •Оператор “Пауза”
- •Операторы “Пуск таймера” и “Синхронизатор”
- •Цикл Ждать
- •Оператор “Период”
- •Оператор “Параллельный процесс”
- •Особенности операторов реального времени
- •Глава 12: Дружелюбное Программирование
- •Гибридный язык программирования Дракон-Си
- •Гибридный язык программирования Дракон-Модула
- •Пример эргономической оптимизации программы
- •Диалоговые программы
- •Оператор “Сообщение”
- •Оператор “Запрос”
- •Описание данных
- •Идентификаторы
- •Примеры правильных идентификаторов
- •Примеры неправильных идентификаторов
- •Пример сокращения длины сложного понятия
- •Правила записи арифметических выражений в операторах присваивания
- •Обработка массивов
- •Абстрактные Дракон-схемы
- •Философия языка Дракон
- •Классификация знаний
- •Глава 13: Человеческая деятельность и формализация знаний: живописные примеры
- •Что такое профессиональные знания?
- •Учебные экспертные системы
- •Учебная экспертная система (программа на языке бейсик)
- •Визуализация экспертных систем
- •Визуализация описания технологических процессов
- •Что такое методология?
- •Визуализация методологий
- •Система “Человек—машина”
- •Визуализация биологических алгоритмов
- •Визуализация медицинских алгоритмов
- •Другие примеры визуализации
- •Описание структуры деятельности
- •Нужен ли стандарт для описания деятельности?
- •Глава 14: Визуальный дракон-редактор
- •Зачем нужен Дракон-редактор?
- •Заготовка-примитив и заготовка-силуэт
- •Что такое атом?
- •Пример построения Дракон-схемы «Примитив»
- •Операция «Пересадка лианы»
- •Операция “Заземление лианы”
- •Пример построения Дракон-программы «Силуэт»
- •Формирование надписей «Да» и «Нет»
- •Глава 15: Описание визуального синтаксиса языка Дракон
- •Общие понятия
- •Шампур-блок
- •Операция «Ввод атома»
- •Дополнительные сведения об атомах
- •Критические и нейтральные точки
- •Правила использования операции “ввод атома” при построении дракон-схемы
- •Операция с лианой
- •Пересадка лианы
- •Заземление лианы
- •Прочие операции
- •Основные результаты
- •Глава 16: Визуальное структурное программированиее
- •Постановка проблемы
- •Историческая справка
- •Отживающий метод?
- •Прав ли Игорь Вельбицкий?
- •Четыре принципа структуризации блок-схем, предложенные э.Дейкстрой
- •Почему научное сообщество не приняло видеоструктурную концепцию э.Дейкстры?
- •Парадокс структурного программирования
- •Плохие блокс-схемы или плохие стандарты?
- •Блок-схемы и теоретическое программирование
- •Новые цели стандартизации блок-схем
- •Чем отличаются блок-схемы от Дракон-схем?
- •В чем сходство визуального и текстового структурного программирования?
- •В чем различие визуального и текстовго структурного программирования? Структурные, лианные и адресные блоки
- •Операции с лианой и оператор goto
- •Является ли текстовое структурное программирование формальным методом?
- •Почему самолет не машет крыльями?
- •Глава 17: Исчисление икон и попытка предсказать будущее
- •Визуальное логическое исчисление
- •Общеизвестные сведения о математической логике
- •Об одном распространенном заблуждении
- •Принцип абсолютизации текста
- •Визуализация понятий математической логики
- •Исчисление икон
- •Еще раз о шампур-методе
- •Шампур-схема как абстрактная модель программы
- •Преобразование шампур-схемы в шампур-программу
- •Шампур-метод и докуазательство правильности программ
- •Возможна ли теория визуального программирования?
- •Гипотеза о будущем императивных языков программирования
- •Визуализация логики и интенсификация интеллектуальной деятельности
- •Глава 18: Место языка Дракон в системе человеческой культуры
- •Между сциллой и харибдой
- •Принцип структуризации деятельности
- •Генеральная концептуальная схема
- •Проблема деятельности в эргономике
- •Искусственный интеллект: алгоритмизация – это ночной кошмар!
- •Специалисты по ии: долой алгоритмизацию!
- •Инженерные психологи: алгоритмизация деятельности — наше спасение!
- •Работники образования: алгоритмизация — это хорошо!
- •Кто же прав: декларативисты или императивисты?
- •Эргономический анализ проектно-конструкторской деятельности
- •Подводные камни проектно-конструкторской деятельности
- •Почему взорвался Чернобыльский реактор? Традиционный подход к анализу причин чернобыльской аварии
- •Возможна ли гарантоспособная деятельность?
- •Принцип проектирования гарантоспособной деятельности
- •Гарантоспособный совокупный работник
- •Главное зло — плохо спроектированная деятельность творческого персонала
- •Сон разума рождает чудовищ
- •Интенсификация интеллекта и языки программирования
- •Улучшение работы ума — проблема номер один
- •Глава 19: Возможна ли эргономизация математики?
- •Почему Джойн фон Нейман провалился на экзамене?
- •Существует ли пропасть между математикой и эргономикой?
- •Алгебра Диофанта
- •Эргономический анализ алгебры Диофанта
- •Эргономизация алгебры после Диофанта
- •Осознание полезности эргономического поворота в математике
- •Эргономическая победа Лейбница
- •Методологическая ошибка историков математики
- •Аналогия между математической Диосценой и панелью отображения информации
- •Математическая и эргономическая эффективность
- •Как повысить производительность математического труда?
- •Два метода визуализации математики
- •Проект «Когнитивный стиль»(cognistyle)
- •Пример математической визуализации с помощью методаCognistyle
- •Глава 20: Можно ли стать интеллектуальным суперменом?
- •На пороге создания теории улучшения работы ума
- •Человеческий мозг нужно грамотно проектировать
- •Разгадка тайны человеческого интеллекта
- •Развитие и интенсификация интеллекта
- •Знаковая и предметная информация
- •Знаковое и предметное обеспечение информатики
- •Знаковая и предметная программа
- •Переломная веха в истории информатики
- •Одноглазые миссионеры, или заброшенное дитя информатики
- •Когнитивная письменность — новый способ представления знаний
- •“Кастрированный” интеллект
- •Что такое проектоника?
- •Проектоника и искусственный интеллект
- •Особенности проектоники
- •Микроинформация и микроителлект
- •Стратегическая интеллектуальная инициатива
- •Дорога в будущее(Вместо заключения) Интеллектуальные трудности как глобальная проблема
- •Вызов интеллектуального терроризма
- •Бессилия интеллекта
- •Цель — значительное улучшение интеллекта
- •Список литературы Интеллектуальный терроризм: фантазия или реальность?
- •Глава 1
- •Глава 3
- •Глава 5
- •Глава 6
- •Глава 13
- •Глава 16
- •Глава 17
- •Глава 18
- •Глава 19
- •Глава 20
- •Internet: http://www.Delo.Ane.Ru
Абстрактные Дракон-схемы
В этом параграфе мы рассмотрим преобразование визуальной программы на языке ДРАКОН-2 в текстовую программу наБЕЙСИКе. Это преобразование полезно в двух отношениях: оно позволит глубже уяснить суть визуализации и познакомиться с важным понятиемабстрактной дракон-схемы.
В качестве примера возьмем школьную программу под названием “Игра.угадайка” и напишем ее на языке ДРАКОН-2 (рис. 96). Затем полностью устраним из нее текст и получим чертеж-слепыш, который называется “абстрактная дракон-схема” (рис. 97). Эта схема представляет собой инвариант программы, который можно за два шага преобразовать в программу на любом языке программирования.
Выберем в качестве цели язык БЕЙСИКи приступим к делу. На первом шаге заполним пустые иконы абстрактной схемы текстом на языке БЕЙСИК. В результате получится эквивалентная программа на языкеДРАКОН-БЕЙСИК (рис. 98). На втором шаге переходим к обычной бейсик-программе (мы сознательно выбрали старомодную версию БЕЙСИКа, чтобы для разнообразия продемонстрировать использование операторовgotoпри описании эквивалента дракон-программы) — см. рис. 99.
Философия языка Дракон
Любой императивный язык (СИ,ПАСКАЛЬ,АДА,МОДУЛА,БЕЙСИК и т. д.) можно разбить на три части, три относительно самостоятельных языка: маршрутный, командный и декларативный.
Маршрутный язык— совокупность управляющих операторов.Командный языксодержит все неуправляющие операторы, например оператор присваивания, правила записи арифметических и логических выражений, идентификаторов, ключевые слова и т. д.Декларативный языкслужит для описания данных, классов и др.
Поясним сказанное на примере. Абстрактная дракон-схема, приведенная на рис. 97, есть некоторая “фраза” маршрутного языка. Чтобы сделать ее содержательной, внутри икон следует поместить текст. Этот текст пишется на командном языке. Однако описания данных и классов иногда целесообразно вынести за рамки дракон-схемы и поместить их где-нибудь в другом месте, например, в виде отдельной записи или таблицы.
Отсюда вытекает принцип разграничения трех подъязыков. Маршрутный язык — это язык “картинок” (абстрактных дракон-схем, в которых полностью отсутствует текст). Командный язык служит для записи текста внутри дракон-схемы, декларативный — для тех записей, которые можно вынести за ее пределы.
Конструируя очередной язык дракон-семейства, можно выбирать командный и декларативный подъязыки любым способом (заимствуя из других языков или выдумывая заново). Благодаря этому обеспечивается богатство возможностей ДРАКОНАи гибкая настройка на различные приложения. Таким образом, дракон-семейство имеет только одно жесткое звено — маршрутный язык, который есть не что иное,как визуальные компоненты ДРАКОНА (визуальный синтаксис и семантика).
Маршрутный язык — это визуальный стандарт дракон-семейства, поддерживаемый визуальным дракон-редактором (см. гл. 14), который имеет небольшие размеры и легко запоминается. Он является неизменной визитной карточкой ДРАКОНА, его стандартизованным зрительным образом (рис. 97).
Классификация знаний
Любая программа есть некоторая сумма знаний, которую можно расчленить на императивную и декларативную часть. Изложенные выше соображения позволяют уточнить этот тезис. Новый взгляд на проблему представлен на рис. 100 и сводится к следующему:
Для анализа знаний, содержащихся в исходном тексте компьютерной программы, написанной на императивном языке, целесообразно использовать две классификации: базовую и альтернативную.
Базовая классификация состоит в том, что все знания, содержащиеся в исходной программе, разбиваются на императивные и декларативные.
В свою очередь императивные знания делятся на управляющие и командные.
В качестве критерия для альтернативной классификации предлагается вопрос: какие средства лучше использовать для представления знаний — графику или текст?
Ответ состоит в следующем. Для представления управляющих знаний лучше применять графику (маршрутный язык), для командных и декларативных знаний — текст.
Таким образом, при альтернативной классификации знания делятся на визуальные (управляющие) и текстовые (командные и декларативные).
Напоследок добавим: использование текста для представления сложных управляющих знаний выглядит столь же нелепо, как попытка описать географическую карту словами. Тот факт, что текст все еще применяется для этой цели, можно объяснить только одним: программирование намного моложе географии!
Выводы
Если в нашем распоряжении имеется формальный визуальный синтаксис, то для построения визуального языка программирования достаточно построить формальный текстовый синтаксис. Мы убедились, что эта задача вполне разрешима, причем несколькими способами. В итоге образуется семейство языков программирования как оригинальных (ДРАКОН-2), так и гибридных (ДРАКОН-СИ,ДРАКОН-МОДУЛА,ДРАКОН-ПАСКАЛЬ,ДРАКОН-БЕЙСИКи т. д.).
Можно утверждать, что понимаемость визуальных языков существенно выше, чем понимаемость их текстовых собратьев. Поэтому во всех случаях, когда понимаемость рассматривается как главный критерийкачества программ (а таких случаев немало), визуальные языки оказываются вне конкуренции. Здесь уместна оговорка: сам по себе термин “визуальный” ничего не гарантирует. Успех дела достигается за счет тщательного и скрупулезного применения методов науки о человеческих факторах (эргономики). Если говорить точнее, речь идет о синтезе методов информатики и эргономики, формировании нового междисциплинарного направления — инфоэргономики, перестройке всего здания современного программирования на эргономической основе.
Создание любого языка программирования следующего поколения должно начинаться с анализа эргономических требований и заканчиваться оценкой полученных эргономических характеристик языка. Одно из основных препятствий для реализации этого плана состоит в инерции мышления многих специалистов, недооценке важности эргономических методов. Чтобы изменить сложившиеся стереотипы мышления, нужно внести серьезные изменения в программу и методы преподавания информатики в школе и вузе.