Программирование микроконтроллеров на ДРАКОНе

Некоторое время назад мне на глаза попалось упоминание о языке ДРАКОН. Я немного почитал, ничего не понял, закрыл, забыл.
Но почему-то забылось не совсем.
Тут подвернулась поездка. Снова нашёл, закачал файл в электронную книжку, взял с собой. В поезде всё равно делать нечего.

Медленно и со вкусом прочитал.

И — понял! Это просто клад!

По возвращении уже думал только об одном: где бы найти инструмент для работы?
К счастью, такой инструмент нашелся.
Попробовал небольшие примерчики — вроде какой то код генерится. Переписал на ДРАКОНе довольно запутанную функцию из реального проекта.

Функция заработала сразу! Более того, при переносе алгоритма в дракон-схему, я обнаружил, что у меня в ней была ошибка! Эта функция работала уже довольно давно, не в одной сотне изделий. Ошибка не была фатальной, она возникала редко, и компенсировалась переподключением к серверу. Но она была!

В тексте на Си её было незаметно. А при попытке перенести алгоритм на дракон-схему, ошибка стала не просто заметной — алгоритм в этом месте «не вырисовывался»!

С тех пор прошло чуть больше года. Я программирую только на ДРАКОНе.
Попытаюсь сказать несколько слов о том, что это мне дало, и как выглядит процесс.

Написание программы распалось на два этапа — проработка алгоритма, и собственно программирование.

Главное в любой программе — алгоритм. В ДРАКОНе он рисуется, точнее — составляется из графических элементов. Очень похожих на элементы блок-схем.

Но есть несколько строгих правил, которые не позволяют схеме превратиться в запутанный клубок линий, квадратов и ромбиков.
Правила, на первый взгляд, простые. Но эффект от их применения — колоссальный!

На ДРАКОНЕ запутанный и непонятный алгоритм нарисовать просто нельзя. И наоборот, любой сложный алгоритм, нарисованный согласно этим правилам, становится очень понятным.

При разработке алгоритма теперь его не надо держать в голове при написании текста программы. Работа сводится к визуальному конструированию алгоритма. Это гораздо легче. Не требуется такое сосредоточение, как обычно. Так как нарисованный алгоритм очень понятен — работу можно спокойно прервать в любой момент, потом легко вернутся к её продолжению.

И только когда весь алгоритм «отлизан» — переходим к собственно программированию. В чём оно теперь заключается? В том, что для каждой иконы нужно написать код, который выполнит то, что написано на этой иконе. Как правило это 1 строчка. На высоких уровнях иерархии проекта — это может быть вызов одной функции, или одного метода класса (заметим, что все функции и классы тоже нарисованы на ДРАКОНЕ). На нижнем уровне — это может быть изменение одного бита.

В этом месте, наверняка, у многих вырвется вопрос: — «Ну и зачем весь этот огород, если код всё равно надо писать самому?!».

Не торопитесь!

В чём сложность программирования? (с тем, что программирование — сложная работа, думаю, никто спорить не будет?).

Разве в написании строчек типа printf(«Hello, Word»);?
Станет ли сложной программа от того, что мы напишем 1000 подобных строчек? А 10000?
Нет, она не станет от этого сложной. Сложной программу делают сложные взаимосвязи между её частями.

Так вот, на этапе программирования икон об этом думать уже не надо.

Совсем. Вообще. Никак. Не надо, и всё тут!

Всё, что нужно — аккуратно запрограммировать ОДНУ икону. Только ОДНУ! Когда будем программировать другую — про предыдущую уже можно не вспоминать. В тот код, который сгенерирует редактор — смотреть не нужно. Так же, как мы не смотрим в машинные коды, полученные после компиляции.

Программирование на этом этапе превратилось в чисто техническую процедуру. Несложную.

Уже перестал удивляться тому, что программы работают сразу после включения…

=======

Как начать использовать ДРАКОН?

Нужно потрудится. Нужно прочитать книгу «Язык Дракон».

Прочитать неспеша и вдумчиво.

Мне помогло, что я её читал в поезде, где не было отвлекающих факторов. Книга написана очень хорошо, просто, доходчиво, интересно. drakon-practic.ru/drakon.pdf

Если по прочтении возникло желание попробовать ( а я не сомневаюсь, что возникнет ) — тогда скачивайте ИС ДРАКОН, и начинайте. drakon-practic.ru/is_drakon.zip

Не пытайтесь получить представление о языке по приводимым видеороликам. Их цель совершенно другая.

Дело в том, что сегодня за пределами РосКосмоса почти нет инструментов, пригодных для практической работы с языком ДРАКОН. «ИС ДРАКОН» пишется на голом энтузиазме одним человеком, в свободное время.

На сегодняшний день справка к программе устарела. Начать работу по ней очень трудно. Я кое как разобрался — и что бы помочь другим преодолеть этот этап — записал пару видеоуроков. Самое ценное в которых — это куда ткнуть мышкой, что бы получить то или это.

Понятно же, что программа, которая в процессе этих уроков создаётся, может быть написана в текстовом редакторе за пару минут без всех этих хлопот. Делать на основе этого урока заключение о языке — это тоже самое, что писать рецензию на «Война и Мир» по «Мама мыла раму».

Но конечно же, Вы начнёте с видеороликов! Ну что же. Имеющий уши — услышит, имеющий глаза — увидит.
drakon-practic.ru/is_drakon_part1.zip
drakon-practic.ru/is_drakon_part2.zip
drakon-practic.ru/is_drakon_part3.zip
drakon-practic.ru/is_drakon_part4.zip

Видеоролики уроков теперь размещены и на youtube:







  • +7
  • 10 января 2012, 23:57
  • efanov

Комментарии (279)

RSS свернуть / развернуть
Я так понял что можно под любой язык использовать оболочку с ее алгоритм блоками? Правильно?
0
ИС ДРАКОН умеет генерировать исходные тексты на 1С, Delphi, C, Oberon, ASM
0
Это я прочитал:) Перефразирую вопрос — в оболочку ИС ДРАКОН можно добавить другие языки? Насколько я понял из своего верхоглядства — это программа всего лишь помогает визуально представить и структурировать алгоритм программы, который потом наполняешь программой! так? то есть по сути в этих блоках можно писать на любом языке, а потом выданную оболочкой текст программы скормить компилятору?
0
Наверное, так нельзя. Программа ведь сама генерирует переходы между иконами. Например, для Си вставляет goto, а для Оберона, в котором goto нету, она его эмулирует подручными средствами.

Если Вам действительно нужна трансляция для другого языка — думаю, самое простое — попросить автора сделать её.
0
Точно! Надо будет вечером пообщаться с автором! Было бы замечательно если бы различные языки можно было бы подключать специальными соответствующими текствовыми конфигураторами, и хорошее описание формата этого файла конфигуратора! Это было бы вообще супер!:)
0
и не говорите. Ато запаришся запоминать ВотТАкуюХеровуюФункцИюДляВовДаСтроки (и дохера параметров).
0
Кроме всего ещо надо знать и другие языки программирования, как я понял? Насколько глубоко надо знать другие языки чтоб работать из Драконо?
Для начинающих в программирование вообще, насколько трудным этот язык есть? По видео все достаточно просто и непринужденно.
Как я понял этот язык пригодин не только для микроконтролеров?
0
Моя работа — программирование микроконтроллеров. Мне нужно знать архитектуру программируемого контроллера, и язык программирования. Насколько глубоко — сложно сказать, тут нету чётких критериев.

Собственно язык ДРАКОН никак не привязан ни к какому языку программирования или процессору. Это вообще НЕ язык программирования. Он определяет правила графического изображения алгоритмов деятельности. Например, есть сообщения об успешном применении ДРАКОНА для описания бизнес-процессов.
0
А как там выглядит многопоточность? Ну например у меня в главном цикле реализован алгоритм обработки данных и связи с внешним миром, а параллельно исполняется ещё пяток потоков на прерываниях. Насколько наглядно представление такой ситуации в среде?

И один очень важные момент — в видео не демонстрируется содержание полученных drt файлов, а это важно. Я не поленился, скачал:
+ это таки простой текстовый файл, его спокойно можно положить под контроль версий
— это кошмар какой-то — куча невнятных цифирей (походу, какие-то идентификаторы и абсолютные координаты блоков), тройные кавычки и жуткие конструкции типа «Инициализиро-,»«вать процессор»"", мета-информация никак не отделена от данных, а самой ценной информацией, походу, автор считал копирайт =).
В общем, над форматом данных похоже не думали вообще =).
+1
Воткнуть бы видео в сам текст. На Ютуб может залить?
0
Пока не могу. Первый ролик получился 18 минут, ютуб больше 15минут — не принимает. Надо как то переписать, укоротить.
0
на YouTube можно и больше 15 минут видео заливать.
Правда, не знаю, что я такого сделал, что он мне это разрешил.
0
Я применяю ДРАКОН вместе с FreeRTOS, и не испытываю каких либо проблем с многопоточностью. Как это выглядит? Как и любая другая дракон-схема — красиво. В языке есть специальные иконы «запустить параллельный процесс», но я их не использую, как то и без них всё ясно.

>И один очень важные момент — в видео не демонстрируется содержание полученных drt файлов, а это важно.

Вот уж чего меня интересует меньше всего — как там что то хранится. Да хоть японскими иероглифами! Чем это может быть важно для меня, пользователя? Я туда не заглядываю никогда. Я знаю, что там текстовый формат. Структуру автор опубликовал, кто то даже писал какие-то трансляторы из этих файлов.

Сейчас посмотрел файл (возбудили интерес). По моему, очень компактный формат. Даже без описания можно разобраться, что к чему. А почему нужно боятся тройных кавычек? Там ещё и запятых много…

> В общем, над форматом данных похоже не думали вообще =).

Формат данных в этих файлах — это сфера интересов разработчиков подобных программ. Судя по тому, что Вам он представляется важным — Вы один из них. Не могли бы Вы заняться созданием собственного варианта дракон-редактора?
0
>> Формат данных в этих файлах — это сфера интересов разработчиков подобных программ. Судя по тому, что Вам он представляется важным — Вы один из них.

