Форум программистов, компьютерный форум, киберфорум
Электроника и радиотехника
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/6334: Рейтинг темы: голосов - 6334, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 25.01.2012
Сообщений: 492

Обсуждение ИС Дракон

28.01.2012, 19:20. Показов 1162955. Ответов 1644
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Учитывая интерес (как собственный, так и сообщества) к данному средству, решил вынести в отдельную тему, т.к. вобсуждении статьи очень тяжело ориентироваться.
Цель - не только обсудить, но и в меру возможностей посодействовать развитию данного проекта.
Задачи:
1. Создание актуальной и удобной справочной системы
2. Совершенствование кодогенератора, поддержка новых языков
3. Что-нибудь ещё придумаем по ходу :)
______________________________

Мои предложения по п.1:
Организовать открытый проект на вики-системе, чтобы каждый мог легко внести свой посильный вклад в свободное время.
Например, на викиучебниках (если там модеры не такие отмтроженные, как на педивикии)

По п.2 пусть предлагают те, кому актуально *(ассемблисты, например).
От себя бы предложил автору представить полную спецификацию формата хранения дракон-схем .drt, чтобы люди могли подключать к редактору собственные примочки (не только кодогенераторы, а и преобразователи, например, в .pdf, .doc итдитп.)

В общем, как-то так.
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.01.2012, 19:20
Ответы с готовыми решениями:

Дракон на Андроиде
Автор Никалий Ивиницкий 27 сентября 2015 г. 21:27:00 http://analyticls.ru/---8 И индроид тоже! ...

Дракон хартера-хейтуэя
Здравствуйте! Кто то умеет переводить программы с Делфи на С++, у меня что то плохо получается! Кода очень мало, но некоторые моменты мне...

Тест: Какой вы дракон)))
http://aeterna.ru/test.php?link=tests:365 Вы спокойны, сдержанны и весьма неразговорчивы. Вы склонны отдаляться от этого мира, лежать в...

1644
idm2007
04.02.2012, 15:01
Студворк — интернет-сервис помощи студентам
Сергей, спасибо. Я прекрасно понял суть, так на выходе будет создана метка, на которую икона "Конец" в любом случае перенаправит. Но никак не могу привыкнуть к куче прыжков. Ужас просто. :)))
ifomov
04.02.2012, 15:23
Цитата Сообщение от idm2007
не могу привыкнуть к куче прыжков. Ужас просто. :)))
А туда смотреть не надо. Тем более, что компилятор при включении оптимизации сам уберёт большую часть этих прыжков.
1 / 1 / 0
Регистрация: 25.01.2012
Сообщений: 492
04.02.2012, 16:23
Цитата Сообщение от ifomov
В иконе "Конец" напишите goto end_interrupt;
В программном приложении схемы перед закрывающей фигурной скобкой напишите end_interrupt:;
Ну вы блин даёте...
А нельзя написать просто:
// типа конец
?

Вроде был уже вопрос, но повторюсь, т.к. в свое время не дошел до этого момента.
Во многих иконах есть поля "приложение А" и Б.
Опытным путем установлено, что в кодогенерации они не участвуют.
Тогда для чего?
Ещё заметил, что слева от икон можно ставить галочки.
Зачем?
0
idm2007
04.02.2012, 16:43
Цитата Сообщение от MrYurom
Ну вы блин даёте...
А нельзя написать просто:
// типа конец
Цитата Сообщение от idm2007
а вот в иконе "Конец" я не знаю что писать. Вроде как ничего не нужно, просто комментарий написал.
Посмотрите внимательнее, я и писал коментарий:

Code
1
//**********************************************
Только какая разница, если он присваивает иконе "Конец" метку. А она находится в середине.
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
04.02.2012, 17:12
Цитата Сообщение от MrYurom
Вроде был уже вопрос, но повторюсь, т.к. в свое время не дошел до этого момента.Во многих иконах есть поля "приложение А" и Б.Опытным путем установлено, что в кодогенерации они не участвуют.Тогда для чего?
ИС Дракон является средой языка Дракон для общего и широкого применения.

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

Цитата Сообщение от MrYurom
Ещё заметил, что слева от икон можно ставить галочки.Зачем?
Галочки у икон, называются метками. Назначение их также на ваш выбор. Для программиста есть пункт меню "Программирование / Трассировка икон с метками", вы по время отладочного прогона можете получить протокол последовательности выполнения отмеченных икон.

