Здравствуйте, Erop, Вы писали:
E>Здравствуйте, alpha21264, Вы писали:
A>>Ты зачем достал ветку двухгодовой давности?
E>Нечаянно. E>Когда отправил уже заметил, что несколько занекропостил.
Постоянные постояльцы, к коим ты относишься, должны же знать многоэпичнычные срачи, как-то: "вынь супротив линукс", "борьба с оверхедом", "задохик в конторе всех задрал", "дракон и буран", "бабу хочу", "давай встретимся, я тебе хлебало начищу"
Re[10]: Язык ДРАКОН — новая идея в программировании
Здравствуйте, peterbes, Вы писали:
P>Постоянные постояльцы, к коим ты относишься, должны же знать многоэпичнычные срачи, как-то: "вынь супротив линукс", "борьба с оверхедом", "задохик в конторе всех задрал", "дракон и буран", "бабу хочу", "давай встретимся, я тебе хлебало начищу"
Ну, он как-то мимо меня прошёл, поэтому я и не заподозрил, что оно может быть таким старым...
Так чем там дело закончилось-то? Писали Буран на ДРАКОНе, или оно не взлетело по другим причинам?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[10]: Язык ДРАКОН — новая идея в программировании
19 мая 2017 года состоялся доклад Владимира Паронджанова в Институте системного программирования Российской академии наук на тему:
Неклассическая теория алгоритмов и алгоритмический язык ДРАКОН
Я договорился с Александром Константиновичем Петренко, с которым 30 с лишним лет назад мы вместе разрабатывали вычислительную систему орбитального корабля "Буран".
У меня не было его координат, но в наш волшебный век это не проблема.
Гугл мне моментально подсказал все, что нужно: и телефон, и E-mail.
Петренко Александр Константинович — Главная страница
sp.cmc.msu.ru/staff/pak.html
16 июл. 2009 г. — Петренко Александр Константинович ... E-mail: petrenko@ispras.ru ... А. К. Петренко опубликовал свыше 70 научных работ, в том числе:.
Александр Константинович Петренко
panda.ispras.ru/~petrenko/index_ru.html
+7(916)156-3502. Адрес: 109004, Москва, А.Солженицына, 25. E-mail: petrenko < at > ispras.ru a.k.petrenko < at > gmail.com. Skype: ak-petrenko7076 ...
Я подготовил к докладу 104 слайда.
Аннотация доклада
Паронджанов В.Д. Неклассическая теория алгоритмов и алгоритмический язык ДРАКОН
Современная теория алгоритмов не имеет удобного (эргономичного) языка, позволяющего облегчить и ускорить понимание алгоритмов ЧЕЛОВЕКОМ. Она не применима к медицинским алгоритмам и не содействует повышению безопасности пациентов. Она не оказывает практической помощи при разработке бизнес-процессов, потоков работ (workflows) и пр.
Современные языки программирования используют управляющие слова (if, then, else, case, switch, break, while, do, repeat, until, for, foreach, continue, loop, exit, when, last и др.) , которые играют роль визуальных помех, провоцируют появление ошибок и мешают понять смысл алгоритма в терминах предметной области.
Предлагаются теоретические и практические средства, чтобы устранить или ослабить указанные недостатки
План доклада
0. Введение
1. Алгоритмы без программистов
2. Формальная управляющая графика
После доклада, как обычно, были вопросы и обсуждение. Семинар длился 3 часа.
Ведущий семинара Заместитель директора Института системного программирования РАН,
Зам. главного редактора журнала "Программирование" Российской академии наук
доктор физико-математических наук, профессор
Александр Константинович Петренко.
Семинар был снят на видео и вскоре будет выложен на YouTube.
Ниже я выкладываю Приветствие Альгирдаса Каралюса (Литва), обращенное к участникам семинара
в Институте системного программирования РАН 19 мая 2017 года.
Альгирдас рассказывает
(1) об успехах литовских медиков, применяющих язык ДРАКОН для обучения врачей, лечения и спасения жизней, а также
(2) об использовании языка ДРАКОН для обучения и оптимизации бизнес-процессов.
Альгирдас Каралюс — основатель Центра "DRAKON Language School"
Я полагаю, что в императивном программировании возможен иной путь.
1. Современные языки программирования используют управляющие слова (if, then, else, case, of, switch, break, while, do, repeat, until, for, foreach, continue, loop, exit, when, last и др.).
2. Давайте подумаем вместе. Нужны ли эти слова? Можно ли без них обойтись?
3. Я доказал, что указанные слова и их аналоги можно без потери точности заменить и преобразовать в эквивалентную графику (образно говоря, превратить их в "линии и квадратики").
Подобная графика есть средство представления алгоритмов.
4. Графика хороша тем, что позволяет в удобной и наглядной форме выполнить декомпозицию сколь угодно сложного алгоритма.
5. В чем преимущество? Сегодня при разработке сложных программных комплексов разработчики вынуждены держать целостный алгоритм в голове. Это трудно, так как создает большую нагрузку на память и порождает ошибки.
6. Удалив указанные ключевые слова и заменив их на графику, мы делаем важный шаг в правильном направлении. Это можно считать доказанным.
7. Но здесь возникает препятствие. Существующие инструменты программирования не рассчитаны на работу с предлагаемой мною идеей.
8. Модификация существующих инструментов программирования для согласования с предлагаемой графикой есть большая и сложная работа. Работа, которая требует времени и средств. Моя цель — пригласить компетентных специалистов и попытаться их заинтересовать.
9. До тех пор, пока это не сделано (то есть пока отсутствуют необходимые программные инструменты), я развиваю графический алгоритмический подход за рамками программирования. Наибольший успех достигнут в медицине. Идея называется "иллюстрированные медицинские алгоритмы высокой точности".
10. На эту тему я написал книгу под названием
"Паронджанов В.Д. Почему врачи убивают и калечат пациентов, или Зачем врачу блок-схемы алгоритмов? Иллюстрированные алгоритмы диагностики и лечения — перспективный путь развития медицины. Клиническое мышление высокой точности и безопасность пациентов. / Предисловие члена-корреспондента РАН Г.В. Порядина. — М.: ДМК Пресс, 2017. — 340 с. — Иллюстраций: 130".
11. Моя цель — внедрить медицинские алгоритмы высокой точности в качестве стандарта в российской медицине.
12. Вторая цель использовать графические алгоритмы высокой точности для обучения предпринимателей и моделирования бизнес-процессов и стартапов.
13. Третья цель (которая пока в перспективе) — внедрить графические алгоритмы высокой точности в качестве стандарта в Вооруженных силах РФ.
14. Четвертая цель. Заменить стандарт на блок-схемы алгоритмов, описанный отечественном ГОСТ 19.701-90 и международном стандарте ISO 5807-85 на стандарт языка ДРАКОН, описывающий графические алгоритмы высокой точности.
15. Когда эти цели будут достигнуты, как мне кажется, будут достигнуты необходимые условия и созреют предпосылки для проведения соответствующих разработок в области программирования и развития ИНОГО ПУТИ в технологии программирования, о котором я говорил выше.
16. Где можно познакомиться с упомянутыми выше доказательствами?
Доказательства представлены в моей книге:
"Паронджанов В.Д. Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления. Основы алгоритмизации. — М.: ДМК-пресс, 2012, 2014, 2016. — 520 с. — Иллюстраций 272".
Ссылка для скачивания: http://drakon.su/_media/01._parondzhanov_uchis_pisat_chitat_i_ponimat_algoritmy.pdf
Здравствуйте, Владимир Паронджанов, Вы писали:
ВП>Изюминка в том, что Дракон — очень легкий язык. Необыкновенно легкий. Прочитав книгу, вы без труда убедитесь, что управляющая графика Дракона является мощным инструментом, причем ее мощь легка в освоении и легко применима на практике.
Как средство первоначального обучения программированию или средство для описания требуемого алгоритма людьми, не являющимися профессиональными программистами, Дракон представляется неплохим инструментом. Для профессиональной разработки сложных, постоянно развиваемых, систем — вряд ли.
Но это, пока, поверхностные впечатления.
Споры уже растянулись на много страниц. Что бы обсуждение было более предметным, прошу выложить какие-нибудь исходники реального ПО на Драконе, а не учебных примеров. Среда разработки и компилятор Дракона написаны на Драконе? Где можно посмотреть исходники?
С какими парадигмы программирования, кроме процедурного, может работать Дракон?
Re[2]: Язык ДРАКОН — новая идея в программировании
Здравствуйте, AleksandrN, Вы писали:
AN>прошу выложить какие-нибудь исходники реального ПО на Драконе, а не учебных примеров. Среда разработки и компилятор Дракона написаны на Драконе? Где можно посмотреть исходники?
Я работаю в НПЦАП им. акад. Н.А. Пилюгина (свыше 56 лет). Это закрытый научно-производственный центр. Исходники я выложить, к сожалению, не могу. Не имею права. У нас компилятор написан НЕ на Драконе.
Здравствуйте, AleksandrN, Вы писали:
AN>С какими парадигмы программирования, кроме процедурного, может работать Дракон?
Если в квадратиках писать код не на C, а на Haskell, то и с функциональной парадигмой тоже может. И далее по индукции.
Ну а что? Квадратик красивый будет. В остальном вопрос упирается в Неуловимого Джо.
Re[3]: Язык ДРАКОН — новая идея в программировании
По примерам и коду самого редактора получается, что Дракон является препроцессором и в каждый блок нужно вставлять текст на другом языке программирования.
По примерам, которые идут в комплекте с редактором:
Открыв файл examples/structure/Tcl/01-simple-Tcl.drn, увидел такую картинку:
И там дальше ещё пару экранов влево нужно прокрутить. Т.е. — даже на простом примере картинка на экран не помещается. Текст тоже не помещается, но — по моему мнению, навигация по тексту удобнее, чем по схеме. Да и без полос прокрутки очнь неудобно.
Ещё моменты, которые мне показались неудобными в редакторе и примерах:
1. Файлы .drn представляют собой БД sqlite. Это затрудняет поиск файла, содержащего нужную строку. А также затрудняет использование систем контроля версий.
2. Редактор сохраняет файл после каждого изменения, даже если все блоки чуть сдвинули. Это неудобно, если файл открыт с целью посмотреть его, а не редактировать.
3. Комментарии не переносятся со схемы в сгенерированный файл.
4. В каталоге examples/structure/C для сборки применяются .cmd-файлы. Зачем? Не лучше ли мэйкфайлы использовать?
В таком виде — не взлетит.
Думаю, годное применение Дракона — прототипирование на высоком уровне, без углубления в детали реализации. На более низком уровне — никакого преимущества перед другими походами, применяющимися в индустрии.
Re[3]: Язык ДРАКОН — новая идея в программировании
Видео. Использование языка ДРАКОН для программирования микроконтроллеров. Часть 2. Программирование битовых операций: инициализация процессора,
настройка таймера и т.д. Компиляция.
Загрузка полученной программы в постоянную память процессора (прошивка). https://www.youtube.com/watch?v=zeIq_JQhYSI&t=80s
Видео. Использование языка ДРАКОН для программирования микроконтроллеров. Часть 3. Проектирование сложного алгоритма реального времени.
Проектирование разветвленного алгоритма. Проектирование циклов.
Оператор ожидания. Оператор "пауза". (на примере управления дверным замком). https://www.youtube.com/watch?v=Sp6AMGzTM78&t=5s
Видео. Использование языка ДРАКОН для программирования микроконтроллеров. Часть 4. Работа с несколькими таймерами. В какой момент нужно запустить каждый таймер?
Управление шиной процессора (на примере управления дверным замком) https://www.youtube.com/watch?v=1PWDuPeJ_bk&t=13s
Здравствуйте, AleksandrN, Вы писали:
AN>Споры уже растянулись на много страниц. Что бы обсуждение было более предметным, прошу выложить какие-нибудь исходники реального ПО на Драконе, а не учебных примеров. Среда разработки и компилятор Дракона написаны на Драконе? Где можно посмотреть исходники?
Вот несколько ссылок: http://drakon-editor.sourceforge.net/ https://drakon-editor.com/ https://github.com/stepan-mitkin/drakon_editor
Прошу различать сам язык ДРАКОН и попытки программно реализовать этот язык.
AN>С какими парадигмы программирования, кроме процедурного, может работать Дракон?
— Функциональное (убираем циклы, делаем ветвление/принятие решений явным) http://drakon-editor.sourceforge.net/drakon-erlang/intro.html
— Объектно-ориентированное (на уровне алгоритмов отличия от процедурного почти нет)
— Конечные автоматы (это не только про микроконтроллеры. именно ДРАКОН даёт автоматам дорогу в остальлные отрасли программирования)
По большому счету у вас есть Дерево из набора нод и переходы.
На C# эта задача легко решается через yeld.
Yield используются в том числе ив acync await там как раз автоматы используются и в куче итераторов, в том числе и рекурсивных
и солнце б утром не вставало, когда бы не было меня
Re[3]: Язык ДРАКОН — новая идея в программировании
Здравствуйте, Stepan Mitkin, Вы писали:
SM>Прошу различать сам язык ДРАКОН и попытки программно реализовать этот язык.
Разницу между языком и транслятором языка я знаю.
Реализация транслятора языка и среды разработки под какой либо язык на нём самом, является хорошей демонстрацией возможностей языка и удобства работы с ним. Поэтому и попросил исходники. И по ним получается, что Дракон — препроцессор, который по схеме генерирует код, содержащий в себе куски кода, вставленные пользователем в схему.
На мой взгляд, это если и будет удобнее, чем существующие подходы, то для очень ограниченного круга задач.
Re[4]: Язык ДРАКОН — новая идея в программировании
Здравствуйте, Владимир Паронджанов, Вы писали:
ВП>Здравствуйте, samius, Вы писали:
S>>Ну а что? Квадратик красивый будет. В остальном вопрос упирается в Неуловимого Джо.
ВП>Попробую привести иллюстрации, позволяющие увидеть "Неуловимого Джо". ВП>Вот простой пример программы управления дверным замком.
Благодарю за примеры. Увидеть-то я его увидел, но желания его поймать таки не возникло.
ВП>Программа «ИС Дракон» Автор Геннадий Тышов (Россия, Северодвинск)
ВП>Автор видеороликов: Сергей Ефанов (Россия, Липецк)
ВП>Часть 1. Разработка программы управления автоматическим дверным замком.
ВП>Часть 2. Программирование битовых операций: инициализация процессора,
Вот в этой части на 11-ой минуте под звук фразы "действуя подобным образом", размер листа увеличивается где-то в 4 раза. Т.е. по идее, полное видео должно было бы быть около часа...
ВП>Часть 3. Проектирование сложного алгоритма реального времени. ВП>Проектирование разветвленного алгоритма. Проектирование циклов. ВП>Оператор ожидания. Оператор "пауза". (на примере управления дверным замком).
Это СЛОЖНЫЙ алгоритм? Что же тогда можно сказать про какой-нибудь парсер CSS? Сколько времени займет разработка его на ДРАКОН?
ВП>Часть 4. Работа с несколькими таймерами. В какой момент нужно запустить каждый таймер?
Удивительно сложный пример "простой" программы. Казалось бы, выбор действия (включить таймер или двигатель) — всего лишь функция от состояния окружения (кортеж из положения ригеля, замкнутости контакта кнопки, времени таймера и т.п.).
Re[3]: Язык ДРАКОН — новая идея в программировании
Надеюсь, вы не будете против, еслия положу пару примеров прямо тут?
1)
Now let us compare a text-based and a visual formula for a more sophisticated logic expression.
Text formula:
M = (A and not B and C) or (D and E and not F)
Visual formula:
The text-based formula definitely occupies less space. But it is the reader's job to decompress it. The complexity is still there, but it is hidden.
На мой взгляд, текстовый вариант гораздо понятнее. Да, он требует знания execution model и особенностей выполнения вычислений по короткой схеме. Но у него есть преимущество перед визуальным вариантом. Его можно проговорить, передать по телефону, и даже запомнить и покрутить в голове. Про получить diff при изменении я не говорю, т.к. при соответствующей реализации этого же можно добиться и текстовом представлении визуальной схемы. Но вот лично мне короче и понятнее текстовый вариант. И мне не нужно декомпрессить его, что бы понять.
2)
qsort_r([]) ->
[];
qsort_r([Pivot | L]) ->
qsort_r([X || X <- L, X < Pivot]) ++
[Pivot] ++
qsort_r([X || X <- L, X >= Pivot]).
и
Я заметил, что на ДРАКОН реализована чуть другая модификация. Но даже если выкинуть из нее избыточный simple case, то шуму и информации для восприятия в нем все равно гораздо больше, чем в тектсте.
Re[4]: Язык ДРАКОН — новая идея в программировании
Здравствуйте, samius, Вы писали:
S>На мой взгляд, текстовый вариант гораздо понятнее. Да, он требует знания execution model и особенностей выполнения вычислений по короткой схеме. Но у него есть преимущество перед визуальным вариантом. Его можно проговорить, передать по телефону, и даже запомнить и покрутить в голове. Про получить diff при изменении я не говорю, т.к. при соответствующей реализации этого же можно добиться и текстовом представлении визуальной схемы. Но вот лично мне короче и понятнее текстовый вариант. И мне не нужно декомпрессить его, что бы понять.
Спасибо за интересные критические замечания.
Вы попали в самую точку. В самое сердце Дракона.
Идея Дракона заключается в том, чтобы ОБЛЕГЧИТЬ И УСКОРИТЬ ПОНИМАНИЕ.
Эти слова надо понимать и в таком смысле: МАКСИМАЛЬНО СНИЗИТЬ ТРЕБОВАНИЯ К КВАЛИФИКАЦИИ ЧИТАТЕЛЯ.
Вы говорите: мне это не надо. Я и так все прекрасно понимаю.
Поэтому мне Дракон не нужен.
Вы, разумеется, правы. Но представьте себе, что Вы неожиданно стали педагогом.
И что Вам пришлось разжевывать и растолковывать материал неподготовленным,
не очень сообразительным или очень занятым людям.
Скажу проще. Вам приходится отвечать на вопросы въедливого заказчика,
который вместе с тем не знает и не желает знать тонкости программирования.
Попробуйте показать ему дракон-схему вашей программы.
И объяснить ему суть дела с помощью дракон-алгоритма.
С большой долей вероятности он Вас поймет и вопрос будет исчерпан.
Потому что язык ДРАКОН — это язык спецификаций.
В этом случае возникает ПЕДАГОГИЧЕСКАЯ, ДИДАКТИЧЕСКАЯ задача.
Язык ДРАКОН предназначен для решения подобной задачи. Это учебный язык.
Дракон позволяет объяснить логическую задачу людям, которые не знают алгебру логики.
Совсем не знают.
Приведу классическую цитату.
Эдвард Йодан писал:
«Если это возможно, избегайте отрицаний в булевых выражениях.
Представляется, что их понимание представляет трудность
для многих программистов».
В данном случае Йодан выступает как Гуманист.
Он заботится о программистах и стремится облегчить их тяжелую работу.
Правильно ли поступает Эдвард Йодан? Думаю, что правильно.
Это только Фридрих Ницше говорил одиозное: "Падающего толкни".
Язык Дракон следует гуманистическим идеалам Йодана.
Надо избегать отрицаний в булевых выражениях.
Но почему только отрицаний? Трудности создают не только отрицания,
но и знаки конъюнкции и дизъюнкции.
Можно ли обойтись в булевых выражениях без пропозициональных связок?
Язык дракон отвечает: можно и нужно.
Степан Митькин показал Вам КАНОНИЧЕСКУЮ ФОРМУ визуальных пропозициональных формул,
в которой полностью исключены пропозициональные связки.
Вам это не понравилось. Вы, разумеется, правы.
Каждый человек имеет право работать как он привык и как ему удобнее.
Заметьте: Дракон не запрещает использовать пропозициональные связки.
Он лишь показывает, что наряду с традиционной формой существует и каноническая форма.
Каноническая форма особенно полезна в медицине, когда приходится заменять
абстрактные буквенные обозначения (которые использовал еще Аристотель)
на содержательную терминологию предметной области.
В медицине логические формулы (выраженные в словесной форме) используются часто.
Неправильное понимание может привести к врачебным ошибкам,
а последние снижают безопасность пациентов.
Язык ДРАКОН предлагает единый алгоритмический подход к различным предметным областям:
и к медицине, и к программированию, и к бизнес-процессам и к сельскому хозяйству и т.д.
При этом учитывается и используется тот факт, что мышление всех людей
функционирует по единым логическим и алгоритмическим законам и отличается
лишь в деталях.
Здравствуйте, Владимир Паронджанов, Вы писали:
ВП>Идея Дракона заключается в том, чтобы ОБЛЕГЧИТЬ И УСКОРИТЬ ПОНИМАНИЕ.
Нету такой идеи. Есть идея-фикс о том, что графическое программирование проще текстового.
ВП>Вы говорите: мне это не надо. Я и так все прекрасно понимаю. ВП>Поэтому мне Дракон не нужен.
Он никому не нужен, так как не достигает поставленной цели.
Более того, опять началось враньё — в прошлую итерацию речь шла о языке для создания ядерных реакторовнадёжных систем. А не о бесполезной поделке для обучения.
ВП>Вы, разумеется, правы. Но представьте себе, что Вы неожиданно стали педагогом.
Гнать вас надо от детей, куда подальше.
ВП>В этом случае возникает ПЕДАГОГИЧЕСКАЯ, ДИДАКТИЧЕСКАЯ задача. ВП>Язык ДРАКОН предназначен для решения подобной задачи. Это учебный язык.
Правильно, так как ни для чего практического он не пригоден. За много лет драконодрочерства на нём не было написано ни одной серьёзной системы. Даже компилятор самого себя не написан.
ВП>Дракон позволяет объяснить логическую задачу людям, которые не знают алгебру логики. ВП>Совсем не знают.
То есть, он написан неумехами для неграмотных.
ВП>
ВП>«Если это возможно, избегайте отрицаний в булевых выражениях.
ВП>Представляется, что их понимание представляет трудность
ВП>для многих программистов».
Мало ли что ему представляется.
В реальности, если человек не понимает простейшей логики, то ему и нафиг не надо читать исходный код программ.
Sapienti sat!
Re[5]: Язык ДРАКОН — новая идея в программировании
Здравствуйте, Владимир Паронджанов, Вы писали:
ВП>Здравствуйте, samius, Вы писали:
S>>На мой взгляд, текстовый вариант гораздо понятнее. Да, он требует знания execution model и особенностей выполнения вычислений по короткой схеме. Но у него есть преимущество перед визуальным вариантом. Его можно проговорить, передать по телефону, и даже запомнить и покрутить в голове. Про получить diff при изменении я не говорю, т.к. при соответствующей реализации этого же можно добиться и текстовом представлении визуальной схемы. Но вот лично мне короче и понятнее текстовый вариант. И мне не нужно декомпрессить его, что бы понять.
ВП>Спасибо за интересные критические замечания. ВП>Вы попали в самую точку. В самое сердце Дракона.
ВП>Идея Дракона заключается в том, чтобы ОБЛЕГЧИТЬ И УСКОРИТЬ ПОНИМАНИЕ. ВП>Эти слова надо понимать и в таком смысле: ВП>МАКСИМАЛЬНО СНИЗИТЬ ТРЕБОВАНИЯ К КВАЛИФИКАЦИИ ЧИТАТЕЛЯ.
ВП>Вы говорите: мне это не надо. Я и так все прекрасно понимаю. ВП>Поэтому мне Дракон не нужен.
ВП>Вы, разумеется, правы. Но представьте себе, что Вы неожиданно стали педагогом. ВП>И что Вам пришлось разжевывать и растолковывать материал неподготовленным, ВП>не очень сообразительным или очень занятым людям.
Даже если допустить, что я неожиданно стал педагогом, то тут следует заметить, скорее всего я буду педагогом в области программирования. И я буду ожидать что подопечные будут обладать некой квалификацией, либо на меня будет возложена задача поднять им квалификацию до должного уровня.
ВП>Скажу проще. Вам приходится отвечать на вопросы въедливого заказчика, ВП>который вместе с тем не знает и не желает знать тонкости программирования. ВП>Попробуйте показать ему дракон-схему вашей программы. ВП>И объяснить ему суть дела с помощью дракон-алгоритма. ВП>С большой долей вероятности он Вас поймет и вопрос будет исчерпан. ВП>Потому что язык ДРАКОН — это язык спецификаций.
Дракон-схема программы? Для моих программ это малореально. Используя инкапсуляцию и барьеры абстракции я могу вынести в схему какие-то отдельные аспекты, но скорее всего это будет блок-схема, а не Дракон. Для презентации и обсуждения большего не требуется.
ВП>В этом случае возникает ПЕДАГОГИЧЕСКАЯ, ДИДАКТИЧЕСКАЯ задача. ВП>Язык ДРАКОН предназначен для решения подобной задачи. Это учебный язык.
ВП>Дракон позволяет объяснить логическую задачу людям, которые не знают алгебру логики. ВП>Совсем не знают.
Про именно "объяснить" — я согласен, хотя и не вижу превосходство Дракона перед блок-схемами в аспекте задачи "объяснить".
ВП>Приведу классическую цитату. ВП>Эдвард Йодан писал:
ВП>
ВП>«Если это возможно, избегайте отрицаний в булевых выражениях.
ВП>Представляется, что их понимание представляет трудность
ВП>для многих программистов».
То же самое можно сказать практически о чем угодно в программировании. Принципы SOLID представляют трудность, стоит ли и их избегать на этом основании?
ВП>В данном случае Йодан выступает как Гуманист. ВП>Он заботится о программистах и стремится облегчить их тяжелую работу. ВП>Правильно ли поступает Эдвард Йодан? Думаю, что правильно.
ВП>Это только Фридрих Ницше говорил одиозное: "Падающего толкни".
ВП>Язык Дракон следует гуманистическим идеалам Йодана. ВП>Надо избегать отрицаний в булевых выражениях. ВП>Но почему только отрицаний? Трудности создают не только отрицания, ВП>но и знаки конъюнкции и дизъюнкции.
Да что там, приведения типов создают трудности.
ВП>Можно ли обойтись в булевых выражениях без пропозициональных связок? ВП>Язык дракон отвечает: можно и нужно.
На вопрос "можно ли" утвердительно ответит и Паскаль тоже. А на вопрос "нужно ли" не отвечает даже Дракон.
ВП>Степан Митькин показал Вам КАНОНИЧЕСКУЮ ФОРМУ визуальных пропозициональных формул, ВП>в которой полностью исключены пропозициональные связки. ВП>Вам это не понравилось. Вы, разумеется, правы. ВП>Каждый человек имеет право работать как он привык и как ему удобнее.
Как же? Булевой алгебре 200 лет, блок-схемам еще нет 100. Канонической (традиционной) в данном случае является форма, введенная Булем.
ВП>Заметьте: Дракон не запрещает использовать пропозициональные связки. ВП>Он лишь показывает, что наряду с традиционной формой существует и каноническая форма.
ВП>Каноническая форма особенно полезна в медицине, когда приходится заменять ВП>абстрактные буквенные обозначения (которые использовал еще Аристотель) ВП>на содержательную терминологию предметной области.
ВП>В медицине логические формулы (выраженные в словесной форме) используются часто. ВП>Неправильное понимание может привести к врачебным ошибкам, ВП>а последние снижают безопасность пациентов.
Неправильное понимание — оно вообще может приводить к ошибкам, среди которых ошибки в медицине не самые страшные. Мое предложение тут в том, что бы не сажать идиотов на ответственные места, вместо того, что бы обучать их с помощью Дракона.
ВП>Язык ДРАКОН предлагает единый алгоритмический подход к различным предметным областям: ВП>и к медицине, и к программированию, и к бизнес-процессам и к сельскому хозяйству и т.д.
ВП>При этом учитывается и используется тот факт, что мышление всех людей ВП>функционирует по единым логическим и алгоритмическим законам и отличается ВП>лишь в деталях.
Не знаю, о чем вы. Мне такой факт не известен. Тем более, что наблюдаемое поведение, являющееся реакцией на одни и те же раздражители, могут отличаться отнюдь не деталями. Хотя, что называть "деталями". Напился, сматерился, помолился, убился... — если это детали, то ок, не возражаю.
Re[3]: Язык ДРАКОН — новая идея в программировании
Перечитал ветку, появился ещё вопрос:
SM>- Конечные автоматы (это не только про микроконтроллеры. именно ДРАКОН даёт автоматам дорогу в остальлные отрасли программирования)
Конечные автоматы известны и применяются давно. Легко реализуются с помощью матриц. Применяются в программировании уже давно — например, при создании лексических анализаторов в компиляторах.
Поэтому прошу пояснить, что имеется в виду в предложении "именно ДРАКОН даёт автоматам дорогу в остальные отрасли программирования"?