DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 14:41

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: дракон-си
СообщениеДобавлено: Вторник, 15 Декабрь, 2009 21:16 

Зарегистрирован: Вторник, 15 Декабрь, 2009 11:43
Сообщения: 83
Здравствуйте, Народ.
Не так давно узнал о существовании дракона и вот решил присоединиться к обсуждению и, возможно, внести свой вклад в развитие прроекта.
На работе пишу на С под QNX 6.2 ПО для встроенных систем реального времени. Тут некоторые жаловались на отсутствие дракона-си.
Не скажу, что постиг дракон-схемы во всех тонкостях - скорее, пробежался по обсуждению и литературе по верхам. Возможно, в моих рассуждениях будут ошибки - тогда поправьте.
По поводу визуального пррограммирования. Мне кажется, что визуальное программирование хорошо, если нет слишком большого числа загромождающих деталей. И к этому утверждению очень удачно присоединяется понятие процедуры верхнего уровня, не имеющей дела с переменными, а только вызывающей и анализирующей результаты выполнения процедур нижнего уровня, которые в идеале должны полностью умещаться на экране, чтобы быть простыми и понятными и кодировать элементарные действия. При таком подходе не имеет особого значения, на каком языке писать - тут даже goto не помешает, если аккуратно форматировать текст процедуры верхнего уровня, выделяя большое левое поле для меток.

А процедуры верхнего уровня становится удобно отображать в виде блок-схем. Кстати, именно именно процедуры верхнего уровня и являются алгоритмическим скелетом программы независимо от языка, на котором она написана - собирая такие скелеты, получим банк алгоритмов. А если хранить их в текстовом формате, то без разницы, в какой графический формат их преобразовывать - дракон-схемы или еще в какое-нибудь визуальное представление, которое, возможно, разработают сторонники использования блок-схем в будущем.

Что касается дракона, то как я понял, он производит кодирование блок-схем из визуального представления в некий промежуточный текстовый формат представления алгоритмов. А теперь по поводу генерации кода на С. на первом этапе мне представляется логичным реализовать перекодировку "текстовое представление алгоритма + декларации переменных" в код на языке С или, как
первый этап, на некоем подмножестве языка С. (Как я помнимаю, часть работы, связанная с перекодировкой из визуального
представления алгоритмов в текстовое, уже более или менее успешно выполнена к настоящему времени Геннадием Тышовым).
Ясно, что генерируемый на С код должен быть достаточно читабельным, чтобы программист мог при отладке вносить в код осмысленные изменения (а затем и аналогичные изменения в соответствующие этому коду дракон-схемы - здесь была бы полезной процедура сравнения аналогичности вновь сгенерированного кода с уже существующим). Процедуры нижнего уровня можно было бы вводить (по желанию) на каком-нибудь упрощенном языке с использованием русского шрифта. Перевод на латиницу - транслитерацией. Ну и все процедуры модуля должны иметь указатель на структуру данных модуля.
Генерация кода должна выполняться так, чтобы можно было, допустим, перекодировать его из win1251 в UTF-8 и без проблем подстыковать к QNX-овскому проекту.

Ну и кто что об этом думает ?

-----------------------------------------------------------------------

Да, кстати, почему я вообще попал сюда.
Еще ничего не зная о драконе, я набросал программку AB - простенький
построитель псевдографических блок-схем.
Смысл в том, что все блоки блок-схемы насажены на шампур, а переходы
задаются линиями справа. Чтобы перейти от блока-условия к другому блоку,
нужно выбрать его, затем щелкнуть правой кнопкой мыши, вызывая меню
типа перехода (безусловный, да, нет, отмена связи), а затем щелкнуть по
блоку, куда переходим - после этого переход будет задан и отображен на
блок-схеме.


Последний раз редактировалось Дмитрий_ВБ Понедельник, 21 Декабрь, 2009 20:50, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Воскресенье, 20 Декабрь, 2009 14:30 

Зарегистрирован: Вторник, 15 Декабрь, 2009 11:43
Сообщения: 83
Программа АВ (Algorithms Builder), V 1.10,
находится на стадии тестирования

