Уважаемые коллеги!
Это текст для Википедии.
Прошу критиковать.
Ваши замечания представляют для меня огромную ценность
_____________________________________________________________________
Содержание 1 Особенности
1.1 Язык ДРАКОН значительно облегчает алгоритмизацию и программирование
1.2 Двумерное структурное программирование
1.3 Графический и текстовый синтаксис языка ДРАКОН
1.4 Семейство ДРАКОН-языков
1.5 Гибридные языки ДРАКОН-семейства
1.6 Достоинства гибридных языков
1.7 Гибридные языки ДРАКОН-семейства и оператор GOTO
1.8 План развития и частичной унификации языков программирования
1.9 Целесообразно создать международный стандарт на дракон-схемы
[править]
Особенности [править]
Язык ДРАКОН значительно облегчает алгоритмизацию и программирование Существующие способы записи алгоритмов и программ (принятые во всем мире) слишком трудны для понимания и требуют неоправданно больших трудозатрат.
Это обстоятельство ставит непреодолимый барьер для многих специалистов, работа которых связана с алгоритмами, но которые не имеют резерва времени, чтобы научиться выражать свои профессиональные знания в форме алгоритмов и программ.
Язык ДРАКОН использует новую эргономичную нотацию (дракон-схемы) и за счет этого существенно облегчает алгоритмизацию и программирование. Благодаря использованию дракон-схем алгоритмы и программы становятся более понятными, доходчивыми, ясными, прозрачными.
В итоге ТРУДНЫЕ для понимания способы записи алгоритмов и программ заменяются на более ЛЕГКИЕ. Вследствие этого работники быстро овладевают дракон-схемами и успешно создают алгоритмы и прикладные программы без программистов или с их минимальным участием. Об этом свидетельствует 15-летний опыт эксплуатации Технологии ГРАФИТ-ФЛОКС в НПЦ автоматики и приборостроения им. Н. А. Пилюгина. Приведем цитату.
Цитата:
«ДРАКОН — очень легкий язык. Настолько легкий, что разработку многих компьютерных программ для космических ракет на практике ведут не программисты, а инженеры — по принципу „программирование без программистов“.
Причина частичного отказа от программистов проста. При решении практических прикладных задач инженеры досконально владеют материалом и прекрасно знают постановку задачи. В отличие от них программисты не знают физику процесса и становятся „лишними людьми“, без которых в ряде случаев (хотя и не всегда) вполне можно обойтись.
Это позволяет значительно сократить издержки, улучшить показатель „затраты — результат“, ускорить ход работ. И полностью избавиться от ошибок „испорченного телефона“, вызванных взаимным непониманием между программистами и инженерами».[10]
[править]
Двумерное структурное программирование 1.Процедурная часть языка ДРАКОН опирается на новый метод – двумерное структурное программирование.
2.Правила двумерного структурного программирования существенно отличаются от традиционного одномерного (текстового) структурного программирования.
3.Идеи структурного программирования разрабатывались, когда компьютерная графика фактически еще не существовала и основным инструментом алгоритмиста и программиста был одномерный (линейный или ступенчатый) текст.
4.До появления компьютерной графики методология текстового структурного программирования была наилучшим решением.
5.С появлением компьютерной графики ситуация изменилась. Появилась возможность заменить текстовые управляющие структуры на управляющую графику, то есть использовать двумерное структурное программирование.
6.Слабое место традиционного структурного программирования и текстового представления алгоритмов и программ заключается в недостатке выразительных средств. Следствием являются ограничения и запреты. Эти ограничения и запреты вытекают из природы текста, из природы текстового представления управляющих структур.
7.Недостаток выразительных средств, проявляющийся через ограничения и запреты, тормозит повышение производительности труда алгоритмистов и программистов.
8.В рамках текстового представления управляющих структур устранить эти ограничения и запреты невозможно. Чтобы добиться улучшения, надо перейти от одномерного (текстового) структурного программирования к двумерному (визуальному) структурному программированию.
9.Многие ограничения и запреты, неизбежные при текстовом структурном программировании, во многих случаях противоречат здравому смыслу, затрудняют понимание алгоритмов и программ, искажают нормальный ход человеческой мысли.
10.Недопустимо запрещать правильный процесс мышления. Его надо разрешить. Шампур-метод и язык ДРАКОН устраняют этот недостаток.
11.При использовании шампур-метода набор управляющих ключевых слов текстового структурного программирования становится ненужным.
12.При визуальном структурном подходе программист работает только с чертежом программы (дракон-схемой), не обращаясь к ее текстовому представлению. Точно так же программист, работающий, скажем, на Дельфи, не обращается к ассемблеру и машинному коду — они для него просто не существуют.
13.Во многих случаях (список которых еще предстоит уточнить) желательно отказаться от текстовых управляющих структур, заменив их управляющей графикой.
14.ДРАКОН — это не просто новый язык (новое семейство языков). Это новый взгляд на процедурное программирование. Если угодно — новое мировоззрение.
15.Наибольшую трудность в течение длительного времени представляли математика и эргономика блок-схем. Нужно было создать математически строгий метод формализации блок-схем, позволяющий превратить блок-схемы в программу, пригодную для ввода в компьютер и трансляции в объектный модуль программы.
16.Язык ДРАКОН позволил эффективно решить эту задачу.
17.Одновременно была решена задача эргономизации блок-схем, то есть задача приспособления блок-схем для наиболее удобного человеческого восприятия и понимания.[11]
[править]
Графический и текстовый синтаксис языка ДРАКОН ДРАКОН — графический (визуальный) язык, в котором используются два типа элементов:
• графические фигуры (иконы),
• текстовые надписи, расположенные внутри или снаружи икон (текстоэлементы).
Поэтому язык ДРАКОН имеет не один, а два синтаксиса: графический и текстовый.
Графический (визуальный) синтаксис охватывает алфавит икон, правила их размещения в поле чертежа и правила связи икон с помощью соединительных линий.
Текстовый синтаксис задает алфавит символов, правила их комбинирования и привязку к иконам. (Привязка необходима потому, что внутри разных икон используются разные типы выражений).[12][13]
[править]
Семейство ДРАКОН-языков ДРАКОН — не один язык, а целое семейство, которое может включать практически неограниченное число ДРАКОН-языков. Все языки ДРАКОН-семейства имеют одинаковый графический синтаксис, что обеспечивает зрительное сходство дракон-схем различных ДРАКОН-языков. Каждый язык семейства отличается тем, что имеет свой собственный текстовый синтаксис.
Строгое разграничение графического и текстового синтаксиса позволяет в максимальной степени расширить сферу применения языков семейства, обеспечивая гибкость и универсальность выразительных средств языка.
При этом единообразие правил графического синтаксиса семейства ДРАКОН-языков обеспечивает их концептуальное единство. А разнообразие текстовых правил (то есть возможность выбора любого текстового синтаксиса) определяет гибкость языка и легкую настройку на различные предметные и иные области.[14]
[править]
Гибридные языки ДРАКОН-семейства Процедурную часть языка Дракон можно присоединить к некоторым языкам программирования и получить так называемые гибридные языки:
язык Дракон + язык Бейсик = гибридный язык Дракон-Бейсик
язык Дракон + язык Си = гибридный язык Дракон-Си
язык Дракон + язык Java = гибридный язык Дракон-Java
язык Дракон + язык Си# = гибридный язык Дракон-Си#
язык Дракон + язык Питон = гибридный язык Дракон-Питон
язык Дракон + язык Perl = гибридный язык Дракон-Perl
язык Дракон + язык Ruby = гибридный язык Дракон-Ruby
язык Дракон + язык Ада = гибридный язык Дракон-Ада
язык Дракон + язык Оберон = гибридный язык Дракон-Оберон
язык Дракон + язык Tcl = гибридный язык Дракон-Tcl
и т.д.
Пример 1. При создании гибридного языка Дракон-Си необходимо, в частности, создать транслятор из дракон-схемы в исходный код языка Си. В этом случае Си является целевым языком.
Пример 2. При создании гибридного языка Дракон-Дельфи необходимо, в частности, создать транслятор из дракон-схемы в исходный код языка Дельфи. При этом Дельфи называется целевым языком.
При использовании гибридных языков исходным текстом программы считается дракон-схема и только она.
Еще один пример. Предположим, пользователь работает в связке ИС Дракон - Транслятор Дракон-Си - Keil. Понятно, что исходником служит дракон-схема. При отладке программы не следует вносить исправления в промежуточные текстовые Си-файлы. Все исправления нужно вносить в исходный код, то есть в дракон-схему.
Цитата:
Я уже больше года работаю на связке ИС Дракон - DrakonToC - Keil. И ни в коем случае не позволяю себе править промежуточные текстовые Си-файлы. Исходник - это Дракон-схема![15]
Подробнее см. [16]
[править]
Достоинства гибридных языков С точки зрения человеческого фактора, в истории развития языков программирования условно можно выделить два этапа.
На первом этапе появились языки высокого уровня, которые по сравнению ассемблером сделали исходный текст программы более понятным и удобным для человека. И значительно увеличили производительность труда программистов.
На втором этапе (который, по-видимому, только начинается) некоторые языки высокого уровня смогут работать в сочетании с языком ДРАКОН, образуя гибридные языки. При этом функция исходного кода программы переходит к дракон-схемам.
Это позволит отказаться от текстовых управляющих структур, используемых в языках высокого уровня, и заменить их на управляющую графику ДРАКОНа.
Что это даст? Исходный код программы станет еще более понятным и удобным для человека. И, следовательно, еще больше увеличится производительность труда программистов.
Цитата:
Как и все прочие языки, ДРАКОН опирается на математику и логику. Однако сверх того, он самым тщательным образом учитывает когнитивные вопросы. Благодаря систематическому использованию когнитивно-эргономических методов ДРАКОН приобрел уникальные эргономические характеристики. Можно предположить, что в будущем ДРАКОН сможет претендовать на звание чемпиона по критерию «понимаемость алгоритмов и программ» (в классе императивных языков) .
ДРАКОН можно определить как общедоступный визуальный язык, предназначенный для описания структуры деятельности, для систематизации, структуризации, наглядного представления и формализации императивных знаний, а также для проектирования, программирования, моделирования и обучения...
Человечность языка ДРАКОН, стремление создать максимальный комфорт для работы человеческого мозга, всемерная забота о повышении творческой продуктивности персонала позволяет надеяться, что ДРАКОН получит ... широкое применение в народном хозяйстве, бизнесе, обороне, науке и системе образования.
Используя не просто наглядные, а предельно наглядные формы представления знаний, облегчая работу мозга, ДРАКОН обеспечивает заметный рост производительности интеллектуального труда.
В основе языка ДРАКОН лежит идея когнитивной формализации знаний, позволяющая сочетать строгость логико-математической формализации с точным учетом когнитивных (познавательных) характеристик человека.[17]
[править]
Гибридные языки ДРАКОН-семейства и оператор GOTO Чтобы глубже понять роль оператора GOTO, можно выделить два этапа в истории развития языков программирования.
На первом этапе — после изобретения структурного программирования и призыва Эдсгера Дейкстры: «оператор go to должен быть отменен в языках программирования высокого уровня» [18] — начался процесс исключения GOTO из вновь создаваемых языков. Сегодня имеется целый ряд языков без GOTO: Java, Python, Tcl, Модула-2, Оберон и др.
На втором этапе появился язык ДРАКОН, в котором исключен не только GOTO, но и все остальные текстовые управляющие операторы. Начался постепенный переход к гибридным языкам с целью дальнейшего повышения производительности труда.
При этом открылись два обстоятельства. Транслятор из ДРАКОНа в целевой язык лучше всего делать с использованием GOTO, имеющемся в целевом языке. Если же оператор GOTO в целевом языке отсутствует, этот оператор приходится эмулировать. Это можно сделать, например, так.[19]
Подобная эмуляция оператора GOTO вносит ненужные трудности. Эти трудности сразу исчезают, если в целевом языке есть оператор GOTO. Следовательно, с точки зрения языка ДРАКОН, было бы лучше, если бы в целевом языке был предусмотрен оператор GOTO.
Как отмечает Петр Приклонский:
Цитата:
Оператор GOTO нежелательно использовать именно в текстовых языках, так как контроль за соблюдением структурности программы остается за исполнителем (программистом). В языке ДРАКОН есть свои собственные правила, позволяющие сохранять структурность.[20]
Отсюда следует предположительный вывод. Если гибридные языки ДРАКОН-семейства ощутимо повысят производительность труда программистов и со временем получат широкое распространение, это может послужить достаточным основанием, чтобы судьба оператора GOTO снова круто изменилась. Это значит, что в языки высокого уровня, по-видимому, снова будет введен некогда изгнанный оттуда оператор GOTO.
При описанных условиях ввод оператора GOTO не представляет никакой опасности. Он не приведет к нарушению структурности и появлению «спагетти», так как GOTO будет вводиться в текст целевого языка только автоматически в результате работы транслятора, а не в результате действий человека. Человек будет иметь доступ только к дракон-схеме.
В свою очередь, дракон-схема имеет надежную защиту от подобных неприятностей благодаря использованию ДВУМЕРНОГО структурного программирования. Принципы двумерного структурного программирования подробно описаны в литературе.[21][22][22а]
[править]
План развития и частичной унификации языков программированияОпыт разработки и использования языка ДРАКОН позволяет предложить план развития и частичной унификации языков высокого уровня из трех пунктов.
1.Использовать графический синтаксис языка ДРАКОН в качестве стандарта, позволяющего осуществить частичную унификацию языков высокого уровня.
2.Текстовый синтаксис следует заимствовать из целевого языка. При этом следует удалить все элементы текстового синтаксиса, которые заменяются управляющей графикой ДРАКОНа.
3.Преобразовать языки высокого уровня в гибридные языки. Метод преобразования описан в источниках.[23][24]
Как показывают первые опыты подобной работы, переход от языков высокого уровня к гибридным языкам свидетельствует о заметном повышении производительности труда.
[править]
Целесообразно создать международный стандарт на дракон-схемы Обоснование необходимости нового стандарта поясняется ниже.
Цитата:
2. Текстовое структурное программирование решило стоявшие перед ним исторические задачи, исчерпало свои эвристические возможности и, выполнив свою миссию, потеряло актуальность. В настоящее время точкой роста научного знания является визуальное структурное программирование.
3. При использовании шампур-метода набор ключевых слов классического структурного программирования становится ненужным. Благодаря этому создаются предпосылки, которые… позволят исключить ключевые слова и тем самым устранить путающий всех разнобой ключевых слов и структурных конструкций в разных языках программирования...
5. По эргономическим показателям визуальное структурное программирование существенно превосходит свой текстовый аналог...
7. Дальнейшее использование… блок-схем во всех случаях следует признать нецелесообразным.
8. Существующая литература по блок-схемам, включая международные и национальные стандарты, на 99% устарела.
9. Современные стандарты на блок-схемы объективно содействуют снижению качества соответствующей интеллектуальной продукции. Указанные стандарты игнорируют три важнейших принципа: структуризации, формализации и эргономизации.
10. Актуальной задачей является разработка новой системы международных и национальных стандартов…, свободных от перечисленных недостатков. В основу проекта новых стандартов целесообразно положить изложенные в этой книге правила визуального структурного программирования. Дракон-схемы наследуют… все достоинства блок-схем и устраняют их недостатки.[23]
Литература10.↑ Паронджанов В. Д. Дружелюбные алгоритмы, понятные каждому (Как улучшить работу ума без лишних хлопот). М.: ДМК-пресс, 2010. С. 13, 14 ISBN 978-5-94074-606-5
11.↑ Паронджанов В.Д. Теоретические основы языка ДРАКОН. Глава 36. #22. Замечания
12.↑ Паронджанов В.Д. Как улучшить работу ума. Алгоритмы без программистов - это очень просто! М.: Дело, 2001. — С. 101.
13.↑ Паронджанов В. Д. Дружелюбные алгоритмы, понятные каждому (Как улучшить работу ума без лишних хлопот). М.: ДМК-пресс, 2010. С. 80 ISBN 978-5-94074-606-5
14.↑ Паронджанов В. Д. Дружелюбные алгоритмы, понятные каждому (Как улучшить работу ума без лишних хлопот). М.: ДМК-пресс, 2010. — C. 80, 81. ISBN 978-5-94074-606-5
15.↑ Практический вывод по результатам эксплуатации системы ИС Дракон — Транслятор Дракон-Си — Keil.
16.↑ Приклонский П. Транслятор файла *.drt ИС Дракон в текст Си-программ
17.↑ Паронджанов В.Д. Как улучшить работу ума. Алгоритмы без программистов - это очень просто! М.: Дело, 2001. — С. 31, 32.
18.↑ Dijkstra E. W. Go To Statement Considered Harmful. // Communications of the ACM, Vol. 11, No. 3, March 1968, pp. 147-148.
19.↑ Эмуляция GOTO в языках Python и Tcl.
20.↑ Структурность в текстовых языках и языке ДРАКОН
21.↑ Паронджанов В.Д. Как улучшить работу ума. Алгоритмы без программистов - это очень просто! М.: Дело, 2001. — С. 226-266.
22.↑ Паронджанов В. Д. Дружелюбные алгоритмы, понятные каждому. М.: ДМК-пресс, 2010. — С. 325-351, 357-379. ISBN 978-5-94074-606-5
22а. Ермаков И.Е., Жигуненко Н.А. Двумерное структурное программирование; класс устремлённых графов. (Теоретические изыскания из опыта языка «ДРАКОН») // Сборник трудов V Международной конференции "Инновационные информационно-педагогические технологии в системе ИТ-образования", Москва, 8-10 ноября 2010. М.:, Изд-во МГУ, 2010. — С. 452—461.]
23.↑ Паронджанов В.Д. Как улучшить работу ума. Алгоритмы без программистов - это очень просто! М.: Дело, 2001. — С. 265, 266.
_____________________________________________________________________
Это текст для Википедии.
Прошу критиковать.
Ваши замечания представляют для меня огромную ценность