DRAKON.SU

Текущее время: Пятница, 01 Ноябрь, 2024 04:03

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




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Среда, 19 Октябрь, 2011 13:09 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
(модератор) выделено из viewtopic.php?f=62&t=3616
Доп. инф. см.: viewtopic.php?p=66541#p66541


Возможный вариант структуры XML-документа и соответствующая ДРАКОН-схема
Код:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Drakon:Document>
   <Properties>
      <LastSchemaID>0</LastSchemaID>
   </Properties>
   <Drakon:SchemaPrimitive>
      <Properties>
         <idSchema>0</idSchema>
         <LastElementID>36</LastElementID>
      </Properties>
      <Drakon:ElementHead>
         <Properties>
            <idElement>0</idElement>
            <idR>2</idR>
            <idB>3</idB>
            <X>153</X>
            <Y>66</Y>
            <L>-76</L>
            <T>-9</T>
            <R>76</R>
            <B>9</B>
            <Code>QuickSort</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementHead>
      <Drakon:ElementEnd>
         <Properties>
            <idElement>1</idElement>
            <X>153</X>
            <Y>702</Y>
            <L>-38</L>
            <T>-9</T>
            <R>38</R>
            <B>9</B>
            <Text>End</Text>
         </Properties>
      </Drakon:ElementEnd>
      <Drakon:ElementParameter>
         <Properties>
            <idElement>2</idElement>
            <idL>0</idL>
            <X>324</X>
            <Y>66</Y>
            <L>-76</L>
            <T>-29</T>
            <R>76</R>
            <B>29</B>
            <Code>&quot;(VAR a: ARRAY OF INTEGER;&quot;,&quot;l, r: INTEGER);&quot;,VAR,&quot;  i, j, x, t: INTEGER;&quot;</Code>
         </Properties>
      </Drakon:ElementParameter>
      <Drakon:ElementAction>
         <Properties>
            <idElement>3</idElement>
            <idT>0</idT>
            <idB>4</idB>
            <X>153</X>
            <Y>116</Y>
            <L>-76</L>
            <T>-22</T>
            <R>76</R>
            <B>22</B>
            <Code>&quot;i := l;&quot;,&quot;j := r;&quot;,&quot;x := a[(r+l) DIV 2];&quot;</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementAction>
      <Drakon:ElementNode>
         <Properties>
            <idElement>4</idElement>
            <idT>3</idT>
            <idR>5</idR>
            <idB>26</idB>
            <X>153</X>
            <Y>157</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>5</idElement>
            <idL>4</idL>
            <idB>6</idB>
            <X>476</X>
            <Y>157</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>6</idElement>
            <idT>5</idT>
            <X>476</X>
            <Y>479</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementCondition>
         <Properties>
            <idElement>7</idElement>
            <idR>6</idR>
            <idB>8</idB>
            <X>153</X>
            <Y>479</Y>
            <L>-76</L>
            <T>-9</T>
            <R>76</R>
            <B>9</B>
            <Code>&quot;i &gt; j&quot;</Code>
            <VacantNodeR>true</VacantNodeR>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementCondition>
      <Drakon:ElementCondition>
         <Properties>
            <idElement>8</idElement>
            <idT>7</idT>
            <idR>9</idR>
            <idB>12</idB>
            <X>153</X>
            <Y>516</Y>
            <L>-76</L>
            <T>-9</T>
            <R>76</R>
            <B>9</B>
            <Code>&quot;l &lt; j&quot;</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementCondition>
      <Drakon:ElementNode>
         <Properties>
            <idElement>9</idElement>
            <idL>8</idL>
            <idB>10</idB>
            <X>248</X>
            <Y>516</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>10</idElement>
            <idT>9</idT>
            <X>248</X>
            <Y>581</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>11</idElement>
            <idR>10</idR>
            <idB>13</idB>
            <X>153</X>
            <Y>581</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementAction>
         <Properties>
            <idElement>12</idElement>
            <idT>8</idT>
            <idB>11</idB>
            <X>153</X>
            <Y>553</Y>
            <L>-76</L>
            <T>-9</T>
            <R>76</R>
            <B>9</B>
            <Code>&quot;QuickSort(a, l, j)&quot;</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementAction>
      <Drakon:ElementCondition>
         <Properties>
            <idElement>13</idElement>
            <idT>11</idT>
            <idR>14</idR>
            <idB>17</idB>
            <X>153</X>
            <Y>609</Y>
            <L>-76</L>
            <T>-9</T>
            <R>76</R>
            <B>9</B>
            <Code>&quot;i &lt; r&quot;</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementCondition>
      <Drakon:ElementNode>
         <Properties>
            <idElement>14</idElement>
            <idL>13</idL>
            <idB>15</idB>
            <X>248</X>
            <Y>609</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>15</idElement>
            <idT>14</idT>
            <X>248</X>
            <Y>674</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>16</idElement>
            <idR>15</idR>
            <idB>1</idB>
            <X>153</X>
            <Y>674</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementAction>
         <Properties>
            <idElement>17</idElement>
            <idT>13</idT>
            <idB>16</idB>
            <X>153</X>
            <Y>646</Y>
            <L>-76</L>
            <T>-9</T>
            <R>76</R>
            <B>9</B>
            <Code>&quot;QuickSort(a, i, r)&quot;</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementAction>
      <Drakon:ElementCondition>
         <Properties>
            <idElement>18</idElement>
            <idR>19</idR>
            <idB>30</idB>
            <X>153</X>
            <Y>372</Y>
            <L>-76</L>
            <T>-9</T>
            <R>76</R>
            <B>9</B>
            <Code>&quot;i &lt;= j&quot;</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementCondition>
      <Drakon:ElementNode>
         <Properties>
            <idElement>19</idElement>
            <idL>18</idL>
            <idB>20</idB>
            <X>248</X>
            <Y>372</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>20</idElement>
            <idT>19</idT>
            <X>248</X>
            <Y>451</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>21</idElement>
            <idR>20</idR>
            <idB>7</idB>
            <X>153</X>
            <Y>451</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>22</idElement>
            <idR>23</idR>
            <idB>25</idB>
            <X>153</X>
            <Y>260</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>23</idElement>
            <idL>22</idL>
            <idB>35</idB>
            <X>343</X>
            <Y>260</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>24</idElement>
            <idB>36</idB>
            <X>248</X>
            <Y>288</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementCondition>
         <Properties>
            <idElement>25</idElement>
            <idT>22</idT>
            <idR>24</idR>
            <idB>18</idB>
            <X>153</X>
            <Y>288</Y>
            <L>-76</L>
            <T>-9</T>
            <R>76</R>
            <B>9</B>
            <Code>&quot;x &lt; a[j]&quot;</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementCondition>
      <Drakon:ElementNode>
         <Properties>
            <idElement>26</idElement>
            <idT>4</idT>
            <idR>27</idR>
            <idB>29</idB>
            <X>153</X>
            <Y>176</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>27</idElement>
            <idL>26</idL>
            <idB>32</idB>
            <X>457</X>
            <Y>176</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>28</idElement>
            <idB>33</idB>
            <X>362</X>
            <Y>204</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementCondition>
         <Properties>
            <idElement>29</idElement>
            <idT>26</idT>
            <idR>28</idR>
            <idB>22</idB>
            <X>153</X>
            <Y>204</Y>
            <L>-76</L>
            <T>-9</T>
            <R>76</R>
            <B>9</B>
            <Code>&quot;a[i] &lt; x&quot;</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementCondition>
      <Drakon:ElementAction>
         <Properties>
            <idElement>30</idElement>
            <idT>18</idT>
            <idB>21</idB>
            <X>153</X>
            <Y>416</Y>
            <L>-76</L>
            <T>-16</T>
            <R>76</R>
            <B>16</B>
            <Code>&quot;t := a[i]; a[i] := a[j]; a[j] := t;&quot;,&quot;INC(i); DEC(j)&quot;</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementAction>
      <Drakon:ElementNode>
         <Properties>
            <idElement>31</idElement>
            <idR>32</idR>
            <X>362</X>
            <Y>260</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>32</idElement>
            <idL>31</idL>
            <idT>27</idT>
            <X>457</X>
            <Y>260</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementAction>
         <Properties>
            <idElement>33</idElement>
            <idT>28</idT>
            <idB>31</idB>
            <X>362</X>
            <Y>232</Y>
            <L>-76</L>
            <T>-9</T>
            <R>76</R>
            <B>9</B>
            <Code>INC(i)</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementAction>
      <Drakon:ElementNode>
         <Properties>
            <idElement>34</idElement>
            <idR>35</idR>
            <X>248</X>
            <Y>353</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementNode>
         <Properties>
            <idElement>35</idElement>
            <idL>34</idL>
            <idT>23</idT>
            <X>343</X>
            <Y>353</Y>
            <L>0</L>
            <T>0</T>
            <R>0</R>
            <B>0</B>
         </Properties>
      </Drakon:ElementNode>
      <Drakon:ElementAction>
         <Properties>
            <idElement>36</idElement>
            <idT>24</idT>
            <idB>34</idB>
            <X>248</X>
            <Y>325</Y>
            <L>-76</L>
            <T>-9</T>
            <R>76</R>
            <B>9</B>
            <Code>DEC(j)</Code>
            <VacantNodeB>true</VacantNodeB>
         </Properties>
      </Drakon:ElementAction>
   </Drakon:SchemaPrimitive>