Замечание для программеров, говорящих: "Мы можем программировать
и без всяких там блок-схем и прочих рисуночков и диаграмок".
Если вы хотите, чтобы в тексте вашей программы разобрался
кто-нибудь еще, кроме вас, то какие-то пояснения к тексту
программы вам все же написать придется.


Проанализировав формат файла *.drt на предмет возможности
редактирования его "вручную" и мои возможности программиста
(никогда не заявлял, что я - крутой программер), я решил
по-быстрому написать генератор кода для С из блок-схем с
использованием уже написанной мной раньше программы АВ.

В результате внесенных в АВ изменений стала возможной
генерация из АВ файлов исходного кода на С/С++, паскале и
и других языках (в том числе русскоязычных), в состав
которых входит классический goto.
Эти файлы - не какие-то шаблоны, а полноценные исходники,
которые можно подключать к проекту и сразу же компилировать.
Задав в конфигурации АВ для файлов исходного кода рабочий
каталог программного проекта и сгенерировав исходник, а
затем перейдя в окно среды программирования, увидим там
вопрос типа: "Файл *** изменен. Загрузить его ?". Отвечаем
"Да" и запускаем его на компиляцию.

Визуальный язык блок-схем (далее ВЯЗ БС) программы АВ
изображает БС в вертикальном порядке, одну под другой, и
позволяет задавать и просматривать дерево БС, образующееся
при написании программы. Пока изображения БС псевдографические,
но в будущем возможен переход на графическое отображение БС.

Поскольку ВЯЗ БС по логике изображения БС отвечает основному
требованию ДРАКОНа: "желательно все логически связанные блоки
располагать на одной вертикали", то можно считать ВЯЗ БС неким
сильно упрощенным подмножеством ДРАКОНа, т.е. маленьким
дракончиком.

Формат текстового представления БС в АВ прост. Он состоит из
последовательно размещенных друг за другом описаний БС и
строится из двух блоков описания данных: описателя заголовков
БС и описателя действий БС. Описатели данных отделяются друг
от друга пустыми строками.

Формат описателя заголовка:

:.<индекс заголовка>. текстовая строка 1
текстовая строка 2
...
текстовая строка N
---------------------
процедурная строка 1
...
процедурная строка N

Максимальное количество строк заголовка, отображаемое на БС,
равно 10. Максимальное число процедурных строк заголовка не
ограничено.

Формат описателя действия:

.<индексная строка действия>
текстовая строка 1
...
текстовая строка N
-------------------
процедурная строка 1
...
процедурная строка N

Максимальное количество текстовых строк действия равно 10.
Максимальное количество процедурных строк действия не
ограничено.
Индексная строка действия редактируется автоматически и
при вводе нового действия ограничиваемся тем, что ставим
точку в первой колонке этой строки.

Процедурные строки заголовка и действий на БС не отображаются
и доступны для просмотра в окне редактирования текстового
представления БС.
Процедурные строки заголовка и действий представляют собой
языковые конструкции, без изменений помещаемые в исходный
файл (исключение - задаваемый, если нужно, в последней
процедурной строке заголовка оператор выхода из процедуры
с параметром, подробнее см. ab.txt и ab.cfg).
Если у БС есть только заголовок и нет ни одного действия,
тело процедуры для нее не генерируется.

Максимальное число действий для БС равно 200.
Максимальное число строк БС равно 700.
Максимальное число БС в файле текстового задания БС равно 200.
Максимальное число файлов текстового задания БС, с которыми
может одновременно работать АВ равно 15.

В АБ ширина поля ввода для задания и редактирования текстов БС
и действий равна 40 символам. На замечание, что почему поле
ввода такое маленькое, надо бы побольше, отвечу. Я предполагаю,
что действия БС - это или вызовы процедур, или несколько
сравнительно компактных операторов. Если вам нужно
запрограммировать что-нибудь громоздкое и с таким
форматированием текста, которое вам удобно, то создайте свою
процедуру в другом модуле и делайте там, что хотите. А в
сгенерированном модуле будет только вызов этой процедуры.