Вы ошибаетесь — никогда не занимался созданием подобных программ. Да и вообще «программирование в картинках» не особо одобряю =). Важным он мне кажется, потому что там хранятся исходные данные проекта, с которыми так или иначе работать придётся. Его обязательно надо класть под контроль версий, и надо иметь возможность сравнивать, что изменилось от версии к версии. То что формат текстовый позволяет сравнивать версии файла простым дифом, но сам формат не особо очевиден — боюсь без особого опыта тупить придётся долго, что бы понять что к чему. Конечно со временем ко всему привыкнуть можно… =) Либо нужно мутить графическую диффилку.
+1
Понятно. Вы рассматриваете программирование как изолированный процесс.
На самом деле — это только часть работы при создании какого либо устройства. Ещё там есть схемы принципиальные электрические, чертежи печатных плат, чертежи механических узлов. Вся эта информация обрабатывается исключительно в графических редакторах. Файлов при этом создаётся уйма, у каждого свой формат. И каждый файл нужен и важен, приходится беспокоится о сохранности всех. У программных файлов тут нет особых привилегий.
0
Так я что ж, спорю с этим? Просто сейчас речь идёт о программировании. Но раз уж зашла речь, у KiCAD, например, формат файлов текстовый и вполне читабельный, диффом сравнивается легко, у Altium Designer формат двоичный, но есть встроенный диффер, позволяющий легко искать отличия, и интеграция в SVN. А вот с механическими кадами сложнее — я работаю в основном в Autodesc Inventor, формат файлов бинарный, закрытый и никаких инструментов сравнения нет — это такой жуткий гемор… Приходится ориентироваться только на комментарии к коммиту и, соответственно, очень подробно эти комментарии писать.
В общем, ничего хорошего в нечитабельном формате файлов я не вижу, зачем ровняться на худшее?
0
> зачем ровняться на худшее?

Проблема в том, что равняться пока некуда — для зыка ДРАКОН редактор ИС ДРАКОН на сегодня и есть лучшее.
0
Да причём здесь драконы то? Что мешает авторам этой среды ровняться на тот же KiCAD? Почему не сделать формат хранения файлов человеко-читаемым?
0
Что мешает авторам этой среды ровняться на тот же KiCAD?
Да где же Вы видите авторов?! Автор то один! Остальные только критикуют.
0
>> Да где же Вы видите авторов?!
Да я и не смотрю туда — какое мне дело до того, сколько человек работало над программой? К сожалению от осознания того, что «Автор то один» программа лучше не становится. Вы ИМХО передёргиваете — качество архитектуры программы не от количества программистов зависит. Функциональность — да, зависит, а идеологические вопросы в проектах такого масштаба всё равно, как правило, один человек решает.
0
чем более сложен процесс разработки, тем важнее каждый его шаг протоколировать. Каждый. И если кто-то изменил чертеж, дорисовал там одну линию, нужно чтко знать
1. когда это было сделано
2. кто это сделал
3. дать возможность этому человеку написать где-то, зачем он это сделал

И самое важное: иметь возможность откатить эти изменения, вернуться к предыдущей версии.

Этот процесс можно вести как отдельно по каждому файлу, так и более комплексно — не суть.
0
«программирование в картинках» не особо одобряю
Зря не одобряете! Это действительно позволяет значительно снизить временные затраты на создание сложных алгоритмов, а также позволяет значительно ускорить оптимизацию алгоритмов.
0
На сколько оптимальным получается результат компиляции полученной из дракона программы? Сравнивали?
Просто насторожило замечание что переходы между блоками в Си осуществляются с помощью goto, и есть подозрение что программа может выйти перегруженной перекрестными ссылками (после бэйсика мне все кто мог вдалбливали в мозг что использование goto — моветон)
0
Рискну навлечь на себя кучу наездов, но по моему оператор goto это и не хорошо и не плохо. Просто это как любой инструмент которым надо пользоваться правильно, с умом, тогда когда он действительно необходим, тогда и проблем с ним никогда не будет.:) Хотя этот довод давно уже известен:)
+2
goto меняется на JMP и это самая простая и логичная для компилятора инструкция. Т.е. код получается оптимальней чем без goto где компилятору надо думать как выйти из функции — с возвратом параметров, али без них. Проблема goto в создавании нечитабельных текстов программ. Тут же тексты программ никого не интересуют.
0
+1, для кодогенераторов goto — совершенно нормально. Собственно, его в основном для этого и оставили.
0
Хорошо оптимизируется. В том числе при включении максимальных уровней оптимизации.
0
Идеология ДРАКОНа, с моей точки зрения, действительно правильная. Позволяет с легкостью создавать сложные, «красивые» алгоритмы. Уделено большое внимание «читабельности», эргономике алгоритма. А вот «ИС ДРАКОН» эргономикой особо не отличается, я бы даже сказал, несколько противоречит эргономическим требованиям, изложенным в идеологии самого ДРАКОНа. Если довести её «до ума», не использовать превосходных эпитетов при описании идеологии, то получится довольно хороший инструмент для написания программ, особенно полезный для обучения программированию новичков.
Радует, что это отечественная разработка, но, к сожалению, как и все отечественное, идея является прекрасной, а вот реализация иногда хромает и это мягко сказано.
0
  • avatar
  • kvm
  • 11 января 2012, 10:46
Присоеденяюсь к вышесказанному!:) Если бы кто то довел ее до ума, и добавил гибкости, то я бы с удовольствием бы даже купил ее за разумные деньги. Как сын подрастет, то ему объяснять алгоритмы и составление программ самое оно будет! Да и мне самому, с моими незаточенными мозгами под программирование в самый раз!:)
0
… чет я не могу скачать ИС Дракон!!!
0
> чет я не могу скачать ИС Дракон!!!
Попробуйте ещё раз. Там продолжаются доработки на странице, может быть Вы попали в неподходящий момент.
0
Главное в любой программе — алгоритм. В ДРАКОНе он рисуется, точнее — составляется из графических элементов. Очень похожих на элементы блок-схем.


О Господи, еще один LabView.

Так вот, на этапе программирования икон об этом думать уже не надо.

Совсем. Вообще. Никак. Не надо, и всё тут!

Всё, что нужно — аккуратно запрограммировать ОДНУ икону. Только ОДНУ! Когда будем программировать другую — про предыдущую уже можно не вспоминать.


Гы-гы, эта парадигма называется структурное программирование. :) Опять костыль для тех, кто не умеет алгоритмизовать без облегчалок…
0
  • avatar
  • _YS_
  • 11 января 2012, 11:17
Ну, не у всех на это мозги заточены, кому то нужны и костыли! Как мне например!:)
0
У кого не заточены, тем стоит затачивать, саморазвитие еще никому не мешало. Тем более, что умение алгоритмизовать и оптимизировать задачу сильно помогает и вообще по жизни. :)
0
> умение алгоритмизовать и оптимизировать задачу сильно помогает и вообще по жизни. :)

Как раз эти умения и развивает ДРАКОН. :)
0
Угу, а костыли развивают умение ходить, да. :)
0
Ну вообще, в идеологии дракона программист совершенно лишнее звено. Балласт. Собственно широкое внедрение этой системы позволило радикально сократить штат программистов, доверив написание программы непосредственно инженерам.
0
Господи, неужели инженеры настолько тупы тугоумны, что не могут освоить С?
0
А зачем? Не, ну в самом деле зачем изучать этот костыль если можно формализовать задачу непосредственно алгоритмом, где наглядно видны все затупы и косяки и получить готовый бинарик?

История Ариан 5 ничего не навевает?
0
Вопрос не в освоении С (тащемта в драконе на нем и приходится писать), а в минимизации ошибок. Вояки не зря себе Аду заказали — им нужен язык может и не очень удобный с точки зрения программиста, но минимизирующий вероятность ошибки программиста.
0
Ну родной дракон, роскомовский, это, как я понял, ваще нативный компилятор аля алгоритм билдер. Т.е. с жесткой завязкой на собственное железо. Без промежутчоных языков вроде Си или асма.
0
идеологии дракона программист совершенно лишнее звено


Мне кажется, что Вы переоцениваете роль ЯП в программировании. Программа рождается в голове разработчика в виде идеи/концепции/алгоритма. Среда разработки и ЯП – это лишь инструмент для реализации данной идеи. Ели алгоритм «кривой» — то ни одна среда разработки и ни один ЯП это не смогут исправить. Заслуга в том, что «Буран» мог совершать автоматическую посадку – это заслуга разработчиков ПО, а не конкретного ЯП.
Аналогично в электронике. Конкретное схемотехническое решение рождается в голове разработчика. А CAD-система лишь инструмент для реализации этого решения.
0
Так-то оно так, но ЯП, облегчающий поиск ошибок и отображающий алгоритм более наглядно — явный плюс. Это вам не С, который не то что предотвращает ошибки — он к ним располагает.
0
Ну, концепция ДРАКОНа однозначно имеет право на жизнь.

Я просто хочу сказать, что в программировании нет «серебренных пуль» — эффективность реализации конечной задачи напрямую завидит от уровня разработчика. И ни одни ЯП не позволяет качественно поднять этот уровень просто благодаря использованию именно этого ЯП.

Позволяет избежать определенных ошибок — это да, но поднять уровень разработчика – нет.
0
Категорически поддерживаю. ЯП это инструмент. Он может сделать работу удобной или неудобной, повлиять на производительность программиста, но никак не может повлиять на уровень.
0
Зато на количество допущенных программистом ошибок — еще как влияет.
0
Вот тут я, пожалуй, не соглашусь. Инструмент больше влияет на распределение ошибок между первыми двумя типами (синтаксические и рантайм), чем на количество ошибок в целом. Это, в свою очередь, оказывает влияние на затраты времени (и, соответственно, производительность) программиста. Например, одна из главных причин моего прохладного отношения к скриптовым языкам — значительное количество ошибок, которые в том же С/С++ или в жабе ловятся еще на этапе компиляции, в них «плавно перетекает» в ошибки времени выполнения, которые диагностировать и исправить значительно затратнее по времени, чем синтаксические ошибки.
0
Синтаксические ошибки, в отличие от рантайм, отлавливаются сразу. А отловленная ошибка — исправленная ошибка. И тут язык влияет сильно. Например, в Delphi традиционную сишную ошибку if(var=10){...} сделать просто невозможно, тогда как в С она проявится только в рантайме, и не так уж проста для отлова. Здесь же еще и алгоритм представлен графически, что делает его более наглядным, плюс дополнительные правила. Собсна, топикстартер сам же сказал про то, что перенеся алгоритм в блоксхему — сразу поймал в нем ошибку.

Хотя, конечно, от той грабли, из-за которой взорвалась Ariane-5 это не спасет, но все же.
0
традиционную сишную ошибку if(var=10){...}
ОООооо… как мне эта сишная фишка «нравится»… помнится, прям перед дедлайном наступил на эти (=/==) грабли… искал неделю, т.к. в том проекте, доставшемся в наследство, это очень активно пользовалось. %)
0
откройте для себя cppcheck :)
0
Та традиционная сишная ошибка давно (лет 15, а то и все 20) легко отлавливается по ворнингам компилятора (а в проектах покрупнее ворнинги часто приравнивают к ошибкам). Это я к тому, что пример не очень удачный. Но это не принципиально, важнее другое: ситуация с нахождением ошибки топикстартером, как раз, иллюстирует влияние инструмента на распределение ошибок.

