|
1 / 1 / 0
Регистрация: 25.01.2012
Сообщений: 492
|
|
Обсуждение ИС Дракон28.01.2012, 19:20. Показов 1162955. Ответов 1644
Метки нет (Все метки)
Учитывая интерес (как собственный, так и сообщества) к данному средству, решил вынести в отдельную тему, т.к. вобсуждении статьи очень тяжело ориентироваться.
Цель - не только обсудить, но и в меру возможностей посодействовать развитию данного проекта. Задачи: 1. Создание актуальной и удобной справочной системы 2. Совершенствование кодогенератора, поддержка новых языков 3. Что-нибудь ещё придумаем по ходу :) ______________________________ Мои предложения по п.1: Организовать открытый проект на вики-системе, чтобы каждый мог легко внести свой посильный вклад в свободное время. Например, на викиучебниках (если там модеры не такие отмтроженные, как на педивикии) По п.2 пусть предлагают те, кому актуально *(ассемблисты, например). От себя бы предложил автору представить полную спецификацию формата хранения дракон-схем .drt, чтобы люди могли подключать к редактору собственные примочки (не только кодогенераторы, а и преобразователи, например, в .pdf, .doc итдитп.) В общем, как-то так.
1
|
|
| 28.01.2012, 19:20 | |
|
Ответы с готовыми решениями:
1644
Дракон на Андроиде
Тест: Какой вы дракон))) |
|
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
|
||
| 08.02.2012, 20:11 | ||
Т.е. программа для внутреннего применения, сообщают, что до сих пор используют.
0
|
||
|
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
|
||
| 08.02.2012, 20:29 | ||
|
[QUOTE="dykytotymvytro"]dragonedit писал(а):
[QUOTE="Цитата:[/QUOTE]
Вы можете выбрать 1 любой флаг и использовать его для организации условных переходов, указав команды в файле описания языка. Установка флага должна производится в ассемблерном коде, помещенном в П текст иконы "Вопрос". Относительно возможности использования нескольких флагов, можно подумать. Вероятно потребуется несколько наборов команд условных переходов, и программист будет помещать управляющую информацию в комментарии своего программного кода. По моему мнению лучше ограничиться 1-м флагом.
0
|
||
|
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
|
||
| 08.02.2012, 20:39 | ||
Так же указали на проблему наличия метки в конце цикла ДЛЯ. В файле описания языка Си предусмотрено наличие с меткой пустого оператора т.е. ";". Пустой пункт меню это мусор, не доглядел, уберем.
0
|
||
|
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
|
|
| 08.02.2012, 21:06 | |
|
Еще надо сказать о последнем выпуске ИС Дракон.
1. Текстовые окна сделаны большого, нерегулируемого размера, частично перекрывают друг друга. Выбирать мышкой или F1, F2, закрываются ESC, открываются и закрываются кликом на строке состояний. В левом окне (листа) отображаются изменяемые тексты листа, текст икон "Адрес" и "Конец" не изменяется. В правом окне (сообщений) выдаются сообщения программы, для выбора из списка листа в проекте или версии листа, из/для текстовых файлов, в меню "Файл" пункты "Новый текст", "Открыть ...", "Сохранить как ...". 2. В теме обсуждалось положение иконы "Конец" в сгенерированном тексте процедуры. ИС Дракон доработана для размещения П текста иконы "Конец" в конце процедуры. 3. При выборе точек сборки текста (4-е квадраты) схемы или иконы "Модуль" генерируется программный код в окне сообщений. Теперь текст так же помещается в системный буфер и может вставлен в текст в других программах - редакторах. Отладка программы произведена в части языка Си, с другими возможно потребуются доработки. Заранее благодарю за замечания.
0
|
|
|
idm2007
|
||
| 08.02.2012, 22:25 | ||
|
||
|
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 59
|
||||
| 09.02.2012, 12:33 | ||||
Ну тогда то Вы меня поймете как человек знававший :) DEC PDP-11 в том что ассемблер с человеческим лицом бывает :) И почему хотелось бы что бы ИС-Дракон могла с ним управляться.
0
|
||||
|
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
|
||
| 09.02.2012, 22:30 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 59
|
||
| 09.02.2012, 22:54 | ||
П-текст иконы будет выглядеть следующим образом: jnz %jmp_label% jnc %jmp_label% jc %jmp_lablel% и т.д. с любыми флагами, при этом %jmp_label% - это зарзервированное слово вместо которого при трансляции подставится метка генерированная ИС-Дракон для осуществления перехода вправо по Дракон-схеме на лиану ветвления. Можно и вообще не ставить этот токен %jmp_label%, в принципе устроит даже, что в этом случае метка будет подставлена транслятором автоматически к П-тексту иконы. Предположим указываем только команду без метки: jnc,jc,jz,jnz,brne,breq и тому подобное, транслятор добавляет к этой команде метку перехода и всю строку размещает в исходный текст примитива или силуэта.
0
|
||
|
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
|
|
| 09.02.2012, 23:06 | |
|
Как в программном коде будет учитываться состояние иконы "Вопрос" Да-Нет или Нет-Да?
Возможно достаточно одного флага Z, а пограммист предусмотрит макрос установки значения флага Z по значению анализируемого флага.
0
|
|
|
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 10
|
||
| 10.02.2012, 04:49 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 59
|
|||
| 10.02.2012, 09:02 | |||
Однако могут существовать вопросы для некоторых архитектур, например "меньше или равно", которые не реализуемы одной командой, но это уже дело алгоритма, как разбить вопрос на два реализуемых.
0
|
|||
|
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 59
|
||
| 10.02.2012, 09:15 | ||
|
[QUOTE="Vko"][QUOTE="Цитата:[/QUOTE]
Дракон разумно использует операцию ветвления, это выражается самим видом этой иконы. На ассемблере операторы условного перехода используются именно по такому принципу для увода исполнения на альтернативный маршрут, для этого достаточно одной метки, вне основного маршрута. В случае не осуществления перехода исполнение продолжается далее. Фактически всегда производители (за очень редким исключением) предусматривают взаимодополняющие условные переходы свзанные с прямым и инверсным использованием флага, или сочетания флагов. Поэтому какой бы не был вопрос уводящий с основного маршрута почти всегда можно подобрать единственную команду его реализующую.
0
|
||
|
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
|
|
| 10.02.2012, 20:57 | |
|
Выпуск ИС Дракон от 11.02.2012 здесь
Прошу выдать отзывы, замечания и предложения по программе. Доработано в части программирования на языке Delphi и на произвольном ASM. ASM настраивается на условные переходы по всем флагам. Приложены описания языков Delphi, C, ASM, 1C. В описании языка ASM должны присутствовать строки: ASM=Yes - о использования ассемблера jmpz=jmpnz L<NN/> - пара команд перехода по значению флага Z, для других флагов добавить аналогичные строки. В П тексте икон "Вопрос", "Вариант", "Заголовок" последней строкой должна быть команда перехода по установленному значения флага, т.е. 1-я команда в строке описания. Команда не сопровождается адресом перехода. ============= ИС Дракон доработана в части использования произвольных языков программирования. За ВАМИ, выполнение тестирования, наработка и обмен опытом, задавайте вопросы. Геннидий Тышав. =========== О сообщениях ИС Дракон в сгенерированном программном коде смотрите здесь.
0
|
|
|
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 59
|
||
| 10.02.2012, 21:18 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 59
|
||||||
| 11.02.2012, 16:16 | ||||||
|
Геннадий Никалиевич, не могли бы Вы объяснить особенности использования иконы "Вставка". Я полагал прочитав Паранджанова, что это по своей сути макроподстановка фрагмента исходного текста ,выделенного в отдельный примитив или силуэт для последующего использования. Вставка позволяет разгрузить основной алгоритм от подробностей и вынести подробности в другую Дракон-схему. Вы регламенитруетей такое использование иконы Вставка определнным ее видом (Вставка и "|") точно такой же вид должна иметь "имплантируемая" часть алгоритма (силуэт или примитив с "|").
1. Вы ограничиваете область применения одним листом? Не получилось Вставка из другого листа, с ошибкой что схема иконы (далее номер самой иконы Вставка) не найдена. 2. При трансляции часть описываемого раздельно алгоритма и вставляемая в месте иконы Вставка производится переход на это фрагмент оператором goto ну или jmp для ассемблера, соответсвенно возврат из вставляемой части алгоритма производится таким же точно переходом обратно в тело основной схемы откуда и производилась вставка. Вопрос почему, делается именно так? По факту почти все языковые средства обеспечивают возможность макроподстановки, хотя было бы и не верно использовать препроцессор, сама ИС-Дракон замещает его полностью. Плохо то что от этого будет расти код, увеличваясь как минимум на 1 переход, а в худшем случае на 2 перехода. Учитывая что средство удобное и пользоваться им нужно сравнительно часто - получим не оптимальный код для некоторых компиляторов, не умеющих оптимизировать. Для ассемблеров уж точно никто не уберет эти переходы кроме человека. Почему ИС-Дракон просто не производит подстановку фрагментов П-кода "имплантируемых" во вставку? 3. Ограничение в количестве идентичных Вставок - не более одной, почему? 4. В исходном транслированном коде при замене иконы Вставка появляется еще и дополнительная метка
0
|
||||||
|
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
|
|
| 11.02.2012, 16:28 | |
|
dykytotymvytro, об использовании "вставки" в ИС Дракон, на ваши вопросы, я отвечу позднее, а сейчас расскажите, как вы нашли работу с ассемблером, насколько наглядно описание, работа с переходами, настройка на флаги. Можете ли выложить пример drt файла с ассемблером и ваш файл описания?
0
|
|
|
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 59
|
||||||||||||||||||
| 11.02.2012, 20:07 | ||||||||||||||||||
; ИС Дракон. Транслятор маршрута алгоритма. ; C:\divelop\Dragon_2012_01_23\msp430_sche duler.drt ; 1. Изменение 12.02.2012 16:56:24 ; Схема - Процедура
Работа с условными переходами, как мне кажется, удалась на славу :) Очень логично и понятно, происходит переключение на дополняющую пару. Помимо того успешно вписывается и сопутсвующий переходу код как например в этом случае когда производится проверка бита:
0
|
||||||||||||||||||
|
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
|
||||||||||
| 11.02.2012, 20:17 | ||||||||||
|
ИС Дракон развивается эволюционно и при практической необходимости. Использование иконы "Вставка" для выполнения постановки схемы "Вставка" потребовалось у С. Ефанова. Была выполнена реализация удовлетворяющая его.
dykytotymvytro здесь пишет:
LV34 jmp LV74не совсем понятно для каких целей.И мне не понятно, необходимо так:
Метка LV34 без ":", формат метки в описании языка должен быть таким "Label=L<NN/>:"
0
|
||||||||||
|
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
|
|||||||||||||
| 11.02.2012, 21:29 | |||||||||||||
|
dykytotymvytro здесь пишет:
0
|
|||||||||||||
|
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 59
|
|
| 11.02.2012, 23:18 | |
|
[QUOTE="dragonedit"]dykytotymvytro здесь пишет:[QUOTE="Цитата:[/QUOTE][QUOTE]есть определенные вещи, которые хотелось бы изменить - это переходы генерируемые без особой необходимости например при входе в Силуэт в основную ветку алгоритма гненерируется дополнительный jmp[/QUOTE]В ИС Дракон выполняется частичная минимизации количества переходов, но не создавался оптимизирующий компилятор.
jmp L16 - не является лишним на входе в схему, т.к. метка L16 находится в середине процедуры, а первой меткой является L11. Этого не требуется для ассемблера поскольку руководство ходом компиляции фактически ручное. Однако по поводу шампура с меткой L16 вы не правы, смотрите прицепленный скриншот. [QUOTE="dragonedit"][QUOTE="Цитата:[/QUOTE][QUOTE]Настройка на флаги в принципе не очевидна нужно быть в теме, но это следствие не развитой помощи, а не самой реализации настройки. Принцип настройки переходов выбран исключительно верно и пользоваться переходами удобно.[/QUOTE]Подчеркнутое не понял. Описание языка для конкретного микроконтроллера должно содержат все команды перехода по условиям на метки. Настрока ini файла на флаги не очевидна, потому что нет объяснения тому как понимать скрипт: [CODE]; АСМ команды перехода по Z или другому флагу jz=jnz L<NN/> [/CODE] А необходимо понять, что вставляемый в П-код оператор условного перехода будет переключаться автоматически при выборе назначение лианы Да/Нет, при этом важно то как будет расположена ветвь алтернативного пути на Да или на Нет. Мне было понятно я был в теме и являлся инициатором этого изменения. Другим наверное будет не совсем очевиден данный факт. Поскольку в помощи он не отражен, то я и пишу что "неочевидность" следствие не развитости помощи (страницы help). [URL="http://**************************/download/file.php??id=8813&sid=23c55c7b09e2110b18 758af163b13fa1&mode=view"] http://**************************/download/file.php?id=8813&t=1&sid=23c55c7b09e2110 b18758af163b13fa1[/URL]
0
|
|
| 11.02.2012, 23:18 | |
|
Дракон, UML, LabVIEW
ИС Дракон. Вопрос - ответ. Фрактал Дракон Харьков-Хайтвея Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сезонность и суточность закисления почв
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
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|