Для вызова окна редактирования текста БС из окна просмотра
БС нужно щелкнуть мышью по нужной БС, а затем нажать кнопку
"Ред." или клавишу F4.
В АВ есть возможность открытия до 4-х окон редактирования
текстов БС (окна выбираются и открываются одно за другим).
Переход к нужному окну - Alt+<номер окна редактирования>

Ну вот, вкратце, и все. Подробнее см.
файлы ab.txt, ab.cfg и другие файлы в архиве ab110.rar .

(ab110 устарел, см. ab140.rar в 1-м сообщении темы
"Программы AB_VJAZ и DAL_VJAZ")

Что получилось, то получилось. Конечно, все это еще далеко от
идеала, а потому и предлагается к обсуждению.
Буду рад вашим замечаниям и предложениям.
Вложение:
Комментарий к файлу: текстовое описание AB
ab.txt [21.82 КБ]
Скачиваний: 751


Последний раз редактировалось Дмитрий_ВБ Понедельник, 11 Апрель, 2011 12:25, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Воскресенье, 20 Декабрь, 2009 15:09 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 42
Откуда: Бердск
Вроде есть уже такое название АВ (Algorithms Builder): http://www.algrom.net/russian.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Воскресенье, 20 Декабрь, 2009 15:25 

Зарегистрирован: Вторник, 15 Декабрь, 2009 11:43
Сообщения: 83
Galkov писал(а):
Вроде есть уже такое название АВ (Algorithms Builder): http://www.algrom.net/russian.html


Спасибо, учту (хотя там у них там вроде Algorithm Builder - в единственном числе).
Название пока условное - со временем придумаю что-нибудь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Понедельник, 21 Декабрь, 2009 11:53 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
У меня есть рабочий генератор кода на Активном Обероне из .drt файлов http://sage.com.ua/ru.shtml?e6l0
Сразу после запуска программы AB.exe появляется сообщение об ошибке:


