Слово «обвиняете» здесь не подходит. Обвинять может только прокурор. Но прокурор этого делать не будет, тем более, что Боинг уже согласился выплатить два с половиной миллиарда долларов отступных, чтобы избежать судебного преследования.
Я не имею права упрекать программистов в этой беде, так как дело не только в программистах, а во всех специалистах и чиновниках, которых так или иначе причастны к созданию алгоритмов и жизнеритмов Боинга и не только.
Но даже их я не имею права упрекать, потому что получится, что Боинг, FAA и авикомпании плохие, а все остальные белые и пушистые. А это совсем не так.
Это не беда Боинга, это общая беда мирового ИТ-сообщества, если хотите, общая беда человечества.
Потому что человечество до сих пор так и не научилось, и не умеет писать безошибочные алгоритмы.
И об этом я ясно сказал в заголовке моей статьи.
Я считаю, что язык ДРАКОН делает первый шаг к безошибочному будущему. Но это всего лишь первый шаг, не более того.
автор сам делает ошибки в самых примитивных детских демонстрационных алгоритмах.
Вы экипаж своей летающей тарелки в алгоритме из пары десятков шагов угробили…
Это не так. В алгоритме летающей тарелки нет никаких ошибок.
Она полностью соответствует легенде. А легенда такая:
Легенда
Нас интересует: взорвется тарелка или нет. Для этого надо запустить хотя бы один из двух: либо плазменный реактор, либо фотонный двигатель, причем последний считается безотказным.
Упомянутые в статье аксиомы-силуэты звучат как какое-то фричество, если честно
Сначала уточню. Не «аксиомы-силуэты». В статье говорится про две аксиомы языка ДРАКОН, из которых математически выводится графика любого дракон-алгоритма.
Они называются «аксиома силуэт» и «аксиома-примитив». Я рад, что вы на них обратили внимание. Спасибо.
Насчет фричества. Все привыкли, что аксиомы пишут текстом, а не картинками. Так что ваше недоумение понятно.
Вы заметили явное отступление от укоренившейся традиции. И обратили на это внимание. Это хорошо.
Тем не менее, это строгая математика. Самая настоящая математика, хотя, конечно, непривычная.
Если вы заинтересуетесь это новой областью математической логики, я готов вам всячески помогать.
Спасибо. Это приятное и очень важное известие. Режим работы (автоматный или процедурный) мы всегда знаем, не так ли?
Если это верно, тогда можно установить для этих режимов РАЗНЫЕ правила. То есть использовать указанный вами алгоритм ТОЛЬКО в процедурном режиме.
Тогда он не нанесет вреда автоматному режиму.
Как ваше мнение?
Или здесь есть скрытые ограничения?
Возможность разбития циклов нужно сильно ограничить
Спасибо. Мне кажется, можно построить алгоритм, который выявляет наличие неявного цикла if goto со входом в середину и поручить ДРАКОН-конструктору блокировать такие действия и выдавать сообщение об ошибке.
Огромное вам спасибо. Я обязательно выложу ваши ценные предложения на форуме ДРАКОНа.
Если у вас еще возникнут предложения, просьба сообщить.
или здесь или мне на почту vdp2007@bk.ru
_______________________
Вы говорили о студентах. Возможно, вам будет интересно.
Сегодня я получил письмо из Испании:
Владимир Данилович, добрый день.
Я — студент PhD и программист-любитель, прочитал Вашу книгу «Алгоритмы и жизнеритмы на языке Дракон» и очень хотел бы начать использовать его для программирования микроконтроллерной системы сбора данных и управления экспериментом (я занимаюсь гетерогенным катализом).
Беда в том, что не могу даже установить систему ИС Дракон.
Я работаю в Испании, компьютер университетский, система Win 10, каталонская. Язык программ, не поддерживающих Юникод, поставил русский. Кодовую страницу в реестре поменял на русскую.
Дракон версии Dragon_2020-04-05 (по крайней мере, так называется архив с экзешником).
При попытке запуска этого самого экзешника получается вот что:
… крякозябры…
Согласен с вами.
Но, смотрите.
Вы человек очень высокой квалификации и обладаете большими знаниями и большими способностями.
Это обстоятельство позволяет Вам выполнять трудную работу — правильно использовать goto и делать программу не только лаконичнее, но и снизить вероятность ошибки. Я бы сказал, что вы разделяете позицию Дональда Эрвина Кнута в его известной дискуссии с Эдсгером Вибе Дейкстрой.
Но есть много разработчиков, которые не обладают такими возможностями.
Наконец, есть многомиллионная армия программистов-любителей (amateur programmers), которые тоже вносят важный вклад, в развитие ИТ.
Какой сигнал, какую рекомендацию насчет goto следует дать им?
Как вы считаете?
Сложность программного обеспечения с тех пор возросла на пару порядков. Тогдашние средства разработки сейчас непригодны для использования.
Вы правы, и я с вами полностью согласен. Но. Проблема в том, что современные средства разработки не справляются с возросшей сложностью программного обеспечения (которая, как вы правильно отмечаете, с тех пор возросла на пару порядков).
Не справляются в том смысле, что отсутствуют необходимые средства разработки, позволяющие обеспечить должный уровень безошибочности.
И авиаинцидент с самолетом Боинг 737 МАХ красноречиво подтверждает это.
(предмет смеха рекомендую каждому желающему искать в ней самостоятельно, это не очень сложно)
Примерная программа дисциплины „Информатика“» одобрена Президиумом совета по информатике Госкомвуза. Председатель Президиума академик РАН Юрий Журавлев является руководителем Секции прикладной математики и информатики Отделения математических наук РАН, а также заместителем Академика-секретаря Отделения математических наук РАН.
В одобренной академиком Журавлевым «Примерной программе» содержится обоснование концепции и структуры учебного курса информатики; в частности, дается обоснование использования языка ДРАКОН.
Далее в Программе указываются требования к языку представления процедурных знаний нового типа: общедоступного, человечного, предельно лёгкого в изучении и удобного в работе, создающего наиболее комфортные условия для работы человеческого мозга, позволяющего решать проблемы ценою минимальных интеллектуальных усилий, удовлетворяющего самым строгим эргономическим и дидактическим требованиям. Отмечается, что этим требованиям соответствует язык ДРАКОН — «один из самых легких языков представления знаний и самый первый язык, с которого нужно начинать обучение алгоритмическому мышлению и программированию».
При коллективной интеллектуальной работе важную роль играет интеллектуальное взаимопонимание и интеллектуальное взаимодействие между специалистами.
Для улучшения взаимопонимания необходимо иметь общую языковую основу. Благодаря своей человечности (эргономичности) язык ДРАКОН относительно легко устраняет барьеры взаимного непонимания (в части процедурных знаний) между работниками различных специальностей: врачами и физиками, математиками и конструкторами, биологами и экономистами, программистами и технологами и т. д. Тем самым ДРАКОН создаёт универсальную языковую основу для процедурного интеллектуального взаимодействия между людьми, в частности, между участниками многопрофильных проектов. В результате этот «язык взаимопонимания» заметно упрощает междисциплинарное и иное общение между представителями разных организаций, ведомств, отделов, лабораторий, научных школ и профессий, отчасти играя роль «производственного эсперанто».
Бакалавр любой специальности должен уметь формализовать свои процедурные профессиональные знания самостоятельно, то есть без помощи профессиональных программистов или когнитологов (инженеров по знаниям). Программа предусматривает приобретение навыков автоформализации знаний на языке ДРАКОН.
Данные о распространенности языка в ВУЗах
В Сибирском государственном индустриальном университете студенты изучают язык ДРАКОН и осваивают интегрированную среду «ИС Дракон» на кафедре прикладной информатики для представления алгоритмов решения проблем управления при подготовке магистров, обучающихся по направлению: 140400.68 «Электроэнергетика и электротехника», профили подготовки «Электроприводы и системы управления электроприводов», «Автоматизированные электромеханические комплексы и системы».
В Новокузнецком филиале Кемеровского государственного университета студенты изучают язык ДРАКОН и осваивают интегрированную среду «ИС Дракон» на кафедре математики и математического моделирования согласно программе «М2.ДВ.4 Инструментальные средства визуального программирования», составленной в соответствии с требованиями федерального государственного образовательного стандарта высшего образования по направлению подготовки 010400.68 «Прикладная математика и информатика» для магистерской программы «Математическое моделирование» и утвержденной деканом факультета информационных технологий доктором технических наук профессором Валерием Калединым.
В Белоруссии в Минском высшем радиотехническом колледже отмечают:
«Как показал опыт применения языка ДРАКОН в лабораторном цикле „Изучение аналоговых и цифровых приборов“, студенты на порядок быстрее усваивают принципы работы операционных усилителей и регистрации их амплитудных и частотных характеристик».
На мой взгляд, даже термин «ветка» здесь плохо подходит. Он подразумевает ветвление программы, а на приведённой схеме исполнение линейное. Может быть «фрагмент»?
Спасибо.
На английском языке я изменил термин и пишу не ветка, а tree (дерево).
Фрагмент — хороший термин, спасибо. Но тут возникают некоторые препятствия.
Что касается русского языка, то замена термина Ветка на «фрагмент» вряд ли возможна по чисто организационным причинам.
Судите сами, тираж печатных книг по ДРАКОНу почти 50 тысяч экземпляров, а скачиваний без счета.
В университетах студенты и другие читатели уже привыкли к термину ветка, а привычка — вторая натура; выходит учебное пособие по ДРАКОНу для вузов, а следом для техникумов и колледжей.
Люди свыклись со старой драконовской терминологией, и объяснить, почему привычная терминология устарела, будет очень трудно.
Еще раз, спасибо.
ваш язык вообще не оперирует данными как отдельной сущностью
Спасибо. Вы подняли очень интересный и очень важный вопрос.
Язык используется на рынке, в очень небольших (микроскопических) масштабах, но используется. Значит, проблема с данными каким-то образом решается. Каким же образом?
1. За счет концепции гибридного языка: ДРАКОН работает не один, а в паре с существующим текстовым (целевым) языком. Данные описываются средствами целевого языка.
2. В моих книгах про данные почти ничего не говорится. Есть элементарные примеры в задаче про крольчатник, где показано, как описать массив, где для данных используется икона Полка.
3. В этих условиях разработчики ДРАКОН-конструктора по своей инициативе предлагают какие-то средства для описания данных.
4. Возникают новые идеи. Предприниматель Алексей Муравицкий выдвинул ортгтнальную идею и показал, как можно использовать конструкцию силуэт для описания данных. Сегодня это уже не идея, а реальное промышленное использование.
5. Интересное решение найдено в Роскосмосе. Данные удалены из ДРАКОН-алгоритма (из дракон-схемы), ибо их очень много и они в блок-схеме не помещаются, и хранятся в базе данных ФЛОКС.
На этапе компиляции данные извлекаются из базы данных, соединяются с дракон-алгоритмами и попадают в испоняемый код (я описал это в открытой статье (мой доклад в Минобороны), которая доступна в сети). Но в существующих ДРАКОН-конструкторах этого нет.
Я не имею права упрекать программистов в этой беде, так как дело не только в программистах, а во всех специалистах и чиновниках, которых так или иначе причастны к созданию алгоритмов и жизнеритмов Боинга и не только.
Но даже их я не имею права упрекать, потому что получится, что Боинг, FAA и авикомпании плохие, а все остальные белые и пушистые. А это совсем не так.
Это не беда Боинга, это общая беда мирового ИТ-сообщества, если хотите, общая беда человечества.
Потому что человечество до сих пор так и не научилось, и не умеет писать безошибочные алгоритмы.
И об этом я ясно сказал в заголовке моей статьи.
Я считаю, что язык ДРАКОН делает первый шаг к безошибочному будущему. Но это всего лишь первый шаг, не более того.
Вы придумываете новую легенду и говорите, что схема не соотствует вашей легенде.
Схема не обязана соответствовать вашей легенде. Она соответствует моей легенде. Так что там нет никаких ошибок.
Не фантазируйте.
Если вы хотет изменить легенду, ради Бога меняйте. Никаких возражений. Тогда алгоритм, естественно, будет другой.
Она полностью соответствует легенде. А легенда такая:
Легенда
Нас интересует: взорвется тарелка или нет. Для этого надо запустить хотя бы один из двух: либо плазменный реактор, либо фотонный двигатель, причем последний считается безотказным.
Они называются «аксиома силуэт» и «аксиома-примитив». Я рад, что вы на них обратили внимание. Спасибо.
Насчет фричества. Все привыкли, что аксиомы пишут текстом, а не картинками. Так что ваше недоумение понятно.
Вы заметили явное отступление от укоренившейся традиции. И обратили на это внимание. Это хорошо.
Тем не менее, это строгая математика. Самая настоящая математика, хотя, конечно, непривычная.
Если вы заинтересуетесь это новой областью математической логики, я готов вам всячески помогать.
Правда, есть одна запятая. То, что вы рассказываете про образование — святая правда.
Но. Все это не работает. Человечество по-прежнему не умеет писать безошибочные алгоритмы.
На руках разработчиков алгоритмов кровь сотен людей. И никакой Азимов не может опровергнуть эту истину.
Если это верно, тогда можно установить для этих режимов РАЗНЫЕ правила. То есть использовать указанный вами алгоритм ТОЛЬКО в процедурном режиме.
Тогда он не нанесет вреда автоматному режиму.
Как ваше мнение?
Или здесь есть скрытые ограничения?
Или я ошибаюсь? Как вы считаете?
Если у вас еще возникнут предложения, просьба сообщить.
или здесь или мне на почту vdp2007@bk.ru
_______________________
Вы говорили о студентах. Возможно, вам будет интересно.
Сегодня я получил письмо из Испании:
Но, смотрите.
Вы человек очень высокой квалификации и обладаете большими знаниями и большими способностями.
Это обстоятельство позволяет Вам выполнять трудную работу — правильно использовать goto и делать программу не только лаконичнее, но и снизить вероятность ошибки. Я бы сказал, что вы разделяете позицию Дональда Эрвина Кнута в его известной дискуссии с Эдсгером Вибе Дейкстрой.
Но есть много разработчиков, которые не обладают такими возможностями.
Наконец, есть многомиллионная армия программистов-любителей (amateur programmers), которые тоже вносят важный вклад, в развитие ИТ.
Какой сигнал, какую рекомендацию насчет goto следует дать им?
Как вы считаете?
Вы правы, и я с вами полностью согласен.
Но. Проблема в том, что современные средства разработки не справляются с возросшей сложностью программного обеспечения (которая, как вы правильно отмечаете, с тех пор возросла на пару порядков).
Не справляются в том смысле, что отсутствуют необходимые средства разработки, позволяющие обеспечить должный уровень безошибочности.
И авиаинцидент с самолетом Боинг 737 МАХ красноречиво подтверждает это.
Вариант с «переходом» куда бы то ни было действительно позволяет создать лаконичный алгоритм. Но здесь-то и кроется подводный камень.
Центральной проблемой современного программирования является слишком большое количество ошибок и неумение сократить это число.
Стремиться надо не к лаконичности за счет использования опасных операторов, а к диаметральнопротивоположой цели — к надежности и безошибочности.
Примерная программа дисциплины „Информатика“» одобрена Президиумом совета по информатике Госкомвуза. Председатель Президиума академик РАН Юрий Журавлев является руководителем Секции прикладной математики и информатики Отделения математических наук РАН, а также заместителем Академика-секретаря Отделения математических наук РАН.
В одобренной академиком Журавлевым «Примерной программе» содержится обоснование концепции и структуры учебного курса информатики; в частности, дается обоснование использования языка ДРАКОН.
Далее в Программе указываются требования к языку представления процедурных знаний нового типа: общедоступного, человечного, предельно лёгкого в изучении и удобного в работе, создающего наиболее комфортные условия для работы человеческого мозга, позволяющего решать проблемы ценою минимальных интеллектуальных усилий, удовлетворяющего самым строгим эргономическим и дидактическим требованиям. Отмечается, что этим требованиям соответствует язык ДРАКОН — «один из самых легких языков представления знаний и самый первый язык, с которого нужно начинать обучение алгоритмическому мышлению и программированию».
При коллективной интеллектуальной работе важную роль играет интеллектуальное взаимопонимание и интеллектуальное взаимодействие между специалистами.
Для улучшения взаимопонимания необходимо иметь общую языковую основу. Благодаря своей человечности (эргономичности) язык ДРАКОН относительно легко устраняет барьеры взаимного непонимания (в части процедурных знаний) между работниками различных специальностей: врачами и физиками, математиками и конструкторами, биологами и экономистами, программистами и технологами и т. д. Тем самым ДРАКОН создаёт универсальную языковую основу для процедурного интеллектуального взаимодействия между людьми, в частности, между участниками многопрофильных проектов. В результате этот «язык взаимопонимания» заметно упрощает междисциплинарное и иное общение между представителями разных организаций, ведомств, отделов, лабораторий, научных школ и профессий, отчасти играя роль «производственного эсперанто».
Бакалавр любой специальности должен уметь формализовать свои процедурные профессиональные знания самостоятельно, то есть без помощи профессиональных программистов или когнитологов (инженеров по знаниям). Программа предусматривает приобретение навыков автоформализации знаний на языке ДРАКОН.
Данные о распространенности языка в ВУЗах
В Сибирском государственном индустриальном университете студенты изучают язык ДРАКОН и осваивают интегрированную среду «ИС Дракон» на кафедре прикладной информатики для представления алгоритмов решения проблем управления при подготовке магистров, обучающихся по направлению: 140400.68 «Электроэнергетика и электротехника», профили подготовки «Электроприводы и системы управления электроприводов», «Автоматизированные электромеханические комплексы и системы».
В Новокузнецком филиале Кемеровского государственного университета студенты изучают язык ДРАКОН и осваивают интегрированную среду «ИС Дракон» на кафедре математики и математического моделирования согласно программе «М2.ДВ.4 Инструментальные средства визуального программирования», составленной в соответствии с требованиями федерального государственного образовательного стандарта высшего образования по направлению подготовки 010400.68 «Прикладная математика и информатика» для магистерской программы «Математическое моделирование» и утвержденной деканом факультета информационных технологий доктором технических наук профессором Валерием Калединым.
В Белоруссии в Минском высшем радиотехническом колледже отмечают:
«Как показал опыт применения языка ДРАКОН в лабораторном цикле „Изучение аналоговых и цифровых приборов“, студенты на порядок быстрее усваивают принципы работы операционных усилителей и регистрации их амплитудных и частотных характеристик».
Спасибо.
На английском языке я изменил термин и пишу не ветка, а tree (дерево).
Фрагмент — хороший термин, спасибо. Но тут возникают некоторые препятствия.
Что касается русского языка, то замена термина Ветка на «фрагмент» вряд ли возможна по чисто организационным причинам.
Судите сами, тираж печатных книг по ДРАКОНу почти 50 тысяч экземпляров, а скачиваний без счета.
В университетах студенты и другие читатели уже привыкли к термину ветка, а привычка — вторая натура; выходит учебное пособие по ДРАКОНу для вузов, а следом для техникумов и колледжей.
Люди свыклись со старой драконовской терминологией, и объяснить, почему привычная терминология устарела, будет очень трудно.
Еще раз, спасибо.
Спасибо. Вы подняли очень интересный и очень важный вопрос.
Язык используется на рынке, в очень небольших (микроскопических) масштабах, но используется. Значит, проблема с данными каким-то образом решается.
Каким же образом?
1. За счет концепции гибридного языка: ДРАКОН работает не один, а в паре с существующим текстовым (целевым) языком. Данные описываются средствами целевого языка.
2. В моих книгах про данные почти ничего не говорится. Есть элементарные примеры в задаче про крольчатник, где показано, как описать массив, где для данных используется икона Полка.
3. В этих условиях разработчики ДРАКОН-конструктора по своей инициативе предлагают какие-то средства для описания данных.
4. Возникают новые идеи. Предприниматель Алексей Муравицкий выдвинул ортгтнальную идею и показал, как можно использовать конструкцию силуэт для описания данных. Сегодня это уже не идея, а реальное промышленное использование.
5. Интересное решение найдено в Роскосмосе. Данные удалены из ДРАКОН-алгоритма (из дракон-схемы), ибо их очень много и они в блок-схеме не помещаются, и хранятся в базе данных ФЛОКС.
На этапе компиляции данные извлекаются из базы данных, соединяются с дракон-алгоритмами и попадают в испоняемый код (я описал это в открытой статье (мой доклад в Минобороны), которая доступна в сети). Но в существующих ДРАКОН-конструкторах этого нет.