</Drakon:Document>


Вложения:
Комментарий к файлу: Quick sort
Sort.JPG
Sort.JPG [ 73.37 КБ | Просмотров: 25498 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Среда, 19 Октябрь, 2011 14:27 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Ярослав Романченко писал(а):
Возможный вариант структуры XML-документа и соответствующая ДРАКОН-схема

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

Наверно, буду думать в сторону XML : )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Среда, 19 Октябрь, 2011 20:17 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Наверное, этот код сам нуждается в визуализации... :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Среда, 19 Октябрь, 2011 20:50 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Ильченко Эдуард писал(а):
В частности, не нужны позиции икон на экране, не требуется хранить точки ввода.
Позиции икон и точки ввода рудименты после трансляции из формата редактора Тышова, от них естественно можно и нужно избавиться :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Среда, 19 Октябрь, 2011 21:14 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 21
Откуда: Россия, Ярославль
а если вспомнить про то, что модель и отображение это разные вещи, то окажется, что алгоритм можно экспортировать (это даже можно назвать компиляцией в "недопсевдоxmlконструкции") с помощью одного неймспейса (набора тегов и их отношений), а аспекты его отображения - с помощью другого.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Четверг, 20 Октябрь, 2011 07:56 

Зарегистрирован: Четверг, 21 Январь, 2010 18:06
Сообщения: 63
Откуда: Нижний Новгород
Ярослав Романченко писал(а):
Позиции икон и точки ввода рудименты после трансляции из формата редактора Тышова ...