Вложения:
ab.png
ab.png [ 4.04 КБ | Просмотров: 18115 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Понедельник, 21 Декабрь, 2009 12:07 

Зарегистрирован: Вторник, 15 Декабрь, 2009 11:43
Сообщения: 83
[quote="Ярослав Романченко"]У меня есть рабочий генератор кода на Активном Обероне из .drt файлов http://sage.com.ua/ru.shtml?e6l0

Если будет время, попробую разобраться с форматом .drt,
но гарантировать пока не могу.

> Сразу после запуска программы AB.exe появляется сообщение об ошибке ...

Cкорее всего это из-за того, что не исправлены пути к файлам данных в файле ab.cfg - они должны быть правильными. Программка макетная, поэтому изощренной обработки ошибок там пока нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Понедельник, 21 Декабрь, 2009 20:11 

Зарегистрирован: Вторник, 15 Декабрь, 2009 11:43
Сообщения: 83
Кстати, если бы уважаемый Геннадий Тышов или кто нибудь другой
сделал так, чтобы преобразовать часть данных из формата .drt в
предложенный мной формат ВЯЗ БС, то перекодировка программы
на ДРАКОНе в полноценную программу на Паскале или С стала бы
делом техники. Но для качественного преобразования нужно не
поверхностно, а достаточно глубоко разбираться во внутренней
структуре данных ДРАКОНа.
А если бы ДРАКОН научился читать данные в формате ВЯЗ БС, то
осталось бы только придумать, как разместить считанные блок-схемы
на экране ДРАКОНа.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Вторник, 29 Декабрь, 2009 01:14 

Зарегистрирован: Вторник, 15 Декабрь, 2009 11:43
Сообщения: 83
Программа Аutomated Builder for VJAZ BS
V 1.20, от 28.12.2009
(находится на стадии тестирования)
сокращенные названия: AB VJAZ, AB
VJAZ BS - block-schemes visual language




Основная новая возможность - поддержка дракон-си





Сокращения:

БС - блок-схема
ДС - ДРАКОН-схема
ЯПВУ - язык программирования высокого уровня
дракон-си - подмножество языка ДРАКОН, достаточное для
программирования в и.с.ДРАКОН на С/C++, паскале и
других ЯПВУ, включающих в себя стандартный goto.

Ограничения реализации дракон-си

- обрабатываются только ДС типа "примитив";
- на одном листе располагается только одна ДС;
- исключена синхронизация процессов друг с другом и по времени
(эти задачи решаются ЯПВУ при помощи системных вызовов ОС);
- обрабатываются иконы и блоки только следующих типов:
- икона "заголовок";
- икона "конец";
- икона "действие";
- икона "комментарий";
- икона "вставка";
- блок "развилка";
- блок "обычный цикл".
- этим иконам и блокам соответствуют следующие номера элементов в
.drt файле:
- 4, "заголовок";
- 5, "конец";
- 6, "действие";
- 11, "комментарий";
- 7, "вставка";
- 8, "развилка";
- 8, "развилка".
кроме того, также обрабатывается элемент номер 3, "точка ввода".


Формат задания текстов заголовка ДС, действий,
переходов и вставки в дракон-си

Тексты заголовка ДС, переходов и действий (элемент "комментарий"
тоже может использоваться как действие и не отличается от него ничем,
кроме своего внешнего вида) состоят из текстовых строк, разделительной
строки из минусов и процедурных строк, по аналогии с описателями формата
ВЯЗ БС, подробнее см. файл ab.txt в архиве ab120.rar .
Элемент "вставка" не используется для генерации кода и исходный код
для него генерироваться не будет. Он должен содержать в себе имя
идентификатора той ДС, на которую ссылается вставка. Элемент "вставка" в
дракон-си нужно размещать в паре с элементом "действие", вторым
элементом пары. Сначала в действии задаются комментарий и вызов какой-
нибудь процедуры, а затем следует вставка, ссылающаяся на ДС,
соответствующую этой процедуре.

Сборка проекта в дракон-си

Для сборки проекта в рабочем каталоге Дракона создается файл проекта
дракон-си с расширением .prj . Заголовок этого файла состоит из области
определений констант, типов и глобальных переменных создаваемого файла
исходного кода на ЯПВУ. За заголовком, начиная с 1-й колонки, следует
строка "-----". А после нее следует, по одному файлу в строке, список
тех файлов .drt, которые включены в проект и в той последовательности, в
которой они будут перекодировться и сгенерированный на их основе код
будет записываться в файл исходного кода.
Пример проекта для дракон-си см. в каталоге \drt в архиве a120.rar.
Чтобы начать работать с проектом, нужно в файле ab.cfg правильно
указать пути ко всем файлам, с которыми будет работать программа AB.
После этого нужно запустить АВ.
В начале работы АВ сохраняет текущие версии файлов текстовых
описаний БС, находящихся в рабочем каталоге АВ, в файлах с расширениями
.old . При редактировании текстовых полей файлов .drt , находящихся в
каталоге ДРАКОНа, их старые версии сохраняются в каталоге ДРАКОНа с
расширениями .old .
Чтобы провести перекодировку дракон-си -> ВЯЗ БС, нужно в АВ перейти
к окну текстового файла описания БС и нажать на кнопку "Др.". Проект из
каталога /drt из архива a120.rar должен перекодироваться без ошибок.
При перекодировке AB строит свою модель ДС по графическим координатам
элементов и их типам.
Чтобы сгенерировать исходный код для полученного от ДРАКОНа файла
текстового описания БС, нужно нажать кнопку "Прг" (подробнее о генерации
исходного кода см. файл ab.txt).


Редактирование текстовых полей .drt файлов из АВ

Для начала ответ на естественный вопрос: "А зачем вообще это нужно,
если в ДРАКОНе можно вводить текст для выбранного элемента ?".
АВ чувствительна к длине текстовой строки, которая для файлов
текстового задания БС не должна превышать 40 символов. Лишние символы
строки в соответствии с логикой работы АВ отсекаются. А поле
редактирования текста БС в АВ как раз и предназначено для ввода текста
длиной не более 40 символов.
После того, как по кнопке "Др." проект ДРАКОНа будет втянут в АВ,
можно выбрать мышью одну из сгенерированных БС и нажать кнопку "Ред.".
Чтобы окно псевдографики не мешало совместному просмотру ДС в ДРАКОНе
и поля редактирования текста в АВ, нужно нажать кнопку "Мин./Восст ПГ" в
окне редактирования АВ. После ввода исправлений в выбранные текстовые
поля БС (они находятся по меткам и текстам комментария, а текст заголовка
ДС помещен в тексте заголовка БС) нужно:
1) закрыть ДРАКОН;
2) нажать кнопку "Сохранить" окна редактирования АВ;
3) запустить ДРАКОН снова и открыть в нем ДС, текстовые поля которой
были отредактированы из АВ.