К слову, представление алгоритма в графическом виде, как по мне, мало интересно. В более-менее сложной системе гораздо интереснее диаграммы взаимодействия. Во встороенных системах, подозреваю, не меньшую (а то и большую) ценность представляют диаграммы переходов, причем в явном виде. То, что я вижу в примерах/уроках в основном, как раз, и есть диаграммы переходов, только в неявном виде и скрытые под слоем, собственно, алгоритмов. Если к этому еще добавить объекты, будет совсем хорошо, хотя, подозреваю, в нынешнюю концепцию дракона это не совсем вписывается.

P.S. было бы любопытно поглядеть живьем на него, но перспектива ставить ради этого винду меня как-то не греет.
+2
К слову, представление алгоритма в графическом виде, как по мне, мало интересно.
Стандартный случай.
Зовет к себе главный конструктор. Мол, чего-то я не понимаю, как твоя программа работает.
Давай объясняй.
И начинается. Поиск, выдергивание и распечатка фрагментов, перевод с машинного на русский, объяснение тонкостей программирования и системных нюансов… Канитель на полдня.
И насколько проще было бы, если бы программа изначально задавалась в виде графического алгоритма и была к нему привязана намертво.
То есть, не так, что нарисовали вначале алгоритм, «потому что положено», потом 20 раз изменили, а в результате конечная программа ничего общего с ним не имеет. ДРАКОН подразумевает неразрывную связь в течение лайфтайма.
Ещё один нюанс: дракон позволяет оптимизировать алгоритм в целом, не зарываясь в мелкие детали и конкретику типа имен переменных функций. В книге «Как улучшить работу ума» описан рантайм чисто дракона, без привязки к конкретному языку программирования. При выполнении по шагам иконы подсвечиваются по очереди, что очень наглядно отражает суть алгоритма.
То есть, это позволяет проверить сам абстрактный алгоритм ещё до того, как написана первая строка кода. И очень подходит для программирования «сверху вниз», от общего к частному, с постепенным увеличением детализации вплоть до конкретных операторов и имен переменных.
-1
В этом «стандартном» случае диаграмма переходов куда как полезнее, чем алгоритм всей программы в целом. Посмотрите на примеры, там постоянно встречается «а вот если то, то устанавливаем состояние такое-то» в перемешку с остальной логикой. В итоге переходы между состояниями приходится держать в голове. Так а в чем смысл тогда графического представления, если столь важную информацию приходится собирать ползая по всей схеме? В том же С для подобных целей я могу, например, просто записать диаграмму переходов в виде таблицы и это будет намного удобнее для работы самому, на порядок проще для чтения и понимания другим программистом и во много раз удобнее для пояснения неспециалисту (конечно, если он школу не прогуливал, а учебники читал, а не курил).

Концентрация на алгоритме и программировании «сверху вниз», как по мне, здорово отдают нафталином. Это не плохо и не хорошо, просто из другой эпохи, программирование здорово изменилось с тех пор.
+1
P.S. было бы любопытно поглядеть живьем на него, но перспектива ставить ради этого винду меня как-то не греет.
У меня дома Ubuntu.
Под wine запустился как родной.
0
Все равно не родное оно…
0
Та традиционная сишная ошибка давно (лет 15, а то и все 20) легко отлавливается по ворнингам компилятора (а в проектах покрупнее ворнинги часто приравнивают к ошибкам). Это я к тому, что пример не очень удачный. Но это не принципиально, важнее другое: ситуация с нахождением ошибки топикстартером, как раз, иллюстирует влияние инструмента на распределение ошибок.
да то понятно. но как я говорил, проект достался в наследство, и эти части были задавлены прагмами. причем, целыми блоками… клиника конечно, но править ни времени ни желания не было…

P.S. было бы любопытно поглядеть живьем на него, но перспектива ставить ради этого винду меня как-то не греет.
в вине? ;)