Уважаемый Ярослав!
Как я понял, у Вас есть транслятор drt-файлов в XML. Нельзя ли его выложить на форуме ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Четверг, 20 Октябрь, 2011 08:33 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 77
Откуда: Астрахань
Madzi писал(а):
А зачем городить очередной велосипед? Чем вас XML не устраивает. Он для того и разрабатывался, чтобы быть расширяемым и восприниматься как "расширенным", так и "бедным" потребителем. Просто некоторые теги будут проигнорированы. Например, комментарии или код.

Более того! Насколько мне известно, системы проектирования (вроде Architect Enerprise) экспортируют нарисованную схему в стандарте XMI. Поэтому экспортированная схема без труда импортируется в другой системе.
Наши студни писали на эту тему курсовые и дипломные, так что инфа - не с потолка. Инфу без труда можно найти в инете.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Четверг, 20 Октябрь, 2011 09:27 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Валерий Лаптев писал(а):
Более того! Насколько мне известно, системы проектирования (вроде Architect Enerprise) экспортируют нарисованную схему в стандарте XMI. Поэтому экспортированная схема без труда импортируется в другой системе.

А есть ли описание формата в открытом доступе?
Было бы неплохо, хотя бы графику дракона переносить в другие программы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Четверг, 20 Октябрь, 2011 09:37 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 77
Откуда: Астрахань
Ильченко Эдуард писал(а):
Валерий Лаптев писал(а):
Более того! Насколько мне известно, системы проектирования (вроде Architect Enerprise) экспортируют нарисованную схему в стандарте XMI. Поэтому экспортированная схема без труда импортируется в другой системе.

А есть ли описание формата в открытом доступе?
Было бы неплохо, хотя бы графику дракона переносить в другие программы.

http://ru.wikipedia.org/wiki/XMI
http://www.omg.org/spec/
Далее: http://www.omg.org/spec/XMI/
Далее: http://www.omg.org/spec/XMI/2.1.1/
Там pdf


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Четверг, 20 Октябрь, 2011 11:17 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Четверг, 20 Октябрь, 2011 14:41 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Петр Приклонский писал(а):
Как я понял, у Вас есть транслятор drt-файлов в XML. Нельзя ли его выложить на форуме ?
Есть, можно забрать его прямо из SVN репозитория http://svn.assembla.com/svn/oberonru/tr ... ts/DRAKON/
или принять участие в дальнейшем его развитии если есть желание. Развитие предполагается в сторону от имеющегося конвертора к полноценному редактору с возможностями генерации кода во множество языков программирования :wink:

PS. Транслятор работает под ОС A2/WinAos/UnixAos
файлы:
Drakon.rep - репозиторий объектов для реализации концепции создания экземпляров объектов по имени средствами ОС A2
DrakonComponents.Mod - модуль с реализациями всех объектов необходимых для чтения ДРАКОН-документов из формата XML
DrakonDocuments.tar - архив с примерами исходных drt-файлов и соответствующих сконвертированных из них XML-файлов
DrakonUtils.Mod - модуль реализующий пользовательские команды для осуществления конвертации.


Последний раз редактировалось Ярослав Романченко Четверг, 20 Октябрь, 2011 14:53, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Четверг, 20 Октябрь, 2011 14:50 

Зарегистрирован: Четверг, 21 Январь, 2010 18:06
Сообщения: 63
Откуда: Нижний Новгород
Спасибо!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 27 Октябрь, 2011 17:13 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5935
Откуда: Москва
Четыре важных инициативы Ярослава Романченко

Инициатива первая: Открытие темы
«Визуальный язык программирования «Дракон»»
на сайте OberonCore.ru

viewtopic.php?f=62&t=493

Это историческое событие произошло 31 мая 2007 года.
Вспоминая об этом, Ярослав пишет:
Цитата:
Не наткнись я совершенно случайно в своё время на ДРАКОН, о нём бы здесь до сих пор может никто и не знал-бы
viewtopic.php?p=63105#p63105

Открытая им тема спустя четыре года разрослась в обширный раздел, насчитывающий свыше 200 тем.
Это значит, что Ярослав Романченко – «крестный отец» Дракона.

Вторая инициатива Ярослава -- создание Генератора Дракон => Active Oberon , или Транслятора схем Дракона в код языка Active Oberon
Это произошло 15 июля 2008 года
viewtopic.php?f=79&t=1080

Ссылка на этот генератор дана в двух разделах Википедии: русском и английском -- в статье ДРАКОН (алгоритмический язык) и DRAKON

Цитата:
DRAKON + Oberon = DRON visual programming language (in English)

Цитата:
Романченко Я.М. D2O (Deuterium Oxide) Транслятор схем Дракона в код языка Active Oberon

Третья инициатива – создание новой редакции Транслятора в июне 2011 года: Опубликован генератор D2O версии 0.3 от 14.06.2011
viewtopic.php?p=63689#p63689

И, наконец, четвертая инициатива Ярослава – это масштабный проект «Дракон и XML».
viewtopic.php?f=79&t=3627

Суть вопроса Ярослав поясняет так:
Цитата:
Развитие предполагается в сторону от имеющегося конвертора к полноценному редактору с возможностями генерации кода во множество языков программирования
Обратите внимание: "во множество языков прграммирования".

Уважаемый Ярослав Михайлович!

Огромное Вам спасибо за Ваши творческие и чрезвычайно важные инициативы,
за Ваш вдохновенный и упорный труд!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 27 Октябрь, 2011 19:04 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Ярослав

Можете рассказать о практическом использовании транслятора ДРОН вами или другими пользователями.

В чем вы видите необходимость перехода к применению формата XML, какая цель достигается. Я полагаю, что формат drt является наиболее компактным.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 27 Октябрь, 2011 22:55 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Геннадий Тышов писал(а):
Можете рассказать о практическом использовании транслятора ДРОН вами или другими пользователями.
А какое практическое использование у компилятора компонентного паскаля или оберона?
ДРОН практически готовый инструмент, выдающий работоспособный программный код. Я использовал его для создания серверной части UDP-чата на подмножестве протокола ICQ. Готовая подсистема включена в дистрибутив операционной системы A2. О практическом использовании транслятора кем либо ещё я не слышал. Думаю, по большей части по-тому, что интерес к самой операционной системе А2 достаточно низок.
Геннадий Тышов писал(а):
В чем вы видите необходимость перехода к применению формата XML, какая цель достигается. Я полагаю, что формат drt является наиболее компактным.
Может формат drt и компактнее, но это не самое главное качество требуемое от формата. Формат drt неудобен прежде всего тем, что крайне тяжело обеспечивать обратную совместимость форматов разных версий. Вы, например, меняли местами идентификаторы элементов, и в формате drt это выражалось в изменении числовых кодов элементов. Это вызывает трудности с поддержкой версий.
Следующий недостаток состоит в том, что формат drt различает параметры элементов просто позицией некоего числа в сплошном потоке данных. Нужно писать замысловатый программный код для формирования файла drt и замысловатый же программный код для разбора файла drt при чтении. Опять-же для поддержки разных версий нужно держать несколько вариантов такого программного кода для каждой версии.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 28 Октябрь, 2011 08:17 

Зарегистрирован: Вторник, 13 Сентябрь, 2011 07:32
Сообщения: 2
Ярослав Романченко писал(а):
Думаю, по большей части по-тому, что интерес к самой операционной системе А2 достаточно низок.

Ярослав, у меня интерес к А2 достаточно высок, но он несколько критический и практический.
Если я мог бы просто взять и использовать А2 для своих нужд, было бы просто замечательно.
Когда я разберусь со своими железками, возможно, я для домашних нужд буду использовать А2.
НО!
Для работы мне очень нужны инструменты для процессоров ARM. В данный момент я использую компилятор от Astrobe Oberon-7. Понять что лучше Oberon-7 или Active Oberon я пока не могу. Но Active Oberon для АРМов я не видел и не слышал о таком. В ЕТН для АРМов разработали Minos, но кроме сообщений об этом я ничего не нашёл. Может, плохо искал. В общем у меня есть "рабочие" и "домашние" задачи, которые мне было бы легче решать имея ОС типа А2 для АРМов, но что-то пока не понятно как это получить без лишнего героизма. Я готов выслушать любые советы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 28 Октябрь, 2011 08:54 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 73
Откуда: Россия, Санкт-Петербург
Насколько мне не изменяет память в поставку входят:
PCAARM.Mod
PCGARM.Mod
PCOARM.Mod
т.е. кодогенератор под АРМ присутствует.
Не вижу причин не использовать его?
А также, помнится, что BohdanT писал Oberon07 под АРМ на A2.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 28 Октябрь, 2011 09:18 

Зарегистрирован: Вторник, 13 Сентябрь, 2011 07:32
Сообщения: 2
Madzi писал(а):
Насколько мне не изменяет память в поставку входят:
PCAARM.Mod
PCGARM.Mod
PCOARM.Mod
т.е. кодогенератор под АРМ присутствует.
Не вижу причин не использовать его?
А также, помнится, что BohdanT писал Oberon07 под АРМ на A2.

Ух ты! Спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 28 Октябрь, 2011 11:30 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Владимир Паронджанов писал(а):
...
И, наконец, четвертая инициатива Ярослава – это масштабный проект «Дракон и XML».
viewtopic.php?f=79&t=3627

Суть вопроса Ярослав поясняет так:
Цитата:
Развитие предполагается в сторону от имеющегося конвертора к полноценному редактору с возможностями генерации кода во множество языков программирования
Обратите внимание: "во множество языков прграммирования".
...
Ну правильно... :) Потому что Ярослав сначала определит точный гибрид каждого языка множества с дракон-схемой. Как он это сделал для Активного Оберона. И поскольку язык описания типов в пару к техноязыку определён не был (как и язык описания структуры АО-программы) - реализовал декларацию и структуризацию в комментариях... Оговорившись, что типы можно визуализировать как "дерево каталогов", содержимое узлов которого представлено таблично. Видимо, эта мысль будет реализована в новом проекте?.. А как предполагается показать структуру программы (модули или их АО-эквивалент)?..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 30 Октябрь, 2011 14:07 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 73
Откуда: Россия, Санкт-Петербург
Я думаю, что подойти нужно немножко иначе. Определить XML множество для дракона и XML множество для абстрактной программы, так как они несколько отличаются и предназначением и содержанием. Затем обеспечить возможность преобразования одного формата в другой, а там уже кодогенерацию и т.д.

В качестве прототипа абстрактной программы можно выбрать модуль оберона:
Код:
<module name="Имя модуля>
  <imports>
    <import alias="sys" name="SYSTEM"/>
  </imports>

  <consts>
    <const name="Pi">3.1415926</const>
    <const name="String">Some string</const>
  </consts>

  <types>
    <type name="newInt" base="int"/>
  </types>

  <vars>
    <variable name="var1" type="newInt"/>
  </vars>

  <body>
    <for index="var1" from="0" to="10" step="1">
        <assign name="var1">var1</assign>
    </for>
  </body>
</module>

Примерно в таком виде. При этом убрав объявления типов, констант, переменных - получим трансформируемый в Дракон каркас. Предлагаю заинтересованным обсудить возможные форматы и создать .xsd .dtd схемы.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2  След.

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


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

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


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

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