Дракон может использоваться для алгоритма деятельности, можете помечать выполненные этапы, начальник может отметить что что требуется переделать. Установите для себя свои правила применения отметки. В контекстном меню схемы есть пункт "Удалить все метки", в меню "Найти" есть пункт "Найти иконы с метками".
0
idm2007
04.02.2012, 23:01
Немного не в тему: посмотрел дизасм в студии, оператор return как и положено для прерываний как RETI а для функций RET. То бишь я могу в иконе "Конец" все же просто написать return;? Просто я совсем недавно разбираюсь с правильным Си для AVR. И в общем случае обработка выглядит как:

Code
1
2
3
4
ISR(TIM0_OVF_vect)
{
//.........................
}
Допрыгали до конца и ушли обратно. Не будет ошибкой самому указать где именно выходить?
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 10
04.02.2012, 23:23
Не должно. Оператор return - штатный выход из функции. Компилятор должен его правильно обработать - он сам знает, какого типа функция и как из нее парвильно выйти (поставить RET, RETI или прыгнуть на общий для всех returnов хвост).

А вообще, размещать икону "конец" в середине кода - оригинально-с.

P.S.
ИС Дракон является средой языка Дракон для общего и широкого применения.
Рановато для такого пафоса, пока что оно только на поделку тянет. Алсо, где вы тут "интегрированную среду" увидели? Сделайте менеджер проекта и систему сборки и отладки прежде чем это называть "ИС". Сейчас это не более чем редактор.
0
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
04.02.2012, 23:52
Цитата Сообщение от Vko
А вообще, размещать икону "конец" в середине кода - оригинально-с.
А вы, что не слышали о возможности выхода из середины процедуры?
0
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
05.02.2012, 00:00
Цитата Сообщение от Vko
Сейчас это не более чем редактор.
Это более чем редактор, есть транслятор маршрутной части алгоритма в программный код ряда языков программирования, есть верификация структур языка Дракон, предусмотрена работа со всем комплектом дракон-схем проекта.
0
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 10
05.02.2012, 00:30
Редактор с кодогенератором - маловато, чтобы называться ИС.
0
1 / 1 / 0
Регистрация: 25.01.2012
Сообщений: 492
05.02.2012, 10:04
Цитата Сообщение от idm2007
Немного не в тему: посмотрел дизасм в студии, оператор return как и положено для прерываний как RETI а для функций RET. То бишь я могу в иконе "Конец" все же просто написать return;?
Имеете полное право.
И можно даже не в конце, а хоть в самом начале.
Например:
if(something) // а не зря ли мы сюда вошли?
return;
// продолжаем дальше, если все нормально
0
1 / 1 / 0
Регистрация: 25.01.2012
Сообщений: 492
05.02.2012, 10:33
Цитата Сообщение от ifomov
А туда смотреть не надо. Тем более, что компилятор при включении оптимизации сам уберёт большую часть этих прыжков.
goto это пусть...
Но вот как по мне, идеологически неверно преобразовывать "переключатель" в if-else-goto.
Почему?
Очень просто. Паронджанов в своей книге декларирует абсолютную тождественность графического и текстового описания алгоритма.
То есть, полученный из дракон-схемы текст должен однозначно преобразовываться обратно в исходную схему.
В случае switch-case это легко реализуемо. if-else преобразуется в лесенку развилок, что исказит исходную картинку.
Да и оптимизируется switch местами гораздо лучше, превращаясь в таблицу переходов.

Также, лично я бы преобразовывал ветки в do{}while(0), пусть даже с goto между ними. Это улучшает структуру текста и облегчает дальнейшую работу именно с текстом. И самое главное, что теоретически никаких препятствий для этого не вижу.
Начало ветки сопроводить текстом "do{", а конец - "}while(0)", ничего больше не меняя.
0
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 59
05.02.2012, 10:47
Цитата Сообщение от MrYurom
if-else преобразуется в лесенку развилок, что исказит исходную картинку.
Да и оптимизируется switch местами гораздо лучше, превращаясь в таблицу переходов.
Для ARM например тактика if-else может иметь больше успеха учитывая его префиксные условные команды, да и кое где еще существует команда "пропуска если". Даже если сильно захотеть - оптимизатор может так координально всю структуру изменить что мама родная не узнает схемы переходов в итоге.
0
1 / 1 / 0
Регистрация: 25.01.2012
Сообщений: 492
05.02.2012, 10:58
Цитата Сообщение от dykytotymvytro
Для ARM например тактика if-else может иметь больше успеха учитывая его префиксные условные команды
Так вот суть в том, что в общем случае компилятор сам может преобразовать switch() в if-else, если это будет оптимальнее, а вот обратно вряд ли.
Представим ситуацию парсинга какого-нибудь протокола и выбор одного из 100 последовательных вариантов.
Один переход по вычисленному смещению значительно быстрее и компактнее, чем последовательный перебор 100 условий.
Опять же, в случае switch() даже перебор условий может быть оптимизирован в симметричное дерево, значительно сократив количество развилок.
0
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 59
05.02.2012, 11:34
Цитата Сообщение от MrYurom
Опять же, в случае switch() даже перебор условий может быть оптимизирован в симметричное дерево, значительно сократив количество развилок.
Безусловно. Я про то что прямого отражения Дракон схемы на результирующий код можно никогда и не получить.
0
idm2007
05.02.2012, 14:35
Vko, MrYurom, спасибо за ответы.