кста, обнаружил забавную особенность (вина) — не хочет конфигуриться (./configure) ни по ssh, ни в сессии vnc. подавай ему живые физические иксы %) полдня вчера убил на поиски… %)
0
Под программистом я тут понимаю специального человека который алгоритм и ТЗ, придуманный конструктором, воплощает в код.
0
Согласен! Но у меня затачивание в другую сторону идет, и менять все — значит терять наработанный опыт, а так — недостающее костылями дополняется!:))) Тем более что некоторым это просто хобби, и по жизни могут стоять перед ними другие проблемы, задачи, которые имеют совсем другой подход!:) Интересно будет на работе попробовать дракон для брэйн штурма внедрить! Хотя врядли получиться!:(
0
Может это придирка, но структурное программирование — это парадигма С. Его основа — разбиение программы на функции.

Какая здесь парадигма — честно говоря, не знаю. Но и плохого в повышении уровня парадигмы не вижу. В конце концов, задача — написать работающую программу. Если оно существенно облегчает эту задачу — что ж в этом плохого? Тем паче, по видимому, с накладными расходами у этой системы дела обстоят вполне неплохо.
Опять костыль для тех, кто не умеет алгоритмизовать без облегчалок…
Ну вообще-то, эти костыли направлены именно на то, чтобы очистить алгоритмизирование от рутины. Асм тоже костыль же, для тех кто не может запомнить команды ядра, их двоичную структуру и карту памяти собственной программы. А С для тех, кто не не может упомнить не только это, но и паутину собственных GOTO и GOSUB (ну или JMP/CALL, что то же самое).
0
структурное программирование — это парадигма С


Хм. А разве парадигма привязана к конкретному языку? Суть парадигмы структурного программирования — разбиение программы на логически законченные блоки и дедуктивный подход.

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


Зависит от задачи, на самом деле.
0
А разве парадигма привязана к конкретному языку? Суть парадигмы структурного программирования — разбиение программы на логически законченные блоки и дедуктивный подход.
Нет, не привязана разумеется. Но в С она представлена можно сказать эталонно. Здесь же явно другая. А на логически законченные блоки программу делят и парадигмы модульного программирования, и объектно-ориентированного. В структурном таким блоком является функция или процедура (и то, и другое — разновидность подпрограмм), в модульном — модуль, в ООП — объект.
Зависит от задачи, на самом деле.
Задача, обычно, просто исключает некоторые парадигмы из-за того, что они делают невозможным решение задачи (так, например, выбрав основой проекта attiny10 без ОЗУ — исключаем gcc из списка возможных инструментов, ему нужна RAM и стек) своими накладными расходами или иными особенностями. Ну, еще бывает, что она делает какие-то парадигмы неудобными. Но в общем, обычно от чего получше приходится отказываться не потому что оно плохо, а потому, что с ним данную задачу не решить.
0
О умнейший и заточеный, что ж Вы на LabView гоните. Вы хоть ради приличия почитайте что это, для чего и для кого это нужно, и посмотрите какие вещи на этой системе делают и где они работают, а потом будете ляля.
0
К слову о заточенности. Я никогда не считал и не считаю себя программистом. Мозг у меня тоже работает в немного другом направлении. Однако почему-то у меня получается писать программы базового уровня, не используюя при этом тучи облегчалок.

Вы хоть ради приличия почитайте что это, для чего и для кого это нужно


С LabView (а заодно и Matlab), спасибо родной кафедре, знаком непосредственно. Слава Богу, прошло оно и забыл я все это как страшный сон.

Ну OK, погорячился, не совсем похоже на LabView. Скорее, еще один FlowCode.
0
FlowCode да, похож.
0
Однако почему-то у меня получается писать программы базового уровня, не используюя при этом тучи облегчалок.
Ключевое слово — «базового». Дальше уже приходится прибегать к специальным мерам. И зачастую примеры «С++ и ООП нафиг не нужен, xxx написано на С и прекрасно работает», при ближайшем рассмотрении, выявляют, что внутри как раз таки ООП парадигма, только реализованная средствами С вручную.
Да и даже на ассемблере большинство уже пишет в С-подобной парадигме. Разбиение на функции, локальные переменные и все такое.
0
Только вот любители редко уходят дальше базового уровня. :)
0
Ну, учитывая что я не только радиолюбитель, но и прикладной программист… 10к строчек — это так, разминка. Но при таком количестве уже начинают проявляться проблемы (хотя их еще можно решить на уровне структурного программирования, но я предпочитаю ООП).
0
Ну, это-то понятно. Но я, например, не знаю ни одной «домашней» задачи, где было бы мало даже таких объемов.
0
По мне так смахивает на возвращение к ассемблеру. А когда на асме пишешь программу то приходится по любому такой алгоритм в голове держать, получаться просто удобная программа для рисования алгоритмов с небольшими бонусами. Еще наверное может помочь не промахнуться когда куски кода копируешь и вставляешь.
0
Rational Rose напоминает.
0
если верить истории создания языка, то это роза напоминает дракона :)
-1
Оффтоп: при быстрой прокрутке глаз прочитал «ДРАКОНирование микроконтроллеров»
0
При быстрой прокрутке глаз и не такое бывает…
+1
Запустил ИС Дракон, а все меню вопросами вместо букв :( Причем если что то создать, то на схеме и внизу в строке помощи все читабельно, только все меню вопросами. Можно как нибудь вылечить?
Винды немецкие, регион и все языковые настройки на Россию поставлены…
0
Видать не все. Проверьте «Язык программ не поддерживающих Unicode»
0
а еще мб старая болячка с кодовой страницей. я так понимаю, ХРень стоит — у нее эта бага почти фичей стала… %)
0
система win 7, язык программ не поддерживающих Unicode стоит русский (русская федерация). В вин7 права нет возможности выбора таблиц кодировок как в XP… чет я даж не знаю че делать :(
0
Вот так выглядит. Вверху вопросы в строке меню и во всех менюшках. в среднем поле все нормально, схему создаешь — тоже все нормально показывает, писать на русском можно. В нижней строчке (там видно на картинке слово «просмотр») тоже русский отображается. Короче какая то неразбериха
0
Типичная грабля. Лучше всего попинать автора на предмет фикса.

Еще, если оно на Delphi/BCB — можно попробовать подредактировать ресурсы форм внутре exe. Подкорректировать шрифт либо перевести на английский.
0
Из переписки автора ИС Дракон
Здравствуйте.

Пробовал программу Dragon_2011_10_17.
В панели меню вместо кириллицы изображаются
знаки вопроса, хотя текст в окнах читается.
В версии Drakon2009_02_03, тоже самое.

У меня Windows 7 Home Premium 64 английская
с дополнительными языками, для не-юникод
программ установлен русский язык.
В Win XP Pro, наблюдается тоже самое.

Можете ли наставить на путь истинный?

Спасибо

Владимир
Решение проблемы
Здравствуйте, Геннадий.

Спасибо за подсказку.
Просмотрел сообщение.
Менял системные языковые настройки.
Нашел, что настройка Formats влияет
на отображение верхней строки меню,
хотя мне казалось, что она предназначена
для других настроек.

Буду учиться работать с программой.

Спасибо

Владимир
0
эвона как… А ведь в голову то и не пришло… Спасибо огроменное, помогло!
0
а в какой ассемблер транслирует эта среда?
0
Ориентации на конкретный ассемблер нет.

Для графического элемента формируются комметарии, т.е. после знака ";", генерируется код с IF-ами и GOTO, вне комментариев генерируются метки соответствующие адресам переходов графического алгоритма. Текст программного приложения графического элемента должен содержать ассемблерный код, он будет помещен после сформированного комментария.

Таким образом производится сборка ассемблерного кода всего алгоритма.

Наработки практики программирования в ИС Дракон на других языках кроме Си нет.

Возможно кому нибудь этло понадобится.
0
Как к среде подключается конкретный микроконтроллер и какие вообще возможно подключить?
0
среда генерит си, который компилишь в среде под нужный тебе контроллер.
0
ИМХО, тыцалка мышкой для тех кто неумеет писать код. Продолжение глупости вроде визуального IDE с рюшечками и автодополнения.
-1
Именно для них! А зачем нужны те кто умеет писать код? Если код смогут писать те кто его не умеет писать.
0
Исключительно вопрос качества и стоимости сопровождения. Не поверишь, но в чем-то подобный подход, используется, например, в софте который управляет поставками электронных компонентов на автомобильных заводах европы. Только рисование такой «блок-схемы» из десяти кубиков и доводка того что написано в каждом кубике стоит несколько мульенов нерусских денег.

Вторая сторона медали в том что между разработкой програмного обеспечения и написанем кода — пропасть. Если первое это искуство, то второе — ремеслиничество. Эть как яйца Фаберже и лепка кувшинов в соседней деревне.
0
Дракон появился же не просто так. При создании Бурана потребовался софт для его автоматического полета. Прикинули, что надо 100500 программистов и куча времени на создание ТЗ для них. Плюс потом еще куча глухих телефонов и прочих непонятнок. Времени не было, т.к. штаты вовсю свой шаттл уже гоняли. Плюнули и сделали систему (точнее три, которые после были слиты в Дракон) позволяющую писать код прямо инженерам. И получилось таки.
0
Что-то есть у меня подазруха, что на Буране эта фигня аналоговая была.

Смотри, в тоже время (1988-ой) Союз ТМ-7 брал на борт как запасной бортовой компутер калькулятор Электроника МК52. Много на нем не напрограмиш с Драконами, С++ и Паскалем. ;-)
0
На сях тоже.
А вот насчет дракона я бы не был так уверен.
0
Судя по мемуарам пусконаладчиков все там было уже вполне себе цифровое, по крайней мере во многих местах. О драконе и связи его с бураном и космическими программами тех лет говорится тоже очень много где, в том числе и авторами. Там правда оно не то, что представлено в этом посте. Тут скорей подобие по мотивам. Там же с жесткой завязкой всего на свою ОС, свой комп и железо.
0
Судя по мемуарам пусконаладчиков...
Сорьки за некропост, но где бы эти мемуары почитать?
0
на Буране эта фигня аналоговая была
Ога. Тёплый аналоговый Эльбрус :)
0
Смотри, в тоже время (1988-ой) Союз ТМ-7 брал на борт как запасной бортовой компутер калькулятор Электроника МК52. Много на нем не напрограмиш с Драконами, С++ и Паскалем. ;-)
0
Аполлон 13 вообще курс высчитывал как «на два дюйма от края илюминатора» и что? На то он и запасной вариант, чтобы работать тогда, когда все остальное отказало.
0
Не поверишь, с тех пор мало что поменялось.
0
На сименсовых контроллерах вроде тоже блок-схемами программируется работа.
0
Там дофига вариантов. От ассемблероподобного IL до FB штук шесть наверное разных.
0
Есть такая штука, CoDeSys, среда программирования для языков стандарта IEC 61131-3. Среди них есть один потрясающий язык, SFC. Он напоминает внешне ДРАКОНа, но это несколько иное. Там корни растут из сетей Петри (это где-то 60-е годы прошлого века) и основной фокус сотоит в том, что в сетях есть так называемый маркер — флажок, показывающий активный блок (там называют его шагом, я для себя называю фазой) и есть простые правила его дывижения по сети. Вот именно продвижение маркера и есть ход исполнения программы.
Кроме шагов есть переходы. Есть еще и действия. Переходы и действия пишутся на любом из доступных языков (в Кодесисе я пишу на паскале-подобном ST).
То есть, что похоже: тоже вроде блок-схемы, тоже внутренности программмируются на одном из «обычных» языков программирования, тоже бесподобная наглядность и легкость разработки.
Но, ИМХО, главное различие в том, что ДРАКОН позволяет представить программу в виде ЛЕГКОКОДИРУЕМОЙ БСА, а SFC — реальная программа. Например, когда я отлаживаю программу. я вижу (в той же Кодесис) активные шаги.
Да, и сопровождение КДС совсем иное. Там целое сообщество. Правдв, от этого и некоторая косность возникает, естественно.
Может я и ошибаюсь в том, что написал о ДРАКОНе. Тогда прошу извинить. Я только вчера узнал о его существовании и толком не очень понял. Но вещь очень понравилась. Уже представил, как здорово — контроллеры программировать на SFC, микроконтроллеры — на ДРАКОНе. Визуализация бешенная :)
0
Ну так всякие LD и SFC как раз и делались по принципм дракона, т.е. программирование без программистов. Только там несколько другой подход. А Дракон это не только сам язык построения схем, но и идеоология их построения. Книжку почитай, очень приятно написана и небольшая.
0
это даже не ide, а скорее case средство. Очень грамотно все сделано. А косяки в среде из за того, что ее делает энтузиаст на коленке
0
Посмотрел видеоролики примеров. Впечатлило. Хочу попробовать. Но пока не понял как получается прошивка. Кто-нибудь пояснит?
0
Я попробую пояснить. Только сначала уточните — в каком месте становится непонятно?
0
Извините, но место уточнить не могу. Вообще результатом написания программы является прошивка. Как она делается?
0
Вообще результатом написания программы является прошивка. Как она делается?
Оба ролика именно об этом — как сделать прошивку. Выполняются следующие шаги:
— Запускаем среду, создаём графические дракон-схемы алгоритма.
— Во все иконы вписываем команды на выбранном языке программирования.
— Нажимаем клавишу Ctr+F9. Дракон-Редактор записывает файлы с исходными текстами нашей программы.
— Компилируем и линкуем эти файлы компилятором и линкером для выбранного языка.
— Линкер записывает файл, пригодный для «заливки» в процессор.
0
Вот это
— Компилируем и линкуем эти файлы компилятором и линкером для выбранного языка.
— Линкер записывает файл, пригодный для «заливки» в процессор.
делает внешняя программа или сам ДРАКОН?
0
Внешняя. В этом плане можно рассматривать ИС ДРАКОН как кодогенератор.
0
Возможна ли в принципе ситуация, при которой на сгенерированный код компилятор впоследсвии выдаст ошибку?
0
Конечно, возможна. Среда не контролирует, что Вы напишете в программные приложения. Если там будут ошибки синтаксиса — компилятор на них заругается.
0
В каждом кубике ты прописываешь что он делает, т.е. если это условие, то какое. Но все переходы дракон иде формирует само. Тупо, примитивно, дубово, но само. А главная заковыка любого ЯП это структура всего этого ветвления. Тут то все сильно и облегчается.
0
Отличная вещь. Осталось сделать систему шаблонов, что бы не только автор список поддерживаемых языков пополнял.
0
Ну что ж. поскольку у меня проблемы начинаются именно на моменте перехода от схемы к программе то должно помочь и развить фантазию и образное мышление.

Попробуем посмотрим подумаем…
а пока почитаем.
0
тут вспомнилось…
«Я применяю ДРАКОН вместе с FreeRTOS»
efanov
Пример можете показать?
очень хочется посмотреть как выглядит реализация многопоточности касательно AVR в драконе.
0
сказано ведь «совместно». подозреваю, что просто таски описываются в драконе, не более того. а потоки и прочую «обслугу» обеспечивает ось.
0
Вот Дракон-Лист из реального проекта.

Эта функция выполняется как задача FreeRTOS, причём, в 16 экземплярах. В иконах, там где это нужно, записаны вызовы функций FreeRTOS. Например, в иконе «2мс» записано: «vTaskDelay(2);», а в иконе «Захватить память» записано: «xSemaphoreTake( xMutex_eeprom_use, portMAX_DELAY );».
0
Слишком мелко. Запили на внешний хостинг в оригинальном размере.
0
0
Так, так 2 мс на задержку после передачи по RS-485…
Прерывания нихт?

зы присматриваюсь я мало-маленько к rtos но если это там так делается то не надо
0
2 мс на задержку после передачи по RS-485
Не после передачи, а перед началом передачи, после включения драйвера в режим передачи.
Прерывания нихт?
Откуда такой вывод? Из того, что этот алгоритм не запихнут в обработчик прерывания?
В прерывании делается минимум: принятый байт кладётся в очередь. И всё. Нагружать прерывание протокольными делами я не стал. По той причине, что на шине RS485 подключено много устройств, с разными длинами и структурами пакетов.
присматриваюсь я мало-маленько к rtos но
Интересно, а как можно «присмотрется» к FreeRTOS, глядя на этот алгоритм? Да, в некоторых иконах тут есть вызовы API FreeRTOS. Но в передыдущей модели этого устройства алгоритм был тот же самый, хотя FreeRTOS в том варианте не было…
0
я понял что RS-485 на передачу это как раз и есть посылка.
Зачем тогда 2ms задержки непонятно?
0
В описании датчика уровня топлива LLS прописано:«Мастер может отсылать команду не ранее чем через 0.5ms после получения полного ответа от устройства на предыдущую команду.» Точность отработки интервалов в данном устройстве — 1мс. Если задать задержку 1 мс, она будет плавать от 0 до 1 мс. При задании 2мс — от 1 до 2 мс.
0
Большое спасибо за освещение данной темы и популяризацию альтернативных (относительно мэйнстрима) средств и методов разработки.
Жаль только, что проект (насколько я понял) не опенсорсный. Особенно круто было бы реализовать в виде плагина к популярным IDE (типа eclipse, C::B) и добавить реверсивный режим. Но это я уж совсем размечтался…
0
Реверсить IDA умеет. ;-)
0
Произвольный исходник в блок-схему алгоритма?
Сомневаюсь.

