Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги_docv / Паронджанов Как улучшить работу ума.doc
Скачиваний:
337
Добавлен:
21.03.2015
Размер:
15.07 Mб
Скачать

Абстрактные Дракон-схемы

В этом параграфе мы рассмотрим преобразование визуальной программы на языке ДРАКОН-2 в текстовую программу наБЕЙСИКе. Это преобразование полезно в двух отношениях: оно позволит глубже уяснить суть визуализации и познакомиться с важным понятиемабстрактной дракон-схемы.

В качестве примера возьмем школьную программу под названием “Игра.угадайка” и напишем ее на языке ДРАКОН-2 (рис. 96). Затем полностью устраним из нее текст и получим чертеж-слепыш, который называется “абстрактная дракон-схема” (рис. 97). Эта схема представляет собой инвариант программы, который можно за два шага преобразовать в программу на любом языке программирования.

Выберем в качестве цели язык БЕЙСИКи приступим к делу. На первом шаге заполним пустые иконы абстрактной схемы текстом на языке БЕЙСИК. В результате получится эквивалентная программа на языкеДРАКОН-БЕЙСИК (рис. 98). На втором шаге переходим к обычной бейсик-программе (мы сознательно выбрали старомодную версию БЕЙСИКа, чтобы для разнообразия продемонстрировать использование операторовgotoпри описании эквивалента дракон-программы) — см. рис. 99.

Философия языка Дракон

Любой императивный язык (СИ,ПАСКАЛЬ,АДА,МОДУЛА,БЕЙСИК и т. д.) можно разбить на три части, три относительно самостоятельных языка: маршрутный, командный и декларативный.

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

Поясним сказанное на примере. Абстрактная дракон-схема, приведенная на рис. 97, есть некоторая “фраза” маршрутного языка. Чтобы сделать ее содержательной, внутри икон следует поместить текст. Этот текст пишется на командном языке. Однако описания данных и классов иногда целесообразно вынести за рамки дракон-схемы и поместить их где-нибудь в другом месте, например, в виде отдельной записи или таблицы.

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

Конструируя очередной язык дракон-семейства, можно выбирать командный и декларативный подъязыки любым способом (заимствуя из других языков или выдумывая заново). Благодаря этому обеспечивается богатство возможностей ДРАКОНАи гибкая настройка на различные приложения. Таким образом, дракон-семейство имеет только одно жесткое звено — маршрутный язык, который есть не что иное,как визуальные компоненты ДРАКОНА (визуальный синтаксис и семантика).

Маршрутный язык — это визуальный стандарт дракон-семейства, поддерживаемый визуальным дракон-редактором (см. гл. 14), который имеет небольшие размеры и легко запоминается. Он является неизменной визитной карточкой ДРАКОНА, его стандартизованным зрительным образом (рис. 97).

Классификация знаний

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

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

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

  • В свою очередь императивные знания делятся на управляющие и командные.

  • В качестве критерия для альтернативной классификации предлагается вопрос: какие средства лучше использовать для представления знаний — графику или текст?

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

  • Таким образом, при альтернативной классификации знания делятся на визуальные (управляющие) и текстовые (командные и декла­ративные).

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

Выводы

  1. Если в нашем распоряжении имеется формальный визуальный синтаксис, то для построения визуального языка программирования достаточно построить формальный текстовый синтаксис. Мы убедились, что эта задача вполне разрешима, причем несколькими способами. В итоге образуется семейство языков программирования как оригинальных (ДРАКОН-2), так и гибридных (ДРАКОН-СИ,ДРАКОН-МОДУЛА,ДРАКОН-ПАСКАЛЬ,ДРАКОН-БЕЙСИКи т. д.).

  2. Можно утверждать, что понимаемость визуальных языков существенно выше, чем понимаемость их текстовых собратьев. Поэтому во всех случаях, когда понимаемость рассматривается как главный критерийкачества программ (а таких случаев немало), визуальные языки оказываются вне конкуренции. Здесь уместна оговорка: сам по себе термин “визуальный” ничего не гарантирует. Успех дела достигается за счет тщательного и скрупулезного применения методов науки о человеческих факторах (эргономики). Если говорить точнее, речь идет о синтезе методов информатики и эргономики, формировании нового междисциплинарного направления — инфоэргономики, перестройке всего здания современного программирования на эргономической основе.

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