- •Владимир Паронджанов
- •Оглавление
- •Глава 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
Шампур-схема как абстрактная модель программы
Уже говорилось, что для видеопрограммирования характерно “расщепление синтаксиса”. Синтаксис S распадается на визуальный синтаксис S0, определяющий правила построения шампур-схем, и текстовый синтаксис S1, задающий алфавит текстоэлементов и правила записи текстовых операторов внутри икон. Исходя из этого, можно сказать, чтошампур-программа Всостоит из двух частей: В0и В1, где В0— шампур-схема с синтаксисом S0; B1— текстовая часть программы, т. е. совокупный текст, находящийся во всех иконах программы, определяемый синтаксисом S1.
Бросается в глаза несомненное сходство между шампур-схемами и схемами программ. Заметив эту аналогию и повторяя — с некоторыми, почти очевидными изменениями — общую канву рассуждений, принятую в схематологии [7], можно сделать вывод, что шампур-схема В0описывает уже не одну программу, а целый класс программ, т. е. является полипрограммой, а шампур-язык служит мультиязыком — языком полипрограммирования [8].
Класс шампур-схем является подклассом класса крупноблочных схем, по степени абстрактности занимающий промежуточное положение где-то между схемами Мартынюка и стандартными схемами. Связь между шампур-схемами и схемами программ имеет фундаментальный характер и порождает ряд интересных проблем, связанных, в частности, с тем, что “задача эффективизации транслируемых программ перерастает в задачу автоматизации конструирования качественных программ” [8].
С точки зрения теории видеопрограммирования, граф-схемы, используемые в (текстовом) теоретическом программировании, обладают недостатком — как и обычные блок-схемы прикладного программирования, они являются неформальными. Хотя в работах А. Ершова сделан определенный шаг к формализации граф-схем, однако предложенное им решение [9] нельзя признать удовлетворительным, ибо использованный Ершовым визуальный синтаксис граф-схем не позволяет получитьоднозначную, строго детерминированную визуальную конфигурацию (топологию) граф-схем и, следовательно, не дает единственного решения визуальной задачи.
Впрочем, Ершов и не ставил перед собой подобных задач. Однако для наших целей строгая формализация визуального синтаксиса блок-схем (включая граф-схемы) играет принципиальную роль.
Преобразование шампур-схемы в шампур-программу
Подчеркнем еще раз, что построенный нами язык (шампур-язык) — это не язык программирования, а язык крупноблочных схем программ, т. е. язык полипрограммирования. Однако его можно легко превратитьв язык программирования, причем сделать это многими способами. Для этого необходимо дополнительно задать текстовый синтаксис S1и семантику Q1текстовых операторов, помещаемых в иконах шампур-схемы. Например, если взять текстовый синтаксис и семантику, соответствующие языкуПАСКАЛЬ, получим язык визуального программирования, который можно назвать “шампур-паскаль”. Аналогично можно построить языки шампур-бейсик, шампур-си и т. д.
Используя терминологию схематологии, можно сказать, что шампур-программа есть интерпретированная шампур-схема, однако понятие интерпретации в нашем случае заметно отличается от классического [7]. Детальное рассмотрение вопроса выходит за рамки книги, ограничимся лишь кратким замечанием. Чтобы задать интерпретацию шампур-схемы и превратить ее в шампур-программу, необходимо, во-первых, доопределить шампур-язык и превратить его в язык программирования, описав синтаксис S1и семантикуQ1текстовых операторов. Во-вторых, следует указать конкретные текстовые операторы, записанные в соответствии с синтаксисомS1и размещенные в иконах шампур-схемыВ0.Тем самым будет задана текстовая часть В1шампур-программы В. Таким образом, интерпретация шампур-схемы определяется как тройка <S1,Q1,B1>.
Отсюда вытекает следующее очевидное замечание. Поскольку шампур-язык есть абстрактная модель любого императивного языка программирования (импер-языка), постольку импер-язык есть интерпретированный шампур-язык. При этом интерпретация шампур-языка, превращающая его в конкретный импер-язык, определяется как пара < S1, Q1 >.