Есть такие программы, но они тоже только в одну сторону работают.
0
По ИС ДРАКОН возникли некоторые измышлизмы:
1. Ее использование не отменяет необходимость знания Си (или другого используемого),
2. Генерирование кода в виде переходов goto является неудобочитаемым. Почему нельзя избавиться от этой беды? Или автор просто не может сделать иначе?
3. Сам дизайн программы и ее эргономика находятся на примитивном уровне.
+2
1. «знание языка си» может ограничиваться вызовом готовых функций из библиотеки. И то на самом нижнем уровне, при максимальной детализации. Здравое зерно в этом есть.
2. А ассемблер, генерированный компилятором, удобочитаем? Си-код в этом случае не больше, чем буферная прослойка, к тому же обильно (и автоматически) посыпанная комментариями из алгоритма
Конкретный язык в этом случае вообще имеет второстепенную роль, что возводит дракон ещё на более высокую ступень по отношению к любым другим языкам.
Перекодировка с си на делфи и обратно одним щелчком галочки — слабо?
3. Обидеть художника всякий горазд :)
0
Если внимательней посмотришь, то увидишь что ДРАКОН и Algoritm Bilder совершенно разные по сути, несмотря на внешнее сходство. А так, штука вполне хорошая, для любительских разработок хорошо подойдет.
0
Ну, не совсем! ДРАКОН и Algoritm Bilder — это в первую очередь идея, и от того насколько она хороша зависит ее жизнеспособность. За хорошей идеей пойдут еще разработчики, и будут дальше разрабатывать, и дальше совершенствовать эту идею. А AVRstudio в первую очередь коммерческая приманка для продажи чипов. И куда пойдет Атмел, туда и нам придеться идти. Или искать что то другое:)
0
Был бы спрос, появится и предложение. Чем больше народу заинтересуется, тем больше вероятность.
0
А вот чтобы так не произошло проект и стоит сделать open source. Только в этом случае к разработке подключатся и другие программисты, он быстрее сможет набрать популярность. Пока исходники будут закрыты и разработкой будет заниматься один человек развитие проекта будет очень медленным, да и исчезнуть он может, как Вы и написали.
+1
Сейчас есть счастливая возможность — начать такой проект!
0
Прежде, чем начинать новый проект, надо усвоить опыт ИС Дракона.

ИС Дракон — это первопроходец, это развитие в течении 4-х лет.

В истории Дракона в 2007г. уже организовывалась большая группа для разработки, но заглохла.

С развитием ИС Дракон, сам язык получил большое развитие. Язык Дракон из идеи, никем и нигде не применяемой, стал реальным и универсальным инструментом.
0
Насколько я понимаю, существует специализация у программистов. Вопрос, сделают ли программисты микроконтроллеров среду разработки на языке Дракон для общего и широкого применения?
0
МК для многих — хобби. Я, например — программер-прикладник, среда разработки — вполне в области моей специализации. Не думаю, что я такой один, так что, если перевести ИС Дракон на коллективную опенсорную схему разработки — вполне может найтись несколько человек с различными интересами, которые и обеспечат хорошую применимость ИС Дракон в областях своих интересов.
Заодно это в значительной мере обезопасит ИС Дракон от смерти в случае если автор перестанет ее развивать. В мире опенсорса не так уж мало примеров программ, брошенных изначальным автором и подхваченных другими, из достаточно известных можно назвать, например, ffd-show (весьма неплохой бесплатный видеокодек, в большинстве сборок именно он декодирует большинство форматов), Media Player Classic (один из наиболее прямых плееров на базе DirectShow).
0
Программисты микроконтроллеров могут сделать среду разработки на языке Дракон. Например, я не только программист микроконтроллеров, но и программист под «Windows». И я не один такой. Начинать разработку среды с нуля тяжело, поэтому хочется в качестве заготовки иметь хоть какие-то исходники.
0
efanov, с задачами то всё более менее понятно, а вот с тем как может выглядеть их диспетчер и как один силуэт вызывается из другого?
0
На программном уровне силуэт представлен обычной функцией. Её вызов ничем не отличается от вызова любой другой функции. Для вызова функций в ДРАКОНе предусмотрена икона «вставка». Какого то особенного представления для диспетчера нет, это тоже силуэт.
0
А как в драконе обработчик прерываний изобразить?
0
У меня получилось довольно просто: добавил в Гном вставку, а потом описал обработчик как отдельную функцию… посмотрел листинг-отлично!
0
При проверке схемы ИС Дракон выдаёт сообщение о наличии критических ошибках ввода, как только убираешь блок «Обычный цикл» ошибки пропадают, что это за ошибка, что я делаю не так?
0
ИС ДРАКОН таким образом протестует против бессмысленных (пустых) циклов ожидания. На схеме около некоторых точек ввода Вы видите знаки вопроса. ИС ДРАКОН ожидает, что в этих точках должны совершатся какие то полезные действия. Несмотря на эти предупреждения, код генерируется правильный. В реальной (не учебной) программе пустые циклы вряд ли останутся, и эти предупреждения исчезнут.
0
Спасибо огромное за ответ, я пока ковырялся уже это понял, а вообще очень впечатляет среда!!!.. буду ковырять со всей пролетарской ненавистью… Вам большой респект за статью, очень интересное направление…
+2
Спасибо за добрые слова. Желаю успехов в «расковыривании». Уверен — не пожалеете…
0
Уже не жалею… мозг работать начинает по другому… на многие алгоритмы написанные мною смотрю с другой стороны… прикольно!
0
Ещё один вопрос, пока нигде не могу найти ответ, что такое А-приложение и Б-приложение, для чего их нужно или можно использовать?
0
На иконах внизу справа есть 3 квадратика. При нажатии на любой квадратик открывается текстовый редактор. Можно записать текст, и он будет сохранятся «внутри иконы». 3-й квадрат — это «программное приложение». Сюда Вы пишете операторы Вашей программы. Из них потом будет сгенерирован текст программы. А 1-й и 2-й квадратики — это и есть приложения А и Б. Их можно использовать для разных нужд. Например, написать расширенный комментарий к иконе. Или какие-то спецификации. Любой текст.
0
Спасибо за ответ! Про третий квадрат в Ваших видеоматериалах очень хорошо освещено, а вот первые два меня и заинтересовали, про первые квадратики в заголовках приложения ответ я нашёл на форуме OberonCore, а вот что они представляют в иконаках не нашёл(хотя и подозревал, что то же самое), но вдруг представляют ещё какие-нибудь возможности… кроме информационных.
0
Посмотрел эту программу — как будто на 20 лет время ушло. 95% нужно сначала продумать (шампуры, дороги царские и прочее), сам анализ прост после таких формальных ограничений. Над графикой и управлением еще работать и работать. Сам давно использую Visual Studio от MS и Enterprise Architect — и для С# и для баз данных и для С/С++ embedded. Сильно радует что там нет русских букв (и проблем с ними связанных). Размер программ несколько больше, но это меня не огорчает. Конечно если бы автор сделал плагин для анализа в какую-нибудь (можно и не в EA) систему — это было бы удобно (и вполне востребовано).
0
  • avatar
  • x893
  • 18 января 2012, 22:09
Нашел на сорсфорже альтернативный вариант.
Качаю, буду пробовать.
0
Как его запускать то?
0
Скачать TCL/Tk — там написано.
Я уже заценил :)

Отметил ряд положительных моментов.
1. OpenSource.
2. Кодогенератор отделен от редактора. Идеологически правильно.
3. Формат хранения дракон-схем — SQLite3. Открытый и понятный.
Я тоже склоняюсь всегда к использованию понятных и общепринятых форматов, типа БД или xml
4. Изначальная кросс-платформенность
0
Больше драконов, хороших и разных!
И главное, согласовать формат хранения данных. Остальное вторично.
0
В идеале инструментальные средства дракона должны быть разработаны на нем же.
0
Посмотрел поподробнее — ну надо же!
Рядом со всеми составными файлами .tcl находятся точно такие же .drn
Следовательно, так и есть. Среда написана на драконе и затем транслирована в Tcl/Tk.
Будет время, поколупаюсь поконкретнее.
Пытался установить на андроидный планшет, поскольку он всегда со мной, в отличие от ПЦ.
Tcl установил, запустил, но споткнулся на либе sqlite3-tcl.

Кстати говоря, предыдущая среда тоже имеет свои преимущества. Вот если бы их объединить…
И начинать надо со стандартизации формата хранения дракон-схем.
0
предыдущая среда тоже имеет свои преимущества
Угу. Например, она позволяет создавать полноценные программы. В отличие от.
0
То, что сгенерировалось — тоже в принципе понравилось.
/* Autogenerated with DRAKON Editor 1.8 */
#include "01.Insertion.h"


static void Cook lunch(void);

static void Cook potatoes(void);

static void Make salad(void);

static void Prepare meat(void);

static void Cook lunch(void) {
    /* item 4 */
    Make salad
    /* item 5 */
    Cook potatoes
    /* item 6 */
    Prepare meat
    return;
    
}

static void Cook potatoes(void) {
    /* item 16 */
    Peel potatoes
    /* item 17 */
    Boil potatoes
    /* item 18 */
    Add butter
    return;
    
}

static void Make salad(void) {
    /* item 10 */
    Wash vegetables
    /* item 11 */
    Slice vegetables
    /* item 12 */
    Blend vegetables
    return;
    
}

static void Prepare meat(void) {
    /* item 22 */
    Cut in pieces
    /* item 23 */
    Stuff with garlic
    /* item 24 */
    Bake in oven
    return;
    
}
0
Вот, эта IDE уже больше похожа на идеологию дракона — всё должно быть красиво! Ну и Open Source изначально, что тоже замечательно. Вот только «раскрутки» мало, если не сказать, что нет совсем.
0
Идея понравилась — мне бы пригодилось. Вот только реализацию под асм не понял. Генеряться только метки. Подставлять свои операторы переходов можно либо в готовом файле — что затрется новой версией (плохо), либо ставить доп блоки с переходами — что запутает программу (очень плохо). Или я что то не понял?
0
  • avatar
  • psv
  • 21 января 2012, 10:34
Нужно просто помочь автору поправить программу в части генерации ассемблерного текста. Он очень охотно откликается на такие просьбы, и оперативно вносит исправления.
0
Необходимо предусмотреть возможность замены гото другой командой и в условных переходах что-то придумать с заменой стандартной иф. А так — для больших программ на асме очень бы пошло. Кто листает 20 страниц чтобы скопировать имя переменной а затем обратно 20 ищет место чтобы вставить — меня поймет.
0
Необходимо предусмотреть возможность замены гото другой командой
А почему гото необходимо заменить?( Я имею в виду язык Си. )
+1
Да я все воюю за асм. Да и для других бы пригодилось — универсально было бы
0
Ранее писал, повторю здесь:

Для графического элемента формируются комметарии, т.е. после знака ";", генерируется код с IF-ами и GOTO, вне комментариев генерируются метки соответствующие адресам переходов графического алгоритма. Текст программного приложения графического элемента должен содержать ассемблерный код, он будет помещен после сформированного комментария.