Попробовал несколько return-ов поставить по условиям. Посмотрел асм, да, действительно все собралось на один RETI.

Цитата Сообщение от Vko
А вообще, размещать икону "конец" в середине кода - оригинально-с.
Вот мне это тоже показалось нелогичным абсолютно. Что мешало размещать икону "Конец" там, где ей и место.
idm2007
05.02.2012, 18:24
Хм, почему-то Дракон стал зависать при сохранении файлов проекта (не листа). И через меню "Программирование" и просто при нажатии F9. И даже при нажатии на четвертый квадратик иконы "Модуль" (чтобы просто посмотреть собраный код). Среда просто зависает и "Не отвечает". При повторном запуске слетает "Вид" (белый фон). Пробовал удалять папку программы и распаковывать снова.

UPD: Как я понял, это связано с тем что путь к программным файлам ведет в папку с проектом AVR Studyo 5. Я просто хотел чтобы при изменении схемы в Драконе, код в студии менялся автоматом...
0 / 0 / 0
Регистрация: 18.02.2010
Сообщений: 71
05.02.2012, 19:46
Здравствуйте!
Посмотрел ролики Сергея Ефанова, зацепило решил попробовать, поднял проект часов на МК Atmega-48 который и выкладываю здесь. Может кому поможет начать работать с данной средой.
При написании возник вопрос если в цикле для есть условный переход,то код не собирается из-за, того что транслятор размещает метку в конце цикла для, может кто подскажет как устранить:
пример:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 /* F:\Eclipse_progekt\clock\Новый_01.drt */
/* 1. ИС Дракон. Трансляция маршрутной части. Изменение 06.02.2012 20:27:46 */
/* Схема - Процедура */
ISR (SIG_OVERFLOW1)
{
 
/* ==================== Шампур */
 
/* 2. Заголовок // Обработка служебного таймера */
 
/* 17. ЦиклДляНачало // обработка таймеров от 0 до maxGTIMERS */
uint8_t i;
for (i=0; i>=maxGTIMERS; i++)
{
 
/* 8. Вопрос // таймер запущен */
if (!(GTStates [i]==TIMER_RUNNING)) goto L18;
 
/* 3. Действие // увеличить значение */
GTimers[i]++;
 
L18:
/* 18. ЦиклДляКонец // конец обработки */
}
 
/* 13. Конец // Конец */
return;
 
}
[62.65 Кб]


http://**************************/download/file.php?id=8699&sid=dc7b58d869def5a0b4c 0251d9f208f9a
0
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 59
05.02.2012, 20:01
Цитата Сообщение от idm2007
UPD: Как я понял, это связано с тем что путь к программным файлам ведет в папку с проектом AVR Studyo 5. Я просто хотел чтобы при изменении схемы в Драконе, код в студии менялся автоматом...
Закономерное желание. Делал так для IAR, обошлось без висов. Не слишком длинный путь или может быть в пути присутствуют пробелы?
0
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
05.02.2012, 20:13
Цитата Сообщение от Miko_Vott
При написании возник вопрос если в цикле для есть условный переход,то код не собирается из-за, того что транслятор размещает метку в конце цикла для, может кто подскажет как устранить:
Я не пользовался Си.
Не понял. Разве нельзя поместить метку перед концом цикла? Что надо устранить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.02.2012, 20:13

Дракон, UML, LabVIEW
Можно из Дракона прямо на Обероне без программирования модуль создавать http://sage.com.ua/ru.shtml?e6l0 Наверное можно и для других...

Ищу кисть - дракон
ищю такого дракона:

Дракон Хартера-Хайтвея
Решил для примера разобрать фрактал. Понять хотя бы общую часть построения на основе книги Кроновера. Нашел один код для матлаба, подправил...

ИС Дракон. Вопрос - ответ.
В теме "Обсуждаем ИС Дракон" идут бурные обсуждения. Вопросы теряются. Здесь задаем вопрос только по ИС Дракон. Сколько вопросов...

Фрактал Дракон Харьков-Хайтвея
Необходимо построить фрактал по заданным правилам: axiom = FX Правила F=F, X=X+YF+, Y=-FX-YF Угол pi/2 Находил только код, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Закрытая тема Создать тему
Новые блоги и статьи
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru