- DRAKON в snap.
- DRAKON Editor
- System requirements
- Download
- How to run DRAKON Editor
- Screenshots
- Programming with DRAKON Editor
- License
- Authors
- Визуальный язык ДРАКОН
- Инструменты пользователя
- Инструменты сайта
- Содержание
- Программа «ИС Дракон»
- Скачать программу «ИС Дракон»
- Указания пользователю
- Указания программисту
- Заставка программы ИС Дракон
- Что такое дракон-лист?
- Редактирование дракон-схемы
- Особенности
- Описание формата DRT
- Методические указания по работе с ИС Дракон
- Уроки ДРАКОНа
- Дополнительный сайт программы «ИС Дракон»
- Текстовые варианты и файлы Дракон-схем уроков
- Черновики Геннадия Тышова
DRAKON в snap.
Игра в снапкрафтера очень увлекательна, поскольку прокачивает твой скилл в знаниях Linux систем. Поэтому после упаковки менеджера сессий PAC, шило снова заиграло в /dev/ass и решено было найти нового подопытного кролика. Вначале глянул в список Debian Orphaned, который неизменно наводит на уныние. Это брошенные сироты, в описании которых неизменно одно и тоже — потерян интерес сопровождающего. Очень хотелось впервые упаковать какой-либо русский проект, чтобы своим маленьким вкладом немного помочь ему. Почти случайно обнаружил на просторах Интернета сайт про ДРАКОНа — Дружелюбный русский алгоритмический язык, который обеспечивает наглядность. Но, прочитав пару статей про него, был немного ошарашен. Кратко говоря, Дракон — это средство создания различных диаграмм, в частности, диаграмм деятельности (activity diagram), диаграмм состояний (UML state machine), диаграмм синхронизации (timing diagram). В довершение, с помощью Дракона можно через Экспорт получить готовую программу на языках программирования: C и C++, Java, C#, Python, Tcl, Javascript, Erlang, D, Lua и Go. А теперь добавьте, что Дракон был создан в рамках космической программы Буран и активно используется в российской космической отрасли.
Здесь и далее речь пойдёт о DRAKON Editor, так как существует ещё «ИС Дракон» для MS Windows платформы. Начитавшись про Дракона, реально струхнул, честно говоря. Программа на глазах стала не просто программой, а программищей, пародируя Дмитрия Нагиева. Но первое знакомство подвергло в ступор. Как-то морально готовишься к тому, что если программа сложная, то должно +100500 кнопок и пунктов меню и всё должно быть похоже на пульт управления звездолётом.
Но Дракон, написанный с помощью Tool Command Language (Tcl) и графической библиотеки Tk, производил, мягко говоря, аскетичный вид. По первости я лишь недоумённо разводил руками и выдавал нечленораздельное мычание — э-э-э, что это? Снова перечитал статьи в Интернете и, навсякий случай, поискал мнение англоязычного населения планеты. Просто опасался, что это может оказаться детищем очередного Дениски Попова, аля Болгенос! Будучи админом, давно умер как программист, поэтому решил, что не мне судить программы. Привлекло, что это 1) русский проект и 2) используется язык/тулкит Tcl/Tk, с которыми до этого времени не сталкивался. Ок, подумал, давай сделаем это!
Сборочный сервак обзавёлся новой пустой папкой и прототипом snapcraft.yaml. На сайте разработчиков drakon.su для Drakon Editor’а указаны нужные пакеты для Ubuntu — tcl8.5, tk8.5, tcllib, libsqlite3-tcl, libtk-img. Заносим их всех в stage-packages кусочка integration. Правлю свой уже вылизанный скрипт-обёртку run.sh под нужды Дракона и пробую первую итерацию по сборке. Уже было понятно сразу, что закончится всё печально. Первый блин в мире снапкрафтинга всегда комом! Так как сборка программы в snap пакет довольно таки ресурсоёмкий и времязатратный процесс, то делаю ход конём, который всегда выручал при анализе программы. Программу располагаю на своём ПК в /opt/drakon/ с владельцем root:root (имитация будущего пути $SNAP с доступом только-чтение), ставлю нужные пакеты в свою систему и пытаюсь добиться работоспособности программы. Программа стартует и работает нормально. Конечно нормально! Tcl/Tk лежат со своими модулями там где нужно, а внутри snap пакета они будут лежать по своим путям, сдвинутые относительно хост системы на величину $SNAP. Чтобы в своей системе без утомительной сборки добиться работы Дракона, просто нашёл все папки tcltk и переименовал в tcltk_, имитируя изменение пути в будущем пакете снап. Программа предсказуемо «сломалась». Теперь осталось дело за малым . Нужно запустить Дракона, указав каким-либо способом (желательно самым простым и элегантным), где лежат нужные вещи у Tcl/Tk.
Самые главные помощники — это переменные окружения (environment variables). Чтение документации знакомит с переменными TCL_LIBRARY, TK_LIBRARY, TCLLIBPATH. Их говорящие названия обнадёживают. Пробуем!? В запускающем скрипте переопределяем пути с помощью данных переменных.
Программа упорно пишет что не видит нужные ей snit, Tk, msgcat, Img. Добавил всё что можно и не можно в переменную TCLLIBPATH, но толку ноль. К этому времени начитался чуток про Tcl/Tk и понял, что нужно пока отстать от программы Дракон и сосредоточиться на оболочке tclsh. Если её запуск и команды внутри неё типа
перестанут вызывать ошибку и начнут показывать номер версии пакета, тогда и Дракон заработает. msgcat с расширением tm обнаружил в моём правленом пути /usr/share/tcltk_/tcl8.6/tcl8/, а в родительской папке /usr/share/tcltk_/tcl8.6/ нашёл файл tm.tcl со строкой, которая всегда наводит уныние.
Вечно эти жёстковшитые пути! Твоютоматьдивизию! Прочитал tm.tcl целиком и набрёл на кусок кода
EV — это скорее всего Environment Variables. А TCL$
Бинго! Теперь можно было узнать версии нужных модулей через tclsh и package require, кроме Tk. Но Tk — это не пакет Tcl, а отдельная сущность в лице графического тулкита. Мысль работала так. Где-то есть файл, в котором указан путь, как он был до моего грубого переименования. Файл нашёлся по пути /usr/lib/tcltk_/x86_64-linux-gnu/tk8.6/pkgIndex.tcl, в котором опять эти жёстковшитые пути.
Формируется путь /usr/lib/x86_64-linux-gnu/libtk8.6.so и нет в этой паре строк возможности это как-то переопределить. Да что это такое!? Особенно стало обидно, что рядом находятся папки с sqlite и Img, чьи pkgIndex.tcl используют относительные пути и легко подключают нужные библиотеки .so в этой же папке. И только Tk хочет загрузить свою библиотеку через указание абсолютного адреса.
В такие моменты, когда видишь hardcoded path, то понимаешь что стройность и элегантность сейчас рухнет и придётся делать костыль для обходного манёвра. Не владею Tcl/Tk, но придётся править код. По аналогии с PkgIndex.tcl у sqlite, изменил в /usr/lib/tcltk_/x86_64-linux-gnu/tk8.6/pkgIndex.tcl строки на
Но рядом с PkgIndex.tcl нет libtk8.6.so! Сделал ссылку libtk8.6.so -> ../../../x86_64-linux-gnu/libtk8.6.so
Всё заработало! tclsh и Дракон не ругаются и работают исправно. Ну а теперь нужно костыль как-то внедрить в сборочный процесс. Красоты уже не будет, но выхода нет. В snapcraft.yaml в кусочек project-files, который занимается размещением нужного, добавляем важные строки.
Строка after: [integration] попросит сначала обработать кусочек integration и сначала будут распакованы нужные пакеты из раздела stage-packages и автоматически создадутся нужные пути. Символическую ссылку libtk8.6.so прошу разместить внутри снап пакета по адресу usr/lib/tcltk/x86_64-linux-gnu/tk8.6/libtk8.6.so
Snapcraft не обладает функционалом править какие-либо не ваши файлы, которые он разместил по вашему приказу из пакетов, перечисленных в stage-packages. Теперь собирать итоговый пакет snap придётся так. Сначала сделать этап Prime и подкинуть правленную версию файла, чтобы snapcraft «не заметил». Затем уже попросить итоговый этап упаковки по имени snap.
snapcraft prime
cp -f pkgIndex.tcl prime/usr/lib/tcltk/x86_64-linux-gnu/tk8.6/
snapcraft snap
Не успел залить протестированный snap пакет Дракона в Ubuntu Store, как глазастый разработчик Майкл Холл в Гугл+ уже пишет о нём. Действительно, множество программ никогда не были представлены в официальных репозиториях и доступны пользователями для установки «в один щелчок». Через GUI в Software или в Терминале — sudo snap install drakon
Теперь если вам нужно накидать алгоритм для любого случая жизни, то вспомните про Дракошу и порекомендуйте друзьям.
Источник
DRAKON Editor
DRAKON Editor is a free tool for authoring DRAKON diagrams. It also supports state machine diagrams, entity-relationship and class diagrams.
With DRAKON Editor, you can quickly draw diagrams for:
- software requirements and specifications;
- documenting existing software systems;
- business processes;
- procedures and rules;
- any other information that tells «how to do something».
DRAKON Editor runs on Windows, Mac and Linux.
The user interface of DRAKON Editor is extremely simple and straightforward.
Software developers can build real programs with DRAKON Editor. Source code can be generated in several programming languages, including Java, Processing.org, D, C#, C/C++ (with Qt support), Python, Tcl, Javascript, Lua, Erlang, AutoHotkey and Verilog.
System requirements
DRAKON Editor needs Tcl 8.6 to run.
- Windows and Mac users can download Active Tcl here: http://www.activestate.com/activetcl/downloads
- Linux users need to install the following packages:
- tcl8.6
- tk8.6
- tcllib
- libsqlite3-tcl
- libtk-img
Download
Platform | Language | File |
---|---|---|
Windows, Linux, Mac | English and Russian | drakon_editor1.31.zip |
How to run DRAKON Editor
On Windows:
- Extract files from the .zip archive.
- Double-click on drakon_editor.tcl (or right-click and choose «Open with Wish application»)
On Linux and Mac:
- Extract files from the .zip archive.
- Run ./drakon_editor.tcl from the terminal (inside the unzipped folder).
Screenshots
Programming with DRAKON Editor
DRAKON Editor is a truly visual IDE. It can be used to build programs. In fact, DRAKON Editor itself was built using DRAKON Editor. DrakonHub was also built with DRAKON Editor.
License
DRAKON Editor is PUBLIC DOMAIN except some third-party components (pdf4tcl, Liberation fonts).
Authors
Stepan Mitkin, Alexander Ilyin, Maas-Maarten Zeeman, Vasil Dyadov, Vasili Bachiashvili.
Источник
Визуальный язык ДРАКОН
Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность/Надёжность
Инструменты пользователя
Инструменты сайта
Содержание
Программа «ИС Дракон»
Разработчик программы Тышов Геннадий Николаевич
г. Северодвинск, работал в ОАО «СПО «Арктика», www.spoarktika.ru .
Программа «ИС Дракон» предназначена для:
— практической алгоритмизации вашей деятельности,
— формулирования ваших задач,
— формализации ваших знаний.
Программа представляет собой инструмент:
— визуальной техники мышления и общения,
— визуального проектирования алгоритмов деятельности и программ,
— визуального программирования,
— формирования алгоритмических баз деятельности.
Программа «ИС Дракон» (Интегрированная Среда Дракон) является средой работы с Дракон-алгоритмами.
С помощью «ИС Дракон» внедряется алгоритмическая культура во многие виды деятельности.
Скачать программу «ИС Дракон»
После скачивания программа работает с ограниченной функциональностью. Чтобы включить полную функциональность, необходимо обратиться к автору программы Г.Н. Тышову.
Указания пользователю
Указания программисту
В программе есть средства настройки на различные языки программирования. Программа позволяет производить сборку Дракон-схем в исходные тексты программ на языках имеющих операторы: комментарий, метка, безусловный переход (GOTO), переход по условию; к примеру языки семейств 1С, Delphi, C. Сборка программного кода икон в файл производится внутренним Маршрутным транслятором.
Для работы с языками программирования без GOTO и с ассемблерами предусмотрен режим сборки без Маршрутного транслятора в заданном программистом порядке.
Для языка Tcl, без GOTO, есть опыт формирования программного кода Маршрутным транслятором и с последующей доработкой, смотрите http://forum.oberoncore.ru/viewtopic.php?p=89576#p89576
Заставка программы ИС Дракон
Что такое дракон-лист?
Редактирование дракон-схемы
Икона 3 выбрана для редактирования.
Знаком «?» в иконах Адрес и Ветка отмечено отсутствие передачи управления. Передача управления визуально отображается штриховой линией.
Особенности
Отличительной особенностью программы является высокая степень автоматизации ввода графики.
Вторая особенность — каждая икона имеет несколько (до 4-х) уровней ввода текста. Один из этих уровней отображается на «теле» иконы, другой может содержит фрагмент программного кода. Оставшиеся уровни (A-текст, B-текст, P-текст, S-текст) могут использоваться произвольно, например, содержать подробные комментарии, ссылки и сопроводительную информацию.
Для отображения бизнес-процессов иконы дополняются наименованием участников бизнес процесса.
Все отображаемые тексты могут быть многострочными и большого объема.
Максимальное количество строк в иконе задается в настройках программы, полностью текст отображается в текстовом редакторе на вкладке.
Описание формата DRT
Методические указания по работе с ИС Дракон
Калиногорский Н. А. Автоматизация процесса разработки алгоритмов управления в интегрированной среде Дракон. \ Методические указания. — Новокузнецк, Изд. центр СибГИУ, 2013. — 50с. Методические указания разработаны на Кафедре прикладной информатики Института информационных технологий и автоматизированных систем Сибирского государственного индустриального университета, г. Новокузнецк.
Печать выполнять так: сохраните графический файл, печатайте его в PAINT-е. Там есть возможности печати с масштабированием и раскладкой на несколько листов формата А4, есть настройки для печати.
Уроки ДРАКОНа
Для освоения приёмов работы с программой ИС Дракон полезно посмотреть видеоролики. Показан процесс от первого запуска редактора до загрузки полученной прошивки в микропроцессор.
Примечание.
Ролики записывались с устаревшей версией ИС Дракон. Тем не менее, они хорошо передают суть работы программы. Подробнее смотрите здесь. Автор С.Д. Ефанов.
Дополнительный сайт программы «ИС Дракон»
Текстовые варианты и файлы Дракон-схем уроков
Черновики Геннадия Тышова
Сопроводительная информация может содержат указание на законодательные и организационно-распорядительные документы, содержать фрагменты документов.
Наличие сопроводительной информации важно для лиц работающих с юридически значимыми алгоритмами. Наличие к иконе сопроводительной информации обосновывает происхождение и срок действия юридической нормы отображенной в иконе. Именно наличие сопроводительной информации определяет актуальность юридически значимого Дракон-алгоритма.
Программа ИС Дракон разработана на основе визуальных алгоритмических языков Дракон и Гном созданных В.Д. Паронджановым и государственного стандарта ГОСТ 19.701-90 (ISO 5807–85). Идеи и цели языка Дракон получили развитие для практического и широкого применения.
Процедурное знание, алгоритм — описывает порядок действий с объектом, отображено в Дракон-схемах вида Примитив и Силуэт.
Декларативное знание — отвечает на вопрос: «Что это такое?», отображено в Дракон-схеме вида Гном.
Создание и редактирование Дракон-схем выполняется в ИС Дракон.
Дракон-алгоритмы на планшетниках
Некоторые вопрос использования Дракон-алгоритмов созданных в ИС Дракон рассмотрены на форуме в теме «ИС Дракон и Андроид».
ИС Дракон работает в других операционных системах
В UNIX-подобными ОС работает с программой Wine.
В MacOS работает с программой Parallels Desktop.
Действия к иконам 19 и 21 выполняются участниками бизнес-процесса.
Дракон-лист отображен в режиме программирования.
Точки ввода текста (до 4-х квадратов) являются A,B,S,P-текстами: A,B для ввода сопровождающей информации, P для ввода программного кода, S для просмотра собранного программного кода. При наличии текста квадрат темный.
Лист можно сопроводить колонтитулами: верхний средний, нижний левый, нижний средний, нижний правый.
Знаком »?« отмечены обязательные места ввода текста в иконы, места ввода иконы в блоке икон для обеспечения функциональности блока.
Источник