Таким образом производится сборка ассемблерного кода всего алгоритма.
0
Т.е. переход формировать самому. Тогда где? В любом блоке с данными, за которым потом можем случайно всунуть еще блок? Или в готовом тексте, который затирается любым изменением в алгоритме?
0
То есть, получается, что текст программного приложения на асм-е расположен после знака комментария ';'. А как его в таком случае использовать?
0
В вашем программном приложении ассемблерный код должен реалиловывать все о чем написано в сгенерированном комментарии, т.е. обработку данных, проверку условий и выполнение условных и бецусловных переходов на сгенерированные метки.

Заголовок процедуры (объявления) помещается в начальной часть программного кода схемы, завершение процедуры помещается в конечной части.

Заголовок файла (лбъявления)помещается в начальной части иконы «Модуль» в схеме «Гном», завершение файла помещается в конечной части. В тексте иконы помещается имя генерируемого файла и список собираемых схем.

После трансляции файла ошибки устаняются в ИС Дракон и трансляция повторяется.
0
Вы предлагаете отслеживать еще и метки? А если в алгоритме что-то поменяется — менять самому все переходы?
0
Метки соответствую номерам графических элементам, При перестройке алгоритма, у графических элементов номера не меняются, т.е. адреса переходов сохраняться. Для новых элементов надо прописать их программный код, если вы перенесли лиану (связь), то необходимо и соответственно изменить адрес перехода в соответствии с изменением в комментарии.

Вопрос, что же даст Дракон при программировании на ассемблере? Вы предварительно создаете и отлаживаете алгоритм, и получаете структуру программы с метками и сообщениями о необходимых переходах.
0
В программном приложении иконы «Развилка» я написал:

cmp R1,R2;

В тексте программы на этом месте появилось:

;if not (cmp R1,R2) then goto L11

Как это можно использовать?
0
Я бы предусмотрел два кубика в развилке — вставка команд на да и на нет. И еще кубик замены команды гото на адресе. А то что генерится для си применять опасно и противоречит принципам дракона (как я понял). Получается что то что должно помогать — может здорово потом запутать.
0
ИС Дракон не ориентирован на конкретный ассембмлер, он дает указания в комментариях, что должно выполнятся в асм коде.
0
ИС Дракон вообще не ориентирован на конкретные языки. Программист должен умет использовать язык одного из семейства языков в среде ИС Дракон. Утверждение о «программировании без программиста» — это миф.
0
На конкретный ассемблер ориентировать не надо — им нет числа. Но у всех современных есть механизм макросов. Если вместо конкретных команд генерировать макросы, которым в качестве параметра передавать текст программного приложения иконы — то ИС сможет «обслужить» огромное количество разных языков без дополнительных усилий с Вашей стороны…
0
Конкретного асма в данном случае нет. Все они одинаковы. Но вот главное удобство дракона — автоматическая генерация переходов для асма не работает, а жаль.
0
Ефанов задает вопрос — написал «cmp R1,R2;»

На иконах не надо писать в терминах языка программирования, на иконах должно быть написано в терминах прикладной области, т.к. алгоритм разрабатывается в терминах прикладной области, а реализация смысла текста иконы выполняется на языке программирования в программном приложении иконы.
0
В программном приложении иконы «Развилка» я написал:
0
Комментарии к каждой иконе вы получаете в сгенерированно тексте программного файла, Соответствующий комментарию асм код вы должны поместить в программное приложение этой иконы. При следующей генерации кода в программном файле будет комментарий и асм код к данной иконе.
0
программнй код не обязательно генерировать в файл, его можно получить в текстовом окне сообщений при выборе 4-го квадрата схемы или иконы «Модуль».
0
Ну а в «терминах языка» я должен буду выполнить переход на блок, которого может потом и не быть. Да ладно. Можно и на асме изловчиться — я же не говорил, что это невозможно. Просто очень не удобно.
0
Вы приступите к программированию с ИС Дракон с сриого простого, и по мере освоения, усложняйте задачу.
0
читать — с самого простого…
0
Неужели нельзя просто сделать конфигурируемый кодогенератор, в котором можно будет настраивать свои языки?
0
+100500
0
Присоеденяюсь к вопросу! Причем конфигурацию задавать в формате текстового файла, то можно будет настраивать не только языки программирования, но и вообще все что угодно, лишь бы хватило фантазии! Так что просим автора это осуществить! Просим!
0
777grey
Так что просим автора это осуществить! Просим!
Какм это сделать?

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

Вообще же, универсальные вещи всегда сложные, иногда не оправдывают надежды, не всегда востребованы и пользоваться ими сложно.

Может что нибудь конкретнее.
0
Смотря что именно нужно хранить. Если структуры данных описания ожидаются достаточно сложные, то можно взять, например, XML. Или JSON.

По поводу «универсальных вещей». Если говорить «вообще», то тут ответа нет, как лучше, универсальное или специализарованное. Если же применительно к инструментам разработки софта, то тут универсальность приветствуется практически всегда, достаточно посмотреть на эклипс или имакс. Да и мелкософт со своей визуалстудией тоже, почему-то, пытается соорудить универсальную среду разработки. «Наверное они что-то знают» :)
0
Да и мелкософт со своей визуалстудией тоже, почему-то, пытается соорудить универсальную среду разработки.
И достаточно успешно, разработчики всяких компиляторов вроде GPCP, Nemerle или Chrome (ныне Delphi Prism) как правило прикручивают их именно к MSVS.
Да и настроек там столько, что даже мне страшно)
Но при этом среда удобна и достаточно легко осваивается на базовом уровне. Хотя BDS мне в этом плане нравится даже больше.
0
Вообще же, универсальные вещи всегда сложные, иногда не оправдывают надежды, не всегда востребованы и пользоваться ими сложно.
Зато вокруг закрытых и ограниченных приходится плясать в бубном и обвешивать костылями.
Для какого-нить однокнопочного перекодировщика видео для айфона это еще приемлемо, но программистские инструменты должны быть гибкие и расширяемые. Что до сложности… Программист не домохозяйка. Впрочем, при должном дизайне гибкость совсем не обязательно комплектуется сложностью.
Предложите формат текстого файла для этих целей.
Тащемта это задача программиста — формат разработать. Здесь никто (кроме автора) даже не знает как работает кодогенератор в ИС Дракон и какая ему нужна информация. Так что могу дать только общее предложение — XML :)
0
Мне одному будет сложновато подобное предложить, банально не хватит знании. Но можно обратиться с этим вопросом к сообществу, и сообща выработать формат такого файла. Тут куча крутых специалистов из разных сфер творчества. Можно даже топик написать по этому вопросу, где все смогут высказаться.

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

Таким образом в кратчайшие сроки редактор будет заточен под разные языки и под разные компиляторы! Если где ошибаюсь, то пожалусто исправте меня!
0
Сейчас необходимо сделать актуальную справку к программе.

К вопросу о других языках, необходимы:
1. конкретный заказчик с которым можно работать, уже знающий ИС Дракон,
2. конкретным язык. В нем:
3. оператор — комментарий до конца строки,
4. оператор — if,
5. оператор — goto,
6. операция — not.

В другом варианте — сделать сложно.
0
1. конкретный заказчик с которым можно работать, уже знающий ИС Дракон,
Давайте я попробую
2. конкретным язык.
ASM, С, возможно — какие то другие
оператор — комментарий до конца строки,
#OPERATOR_COMMENT
4. оператор — if,
#OPERATOR_IF(x)
На место «х» подставлять текст из иконы «Развилка»
5. оператор — goto,
#OPERATOR_GOTO(x)
На место «х» подставлять имя метки, куда переходим
6. операция — not.
#OPERATOR_NOT

Кроме того, нужно дать возможность пользователю самому также задать префикс ( в данном примере "#OPERATOR_".
0
А нельзя все вышеперечисленные операторы вынести в этот конфигурационный файл? И все ключевые моменты редактора?

Я к сожалению не программист, и только разбираюсь с ИС ДРАКОН, но если могу чем помочь — контакты на сайте есть, буду только рад помочь!
0
3. оператор — комментарий до конца строки,
4. оператор — if,
5. оператор — goto,
6. операция — not.
И в чем проблема вынести все это в конфиг, в духе этого (на примере синтаксиса ini-файла)?
[C]
comment=//%comment%
if=if(%statement1% == %statement2%) {%operators%};
goto=goto %label%;
not=!%statement%

[Pascal]
comment=//%comment%
if=if %statement1% = %statement2% begin %operators% end;
goto=goto %label%;
not=not %statement%
0
Кроме того, лично я бы формировал из схемы дерево данных, в духе

TIconType = (itCondition, itOperation, ...);
PIcon = ^TIcon;
TIcon = record
  IconType: TIconType;
  IconText, ProgramText, AuxText1, AuxText2: PChar;
  NextIcon1, NextIcon2: PIcon;
end;

и передавал его во внешний плагин-кодогенератор, с интерфейсом в духе
function GenerateCode(RootIcon: PIcon; OutFile: PChar): HRESULT;

Таким образом, можно хоть картинку из исходника сгенерить, а не только текст.
0
(хоть к теме весьма прохладен… ;) )
еще необходимо описать некие разделители типа таб, перевод строки, и тп.
например из описания паскаля:
if=if %statement1% = %statement2% \r begin \r\t %operators% \r end;


чтобы потом оно выписалось во что-то типа:

if %statement1% = %statement2%
begin
    %operators%
end;
0
Всем.
Спасибо за внимание к ИС Дракон и предложения к сотрудничеству. Прошу повременить с предложениями по развитию.

Мне нужно сделать актуальную справку к ИС Дракон, только потом будет возможность расширять программу.

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

Еще важно перейти от индивидуального использования к коллективной практике применения.

С уважением, Геннадий Тышов.
0
Кто как, а я лучше поковыряю открытый DRAKON Editor. Во первых, я куда больше уважаю свободное ПО, а во вторых, он выглядит более качественно спроектированным.
0
А мне вот не понравилось… Прямоугольнички и линии токо рисуешь, ни связи между ними — любой элемент как хочешь двигать можно, теряя связь с другими элементами, ни автоматического сдвига, если что то добавить в середину надо… Пейнт с предопределенными фигурами… Хотя я может просто невкурил. Хотя желания дальше вкуривать нет, по моему ИС Дракон лучше для работы приспособлен…
0
Мне тоже не понравился drakon editor. Куча времени уходит на рисование. Даже успел забыть что хотел сделать. Ждем ИС Дракон.
0
Почему ждем?
Здесь выложен новый выпуск ИС Дракон от 23.01.2012. Финальная версия, предполагается будет стабильной.
0
Ждем адаптации под другие языки, если будет конечно.
0
За перевод на нерусские языки спасибо, а то знакомые мои идеей прониклись, а по-русски ни гугу
0
Во во. Именно из за русского я его и не попробовал. Переключать винду небуду. А переключить язык нельзя… Вот и не изучаем :)
0
Можно сделать перевод на другой язык.
Язык должен позволять записывать текстовые файлы в формате ANSI.