Эта последовательность действий нужна потому, что на редакцию из
другой программы текстового поля одного из элементов файла .drt, уже
открытого в ДРАКОНе, он не реагирует. Даже прямая попытка снова открыть
отредактированный файл в ДРАКОНе не дает результата. А полноценная
интегрированная среда должна бы уметь делать такие вещи.
Неплохо было бы также при считывании ДРАКОНом файла с измененными
текстовыми полями автоматически менять размер рамки элемента, подгоняя
размер рамки к вновь введенному тексту. А то приходится вызывать команду
"Увеличить ширину иконы", при выполнении которой, если столбец текста
выходит за нижнюю границу иконы, увеличивается и ее высота.

Об остальном подробнее см. файл ab.txt из архива a120.rar .


(ab120 устарел, см. ab140.rar в 1-м сообщении темы
"Программы AB_VJAZ и DAL_VJAZ")


Что получилось, то получилось. Конечно, все это еще далеко от
идеала, а потому и предлагается к обсуждению.
Буду рад вашим замечаниям и предложениям.




Поскольку уже предновогодняя неделя, то всех поздравляю

С НАСТУПАЮЩИМ НОВЫМ ГОДОМ !!!


Последний раз редактировалось Дмитрий_ВБ Понедельник, 11 Апрель, 2011 12:27, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Вторник, 29 Декабрь, 2009 16:00 

Зарегистрирован: Вторник, 15 Декабрь, 2009 11:43
Сообщения: 83
Кстати, по просьбе Владимира Даниеловича Паронджанова выкладываю для обсуждения мои взгляды по поводу ДС "Силуэт":

Наконец я смог ясно сформулировать для себя, чем именно мне не
нравится ДС "Силуэт". Она состоит из вертикалей-примитивов,
связанных между собой некоторыми связями. Поэтому прямо-таки
напрашивается при переводе силуэта в процедурную форму разбиение
его на N+1 процедуру, где N - это количество примитивов в силуэте плюс
процедура верхнего уровня, показывающая связи между примитивами.
Я бы реализовал силуэт через примитивы, один из которых, верхнего
уровня, имел бы ссылки на примитивы нижнего уровня. И по этим ссылкам
примитивы нижнего уровня можно было бы открывать и просматривать при
необходимости, чтобы они все сразу не загромождали бы зрительное поле
при анализе алгоритма. В любом случае это единственный реальный
способ, который я вижу, перетаскивания силуэта из ДС в исходный код
программы. Т.е. силуэты (процедуры верхнего уровня) мне и так
постоянно приходится реализовывать при программировании и ничего
чудесного я в этом не вижу.

--------------------------------------------------------

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Среда, 30 Декабрь, 2009 13:31 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Дмитрий_ВБ писал(а):
я смог ясно сформулировать для себя, чем именно мне не
нравится ДС "Силуэт"
"В чём сила мира, брат?" - В "Силуэтах"! : )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Среда, 30 Декабрь, 2009 15:03 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 143
Откуда: Россия, Орёл
Дмитрий_ВБ писал(а):
Наконец я смог ясно сформулировать для себя, чем именно мне не
нравится ДС "Силуэт"... Я бы реализовал силуэт через примитивы...В любом случае это единственный реальный способ, который я вижу, перетаскивания силуэта из ДС в исходный код программы.
Альтернативные мнения смотрели?
viewtopic.php?f=78&t=957&start=0 <-> viewtopic.php?p=14688#p14688
viewtopic.php?p=17154#p17154
...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Вторник, 05 Январь, 2010 21:34 