Перевод выполняется программой — переводчиком на сайте Google. Пользователь может отредактировать файл словаря.

Пишите, какой нужен язык?
0
Да я думаю английского достаточно. Я так понимаю, справка или какая нибудь документация на английском или немецком пока не планируется?
0
Condor
В поставке есть папка с файлами словарей на английском и немецких языках переводов всех текстов интерфейса. Необходимый файл, соответствующий локализации компьютера, скопируйте в папку программы.

Переводы выполнены программой переводчиком на сайте Google. Вы можете сами корректировать перевод в редакторе «Блокнот».

Сделайте и о результате расскажите здесь.
0
Да я ж написал, мол за перевод спасибо. Интерфейс стал на английском. Все работает. Но справка осталась на русском…
0
Нечто подобное имеете в виду? ;)

Это окно редактирования настроечного модуля.
Есть еще непосредственно XML, доступный для прямого исправления:
"<?xml version=«1.0» encoding=«windows-1251»?>

__ПРОГР &name;;
__НАЧАЛО _10 &address;;

*
__АДРП &address;;

,&address;);

__КОНЕЦ;

М#
:
;
__БПВТ АВХ3.Д2;
__КОНС 111753;
__КОНС _8 &address;;

__БПВТ АВХ3.Д2;
__КОНС 111776;
__КОНС _8 &address;;

__ВСТ &address;;

__БП &address;;

__БПВТ AВХ1.Д2;

_КОНС _8 &adrtime;;
_КОНС _8 &address;;

+
1000
10000
2
__КОНЕЦ;

__КОНЕЦ;


"
0
это че за окно такое? Если это из ДРАКОНА, то я так далеко не был еще :)
0
Нет, это из другой среды. На протяжении нескольких лет мы создаем нечто подобное (система автоматизации процессов создания и верификации управляющих программ с элементами визуального программирования), но для спецзаказчика. В том числе есть генератор управляющей программы, с настройкой на различные ассемблеры или языки высокого уровня, для чего создана отдельная программа-конфигуратор. Сами настройки хранятся в файле XML. Вроде о подобном идет речь, поэтому и привел как возможный пример.
0
Здесь об описании различных языков программирования для ИС Дракон.
0
IAR VisualState никто не пользовал? На первый взгляд, любопытная программа, но не изучал. Есть смысл, интересно?
+1
Интересно!, Сам скачал, поставил, и забыл так как других дел навалом появилось.
0
Прикольная книга. Им бы тексты для сект писать xD. Затягивает. Половину прочитал. Действительно простые правила, и действительно читабельность в разы увеличивается.
На уроках информатики начал применять некоторые эти правила. Без дракона, на простых блок-схемах.
0
На уроках информатики начал применять некоторые эти правила. Без дракона, на простых блок-схемах.
Следующий шаг — усечение ромбиков.
Ну а там останется загнуть кишку колечком…
0
Какого дьявола видео запаковано в exe? Или это такой новый метод обучения — просмотр без возможности перемотки???
0
Таки я Вам что то должен?
0
Как Вам сказать… Пропагандируешь — пропагандируй. Или этот язык не для линуксоидов? Тогда укажи это в шапке. Впрочем, чего это я разкомандовался? Оставь всё как есть! Ё-моё, опять директива. А-а-а-а-а-а-а-а!!!
0
Впрочем, для себя я проблему решил сдёрнув видео с ютуба плагином Оперы.
0
Там есть возможность перемотки, но не непрерывной. Щелчком по бару близко к нужному месту.
0
видео запаковано в exe
Лол. Дибилизм)
0
В чём проблема-то? Купите доменное имя, оплатите хостинг, купите программу для записи роликов, более крутую, чем у меня — и сделайте всё хорошо и правильно. Это будет гораздо лучше, чем тявкать тут на караван.
0
Можно я встряну в вашу милую беседу? Спасибо.
Но зачем же всё покупать? Есть море безплатных хостингов, да и покупать программы не наш метод. ;-))). Не бери в голову этот оффтопик — брюзжу.
А за уроки — благодарю! Переписываю сейчас один проектик под Дракона, интересно что получится…
0
Бесплатного на самом деле, ничего не бывает. Бесплатный хостинг «гарантирует», что на страничке будет реклама какого-нибудь непотребства. Бесплатная программа для захвата экрана не позволяла сделать файлы, пригодные для выкладывания на ютьюб. А насчёт видео в exe — мне просто очень понравился авторский формат, который в 5-6 мегабайтном файле сохраняет 15 минутный ролик без потери качества. Как альтернатива «стандартному» ролику на ютьюбе. Который в 10 раз больше, а показывает «размытое» видео.

PS: Все материалы на странице лежат с разрешения их авторов.
0
SCREEN2EXE?
0
Ну, положим, караван из одного человека несколько… скажем так, жидковат. Да и иметь мнение отличное от вашего и высказывать его, вовсе не значит тявкать.
+1
иметь мнение отличное от вашего и высказывать его
И имейте, и высказывайте. Но если в «высказывании» употребляется определение «дебилизм» — то это, всё таки, тявканье!

По поводу «каравана из одного человека» — неверно. Тут довольно много людей высказались положительно о языке, и даже об уроках. Так что — вполне себе «караван».
0
оххх… забавно. но давайте обратимся к истокам. «собака лает, караван идет». заметьте, «лает», а не «тявкает». минус автору высказывания за излишне вольную трактовку.
далее. «караван» — это асм, С с плюсами, делфи, перл с пхп и прочие UML. а дракон… так, скажем честно, очередная поделка энтузиаста. не более того. и уж никак не «караван»…
+1
А с чего вы взяли, что все, кто высказался положительно о языке и об содержимом уроков имеют отношение к вашему «каравану» в котором вы один пакуете видео, формат которого, собственно, и стал причиной минимум двух резких высказываний в ваш адрес?

К слову, формат EXE для видеоуроков это даже не дебилизм, это вообще за пределами добра и зла… Так что с вами еще по доброму, могли и шашкой рубонуть.
+1
Если надо что то куда то выложить на моем сайте. То пишите мне, закачаю себе.
0
Ну если учесть используемый кодек видео (он ориентирован именно на обучающие ролики по программам) — не такой уж дебилизм. Любые альтернативы, ориентированные на нормальное видео, дадут худшую четкость при заметно большем размере.
0
Годное обучающее видео. Отличное качество, и никаких сомнительных исполняемых файлов. Алсо качественное видео с экрана можно записать и обработать даже VirtualDub'ом, при прямоте рук достаточной, чтобы расставить несколько галочек (иначе же не помогут никакие платные кодеки, ни драконы, и т.д.).
0
Если это Ваше видео, и, следовательно сайт www.bsvi.ru тоже Ваш — снимаю шляпу, и готов её даже съесть. Но очень сильно сомневаюсь в этом. Потому что люди, которые что то делают сами — умеют ценить также и труд других людей.
+1
Посмотрел. Да, качество на удивление хорошее.
Вот только там 42МБ на 5 минут, а тут 7МБ на 18 минут при не меньшем качестве. А обучающие ролики в составе КОМПАС 5.11, помнится мне, вообще весили по 2.5 метра при длительности 5-10 минут и сжатии видео без потери качества. Тоже самовоспроизводящиеся.
Кроме того, на ютуб это видео тоже залито теперь, как я понимаю. Так что кто не желает связываться с подобным самовоспроизводящимся видео — могут посмотреть там.
0
Поскольку картинка статическая в основном, паковать её видеокодеками нецелесообразно.
Скорее всего применяется gif-подобный алгоритм. Кодирование изменений в ограниченных областях с ограниченной палитрой.
0
Не только. Она еще и имеет специфические характеристики — мало цветов, резкие переходы, etc. Под все это алгоритм и заточен.
Кроме того, в принципе может применяться тот же подход, что в радмине — запись команд GDI.
Короче, это специализированный инструмент и по параметрам он лучше. Но по этой же причине требует специализированный плеер.
Другое дело, что сейчас это не так уж и оправдано. 42 метра давно уже никого не напрягают.
0
По теме:
Скомпилил в AVRstudio5 — полёт нормальный.
Хочется, однако, попенять автору ИС Дракон: сам-то язык вполне эргономичный, а вот ИС ни разу не интуитивная. Позапрошлый век какой-то. Без учебного фильма просто плюнул бы и забыл. Вот почему в России всегда так: задумка блестящая — исполнение никудышное.
Кстати, интересно — автор ИС Дракон пишет ИС Дракон в ИС Дракон? :)))
0
Успешно скомпилил — напиши статейку! Информации почти ноль и только авторская(?). А затея очень интересная.
0
Скомпилил в AVRstudio5 — полёт нормальный.
Очень хорошо, значит при создании ИС Дракон решены все функциональные задачи.
Хочется, однако, попенять автору ИС Дракон: сам-то язык вполне эргономичный,
Очень хорошо, с языком познакомились и он вас устраивает (есть улучшение работы ума).
а вот ИС ни разу не интуитивная.
Для вас не интутивна — это понятно, вы впервые встретились с новым классом программы — инструментом техники мышления.
Позапрошлый век какой-то.
Все сделано для того, чтобы ваше внимание не отвлекалось на внешние оформительские детали и концентрировалось на решении стоящей перед вами задачи.
Вот почему в России всегда так: задумка блестящая — исполнение никудышное.
Не согласен с вами, вы же быстро поняли язык и быстро освоили ИС.