Зарегистрирован: Вторник, 15 Декабрь, 2009 11:43
Сообщения: 83
Программа Аutomated Builder for VJAZ BS
V 1.30, от 5.01.2010
(находится на стадии тестирования)
сокращенные названия: AB VJAZ, AB
VJAZ BS - block-schemes visual language



Новые возможности:

1) Отлажена объявленная 28.12.2009 работа с дракон-си.

Правильно перекодируются все примитивы в каталоге \drt из архива
ab130.rar. В файле ds_w_bs.txt из архива ab130.rar приведен алгоритм
перекодировки ДС "Примитив" в ВЯЗ БС и некоторые важные процедуры этого
алгоритма.

2) АВ как оболочка-интегратор ДРАКОНа.

Все действия, связанные с перекодировкой ДРАКОН <-> ВЯЗ БС -> ЯПВУ
вынесены теперь в отдельные исполняемые файлы, вызываемые при выборе
пользователем соответствующих команд диалога АВ.
Сейчас выделено 3 таких действия:
1) БС -> ЯПВУ: - по нажатию кнопки "Прг."; имя программы
задается параметром "_БС_в_программу" в
в файле ab.cfg;
2) ДС -> БС: - по нажатию кнопки "Др."; имя программы
задается параметром "_ДС_в_БС" в файле
ab.cfg;
3) БС -> ДС: - по нажатию кнопки ".drt", которая появится
в основном окне АВ, если в файле ab.cfg
будет задан параметр "_БС_в_ДС"; здесь
имеется в виду создание группы файлов .drt,
указанных в файле проекта дракон-си, из
файла текстового формата представления БС
(пока не реализовано).

Все программы, предназначенные для выполнения вышеуказанных действий,
должны находиться в рабочем каталоге АВ.
При выборе пользователем одной из вышеуказанных команд диалога АВ
запускается на выполнение соответствующая программа, получающая от АВ
следующие параметры командной строки:
1) полный путь и имя этой программы;
2) режим вызова программы (от 1 до 3, обозначает выполняемое действие);
3) номер окна АВ, для которого выполняется действие (от 0 до N-1, где
N - количество заданных в файле конфигурации АВ окон).
Запущенная программа читает файл ab.cfg и смотрит, задана ли для
указанного в ее командной строке окна АВ конфигурация ДРАКОНа (для
действий 2 и 3). Если действие не "БС -> ЯПВУ", а конфигурация ДРАКОНа
для окна не задана, то выполняется досрочный выход из программы. А
в случае, когда конфигурация ДРАКОНа задана, программа читает ее, после
чего выполняет указанное в командной строке действие.
Если перекодировка по каким-либо причинам заканчивается неудачно, то
программа создает файл диагностических сообщений diag_N.txt, где
N - номер выполняемого действия. Формат записываемого в файл диагностики
сообщения следующий:

:.1000. ОШИБКА
<текст диагностического сообщения>


Смысл превращения АВ в оболочку-интегратор для ДРАКОНа

1) Введение формата ВЯЗ БС, по сути своей являющегося байт-кодом для
визуальных языков (т.к. преобразование одномерной БС формата ВЯЗ БС в
исходный код программы является тривиальной задачей), позволяет разбить
задачу перекодировки ДРАКОН -> ЯПВУ на 2 подзадачи (ДРАКОН -> ВЯЗ БС и
ВЯЗ БС -> ЯПВУ), решение каждой из которых заведомо легче, чем решение
задачи ДРАКОН -> ЯПВУ.
2) В рамках одного интегратора эти задачи, как вместе, так и по
отдельности, могут решаться разными людьми, разными способами и с
постановкой отличающихся друг от друга начальных и граничных условий для
решения этих задач, что со временем позволит выделить из этих решений
один или несколько наиболее удачных вариантов.
3) Снимается первоначальное ограничение АВ: генерация кода выполняется
только для ЯПВУ, включающих в себя стандартный goto. Теперь люди,
программирующие на ЯПВУ без goto, смогут написать свои версии
перекодировщика ВЯЗ БС -> ЯПВУ.


Вид окна вывода при перекодировке дракон-си -> ВЯЗ БС