ИС Дракон при написании не использовался, применялась обычная технология программирования на Делфи.
0
Все сделано для того, чтобы ваше внимание не отвлекалось на внешние оформительские детали и концентрировалось на решении стоящей перед вами задачи.
Вот только не нужно возводить аскетизм в абсолют. Ведь следуя даже логике визуального разделения (смыслового и функционального) пиктограммы смотрелись бы куда уместнее (и красивше), чем 6 одинаковых стрелочек «Лист»,«Версия»,«Х».
А чем плоха подсветка синтаксиса?
Почему при наличии ошибок не подсвечиваются ошибочные иконы при проверке? — ищи эти номерочки по всему листу :(((
Несколько невнятно реализована иерархия листов в проекте.
Всё о чём я пишу — это же и есть банальная эргономика, не так ли?
применялась обычная технология программирования на Делфи
неудивительно
0
Почему при наличии ошибок не подсвечиваются ошибочные иконы при проверке? — ищи эти номерочки по всему листу :(((
Процедуда поиска предельно простая. Выделить номер или строку с номером и выполните соответствующий пункт в меню или нажмите горячую клавишу.
0
Пытался сегодня перенести объёмную функцию в дракон.
Накололся на довольно досадные грабли.
При вставке условия внутри ветки выбора правый выход слипся со следующей веткой выбора, которая правее.
Если перенести лиану непосредственно под условие, то разлипается и образует маленькую петельку.
А вот если там уже стоят какие-то действия и надо их объехать, то уже никак.
По крайней мере я ниасилил.
0
Если ИС Дракон неправильно прорисовала линии, то для устранения проблем можно двигать углы линий при нажатой клавише Shift.
0
И ещё — после того, как поправите линии вручную — в контекстном меню исполните команду «Обновить».
0
Вот мои мучения на видео:
0
Я посмотрел, но не понял — а что же Вы там хотели сделать? Зря вы звук не включили.
И ещё, если позволите — совет: Вы строите алгоритм в последней ветке. Не надо этого делать. Последняя ветка — это ветка выхода. Лучше всего, если в ней будет всего одна икона: «Конец».
0
Я в общем-то сделал на какой то момент времени, обводную петлю вокруг второй ветки выбора.
Справа должно быть ещё 2 таких же ветки, но они почему-то слипаются с петлей от развилки, и их уже никак не разлепить. Вот в чем вопрос.
0
В том видео, которое я посмотрел, ИС Дракон ведёт себя адекватно, не позволяя нарушить правила построения Дракон-схемы.

Икона «Конец» должны быть крайней справа. Поэтому, ИС Дракон не позволяет заземлять лианы в этой ветке.

почему-то слипаются с петлей от развилки,
А как должно быть по Вашему замыслу? Напишите конкретно, примерно так: «Из иконы 31 по выходу „Да“ алгоритм должен пойти ...»

Но первое, что нужно сделать — вставить новую ветку правее «Обработка данных АЦП», и перенести туда (выделить всё между «Измерение уровня» и «Конец», затем Сtrl+C/Ctrl+V) всё из крайней правой ветки. Назвать новую ветку «Измерение уровня», а крайнюю справа — «Выход». В ней должна остаться только икона конец.
0
первое, что нужно сделать
ОК.
Получилось с некоторым костылем (действие Dummy)


Теперь наводим курсор на наш костыль, жмем «Delete»…

:(
0
Если T1 > 50мc, алгоритм уходит на ветку «Конец». А Вы куда его хотели отправить?
0
Да, действительно…
Только странно как-то.
А если я вторую ветку ещё удлинню, все ещё ниже съедет?
И получится длинная кишка
0
Понятно. Немножко погодя эти вещи перестанут Вас беспокоить, и всё будет получатся «само собой». Для начала я могу Вам посоветовать «заземлить» лианы от икон 56 и 22. Именно в таком порядке. Посмотрите на получившуюся схему, и решайте, что с ней делать дальше.

Строить длинные ветви Дракон не запрещает, но лучше не злоупотреблять этим. Лучше сделать несколько веток. При этом, в одной ветке нужно решать одну задачу, имя котрой выносить в «шапку». Алгоритм от этого становится яснее.

Например, на Вашей схеме есть смысл сделать ветки «Старт цикла измерений»,«Первый отсчёт», «Второй отсчёт», «Третий отсчёт». А еще лучше номера заменить чем то, что более подходит по смыслу. У меня на аналогичной схеме есть ветки «Напряжение борт сети» «Напряжение аккумулятора» и так далее…
0
Вуаля!

Да уж, справку нужно делать…
Готов посодействовать, в меру сил…
И раздел №0 — FAQ :) (или нет — FUCK!)
0
Это было бы очень хорошо. В смысле «посодействовать».
0
Посмотрел ваше видео.

Вы неоднократно пытаетесь пересадить лиану.

После выбора в контекстном меню пункта «Пересадить лиану», лиана обрывается и повисает, вы выбираете точку ввода для присоединения лианы. Предлагаю мысленно представить ломанную линию до точки присоединения, при этом она не должна пересекать другие линии. Если это требование не будет выполнено, то пересадка лианы не будет произведена.
0
каким образом в среде Тышова, писать код для ветвлений на assembler. Судя инструкции к программе ассемблер как язык включен в «другие» по своей лексике и структуре. Каким то образом можно использовать генерируемые средой метки? Как макроподстановку в коде?
0
Вы просматриваете сгенерированные комментарии к каждой иконе и в П тексте иконы пишите соответствующий ассемблерный код, используя в нем указанные метки. Потом выполняете генерацию программного кода, т.е. ассемблерного, выполняете его трансляцию и отрабатывает ошибки, доработки выполняете в П текстах Дракон-схемы, так до завершения программирования.

Таким образом ИС Дракон генерирует только комментарии, метки и структуру программы, весь ассемблерны код необходимо написать самостоятельно.
0
" в П тексте иконы пишите соответствующий ассемблерный код, используя в нем указанные метки."

понятно, т.е. в конструкцию if() подстановка goto возможна, а в ассемблерную конструкцию подстановка метки не возможна? Так будет всегда или планируется «шаблонизация» языковых конструкции, вполне бы устроило подстановка метки в какой либо заранее описанный токен. Для примера &label_then как адрес перехода (метка) при истинности условия. И выражения mnemocode &label_then как общая конструкция условного перехода. В конце концов condition подставляется в исходный текст на Си в конструкцию if(....).
0
Уважаемые участники блога, заинтересованные в АСМ.

Приношу свои извинения, программа в этой части не проработана, т.к. ассемблерный код формируется не корректно.

Сейчас ИС Дракон дорабатывается и будет вам предоставлен через 1 день.
0
Уважаемые участники блога, заинтересованные в АСМ.

Приношу свои извинения, за 1 день не сделал, работа по данной теме продолжается.
0
Резюмирую для себя все прочитанное. В целом концепцию приняли. Выделились основные группы «недовольных»:
— те, кто полностью не принял (им можно только посоветовать не портить нервы себе и другим и оставить топик),
— не довольные эргономикой и интуитивностью (мне бы хватило, например, добавления анг языка и добавление названий полей ввода),
— желающие реальной поддержки других языков программирования (поскольку сообщество ориентировано на микроконтроллеры, где пишут не только на С но и на паскале, асме и еще бог знает на чем, было бы не плохо их поддержать),
— ну и просто не довольные всем.
Не этично и глупо что-то требовать от авторов. Остается только просить и ждать. Проект в развитии и многое еще может измениться.
0
  • avatar
  • psv
  • 27 января 2012, 11:50
Прошу прощения что влезаю в Ваше резюме, но на кончике пера можно сказать в ИС Дракон — как в интегрированную среду проситься форма «отладки», хотелось бы видеть как алгоритм работает на схеме.

От автора согласен просить глупо, а возможно ли где то на форуме easyelectronics обсуждать ИС-Дракон в применении к МК.
0
Не понял вас. Вы предлагаете из пошагового отладчика просмотреть последовательность выполнения икон в дракон схемах?

Сейчас для этого есть следующие средства:

1. В меню пункт «Найти схему или икону с номером».
2. При программировании на Си. При выполнении вашей программы можно получить последовательность выполняемых икон. Для этого необходимо маличие макросов «trassa_macro(NN)» и «trassa_macro_ns(NN)», и установка в меню пункта «Макрос трассировки к иконам с меткой».
0
Прошу прощения, а «trassa» это на каком языке?
0
«trassa_macro(NN)» и «trassa_macro(NN)» имена макросов объявляются в заголовочном файле и для ИС Дракон являются предопределенными. Именно они вставляются ИС Драконом в сгенерированный Си код.
0
Должно так — «trassa_macro(NN)» и «trassa_macro_ns(NN)»…
0
То что это имена макросов я понял, меня больше интересовало на каком (человеческом) языке это слово. В английском такого нет.
0
На транслите. Это же очевидно. Так что я скорее склонен в этом намек видеть, а не вопрос.
Автор ИС Дракон с английским явно не дружит.
0
Возможно надо писать иначе, но так было сделано и возражений не поступило.

По поводу английского верно, основной язык 1С.
0
Это да, дружбой с английским тут и не пахнет…
0

Товарищи, все на борьбу за чистоту английского языка!
0
На первой странице «Трасса» используется исключительно как название фирмы. А оно разумеется не переводится, а транслитерируется.
Да и не знающих английский более чем достаточно, вспомнить хотя бы «Институт белки». Там тоже в списке ляпов транслита хватает.
0
Меня условно можно отнести к «недовольным», хотя я, скорее, «недоумевающий».

Я ко всякому инструменту для програмеров подхожу со своей програмерской колокольни. Относительно каждого инструмента я пытаюсь понять, вобщем, две вещи — сначала то, какие задачи им можно решать (или, по крайней мере, какие задачи собирался им решать автор) и насколько он хорош для решения этих задач. Так вот относительно ДРАКОНА я так и не могу дойти до второй части, потому что никак не могу найти ответ на первую. Да, тут много написано и постоянно подчеркивается акцент ДРАКОНа на алгоритме, хотя акцент, на самом деле, на блок-схеме, которые в реальной програмерской жизни давно перестали использовать в виду бесполезности. Я попытался тонко намекнуть о существовании таких вещей, например, как диаграмма переходов. Но такое ощущение, что я писал об этом на английском. Так что я наблюдаю «движняк» вокруг ДРАКОНа с недоумением, поскольку не понимаю какие реальные (а не декларируемые) задачи он позволяет решать в реальной же жизни. То, что на нем писали программы, увы, на вопрос не отвечает, можна и микроскопом гвозди забивать, а бухгалтерию на асме писать. Пока из внятных ответов я вижу только два — рисовать блок-схемы и объяснять начальнику «как это работает», причем обе задачи сугубо виртуальные. Может авторы что-то смогут внятно объяснить зачем же нужен ДРАКОН и для решения каких задач он предназначен?
0
Может авторы что-то смогут внятно объяснить зачем же нужен ДРАКОН и для решения каких задач он предназначен?
угу. причем как начальнику из того примера — «я нихера не понимаю как оно работает, объясняй». я тоже с удовольствием послушаю. (не сарказм)
0
Поскольку в нынешней портянке из 250+ отзывов очень тяжело ориентироваться (особенно с 7" планшетки), я создал тему на форуме.
Предлагаю всем заинтересованным участникам обсуждения переместиться туда, а автору статьи поместить ссылку на тему на видном месте.
0
ИС Доработан для программирования на различных, произвольных языках программирования и ассемблеров. Смотрите здесь
0
Скачал ИС ДРАКОН.
В меню «Программирование» у меня нет подпунктов «Без программирования», «1С», «Delphi»…
Подпункты «Сохранить файл листа» и «Сохранить файлы проекта» неактивны.
Кто знает в чем дело?
0
  • avatar
  • Almaz
  • 12 сентября 2012, 09:31
Модернизация.
А сохранение неактивно, скорее всего, потому что нечего сохранять.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.