Т.к. при отображении одномерной БС формата ВЯЗ БС число линий
логических связей, расположенных справа от вертикали БС, не должно быть
больше 7, а для некоторых получаемых при перекодировке БС это не так,
то для получаемых при перекодировке файлов текстового формата
представления БС отображение блок-схем в псевдографике не
производится. Вместо этого, в случае удачной перекодировки, выводится
список файлов .drt, заданный в файле проекта дракон-си. Для
редактирования текстовых полей любого из этих файлов нужно выбрать
строку этого файла и нажать кнопку "Ред.".
В случае неудачной перекодировки в окне отображается диагностическое
сообщение о причине неудачи.



Об остальном подробнее см. файл ab.txt из архива a130.rar .

Буду рад вашим замечаниям и предложениям.

(ab130 устарел, см. ab140.rar в 1-м сообщении темы
"Программы AB_VJAZ и DAL_VJAZ")

Всех поздравляю с наступающим Рождеством


Последний раз редактировалось Дмитрий_ВБ Понедельник, 11 Апрель, 2011 12:28, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Среда, 06 Январь, 2010 22:12 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Уважаемый Дмитрий, спасибо за интересные инициативы.

Касательно силуэта: это не средство процедурной декомпозиции, а больше средство переключения состояний. В одном из пониманий, конечный автомат.

Как его отображать, обсуждалось: например, бесконечный цикл с case внутри.

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

Код:
PROCEDURE Ветка1;
BEGIN
  A;
  B;
  C;
  Ветка2
END Ветка1;


(Если разрешить компилятору оптимизировать концевой вызов процедур без параметров, то это вообще тривиально - сброс стека и переход. А в языках с вложенными процедурами решает все проблемы, т.к. общий контекст хранит объемлющая процедура. Да, для Паскалей вот он и искомый способ выражать сложную логику управления без GOTO, в культурном рекурсивном стиле.).

В силу обычного устройства императивных трансляторов концевой вызов процедуры, которая "продолжает дело", кажется несколько диковатым. (Преподаватели знают, что так часто пишут новички).

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

Кто вспомнит модели Хора из Последовательных взаимодействующих процессов, сразу представит это дело :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Пятница, 08 Январь, 2010 11:39 

Зарегистрирован: Вторник, 15 Декабрь, 2009 11:43
Сообщения: 83
Предлагаю следующий способ перекодировки ДС "Силуэт" -> ВЯЗ БС:

1) создается новое консольное приложение, имя которого указывается в параметре _ДС_в_БС ab.cfg ;
2) файл .drt с силуэтом переименовывается ;
3) на его месте создается временный .drt файл с логически идентичным этому силуэту примитивом, см.
пост Рэйлвей Каген от 6.01.10 16:23, Сравнение Дракона со всякими другими :) ;
4) вызывается vjazprg.exe c параметрами "vjazprg.exe" "2" "<номер окна>" и перекодирует примитив ;
5) удаляем временный файл и переименовываем файл .drt с силуэтом обратно.

Замечания:
1) у силуэта должен быть только один заголовок, в котором будет задаваться шапка создаваемой процедуры;
2) строка заголовка должна находиться в 4-й строке временного .drt файла;
3) допустимые типы икон и блоков для перекодируемого силуэта:
- заголовок
- конец
- действие
- комментарий
- вставка
- развилка
- обычный цикл
- заголовок и адрес ветки, исключаются при построении временного .drt файла
4) при создании временного .drt файла нужно учитывать, что vjazprg читает и проверяет тип ДС и число
схем на листе в первых трех строках .drt файла и анализирует следующие параметры элемента .drt файла:
- параметр 1: тип элемента;
- параметр 2: метка элемента;
- параметры 3 и 4: графические координаты элемента;
- текстовые строки элемента;
- признаки D и C, помещаемые в конце строки элемента.

Так что, уважаемые, если кто хочет увидеть силуэт в виде исходного кода, сгенерированного программой
АВ - не вижу препятствий, все в ваших руках.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дракон-си
СообщениеДобавлено: Понедельник, 11 Апрель, 2011 11:46 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 143
Откуда: Россия, Орёл
Разделено по просьбе автора: viewtopic.php?f=79&t=3383


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB