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

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

28.01.2012, 19:20. Показов 1163481. Ответов 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
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 901
08.12.2014, 15:19
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от sitimur
Вот простой пример, есть у меня друг который решил стать программистом для платформы 1С:Предприятие, но программированию никогда не учился
Для 1сников это - обычное явление. не зря же злые языки называют их не "программистами", а "конфигурастами" :-)
http://drokom.su/drokom-sxemy_... araptanova рисует вот такие схемы, а потом генерируется код 1С. Код сразу скажу не особо читаемый, но на работе где он работает, этого вполне хватает для решения поставленной задачи. В приемлемые сроки. Я конечно не сторонник так делать код, но когда это позволяет недо-программисту решать поставленную задачу в срок, это неплохо.
п.с. Очень напрягает в сгенерированном коде большое число переходов по меткам. :-)
Хотел бы я посмотреть на этот код...
0
0 / 0 / 0
Регистрация: 08.02.2012
Сообщений: 648
08.12.2014, 15:41
Вот пример кода "Вырви глаз" :-)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
    // ИС Дракон. Маршрутный транслятор.
 
// D:\@Проекты\БИЗНЕС\Мон настроить ККМ\ДСхемы для настройки принтера ККМ\1С Процедура печати в общем модуле.drt
// 17. Схема - Гном
// 37. Модуль начало
//Автор: Араптанов Илексиндр Илексиндрович 9229976@gmаil.som
//Здесь общие переменные вводим
 
// D:\@Проекты\БИЗНЕС\Мон настроить ККМ\ДСхемы для настройки принтера ККМ\1С Процедура печати в общем модуле.drt
// 1. Схема, начало
Процедура ПечатьВинПринтер(ДокументНаПечать, ВидПечати) Экспорт
 
// ==================== Шампур
 
// 2. Заголовок | Процедура печати в общем модуле
// -4. Правый комментарий | ??? Как организована печать товарного чека?
 
// 5. Выбор | Что печатаем?
// -18. Правый комментарий | Номенклатура для проверки: 14.4283.T120.2 W15 Водолазка
Если ВидПечати = "ОткрытиеСмены" Тогда Перейти ~М_end1; КонецЕсли; // 7. Квиток открытия смены
Если ВидПечати = "ЗакрытиеСмены" Тогда Перейти ~М_end1; КонецЕсли; // 10. Квиток закрытия смены
Если ВидПечати = "ЧекНаОплату" Тогда Перейти ~М19; КонецЕсли; // 13. Чек на оплату
Перейти ~М_end1; // 16. Чек на возврат
 
// 7. Вариант | Квиток открытия смены
 
// 3. Конец | Конец
 
// ==================== Шампур
 
// 10. Вариант | Квиток закрытия смены
 
// ==================== Шампур
 
// 13. Вариант | Чек на оплату
 
~М19:
// 19. Вставка | Печать чека на оплату
ПечатьЧека(ДокументНаПечать);
 
// ==================== Шампур
 
// 16. Вариант | Чек на возврат
 
// 1. Схема, конец
~М_end1:
КонецПроцедуры
 
// D:\@Проекты\БИЗНЕС\Мон настроить ККМ\ДСхемы для настройки принтера ККМ\1С Процедура печати в общем модуле.drt
// 38. Схема, начало
Процедура ПечатьЧека(ДокументНаПечать)
 
// ==================== Шампур
 
// 41. Заголовок | Печать чека на оплату
 
// 43. Ветка | Зададим размер чека, получим макет и сделаем ТабДок для вывода на печать
 
// 75. Действие | Зададим размер чека
Размер = 48;
 
// 76. Выбор | Определим столбцы макета
Если Размер <= 24 Тогда Перейти ~М92; КонецЕсли; // 78. Размер <= 24
Если Размер >= 25 И Размер <= 32 Тогда Перейти ~М93; КонецЕсли; // 81. 25 <= Размер <= 32
Если Размер >= 33 И Размер <= 36 Тогда Перейти ~М94; КонецЕсли; // 84. 33 <= Размер <= 36
Если Размер >= 37 И Размер <= 40 Тогда Перейти ~М95; КонецЕсли; // 87. 37 <= Размер <= 40
Перейти ~М96; // 90. 41 <= Размер <= 48
 
// 78. Вариант | Размер <= 24
 
~М92:
// 92. Действие | Будем брать область 24
ВертОбласть = "|_24";
 
~М65:
// 65. Действие | Получим макет
Макет = ПолучитьОбщийМакет("МакетПечатьНаWinPrinter");
 
// 22. Действие | ТабДок для вывода на печать
ТабДок = Новый ТабличныйДокумент;
 
// 73. Адрес -> 72. Ветка | Заполним "шапку"
Перейти ~М70;
 
// ==================== Шампур
 
// 81. Вариант | 25 <= Размер <= 32
 
~М93:
// 93. Действие | Будем брать область 32
ВертОбласть = "|_32";
Перейти ~М65;
 
// ==================== Шампур
 
// 84. Вариант | 33 <= Размер <= 36
 
~М94:
// 94. Действие | Будем брать область 36
ВертОбласть = "|_36";
Перейти ~М65;
 
// ==================== Шампур
 
// 87. Вариант | 37 <= Размер <= 40
 
~М95:
// 95. Действие | Будем брать область 40
ВертОбласть = "|_40";
Перейти ~М65;
 
// ==================== Шампур
 
// 90. Вариант | 41 <= Размер <= 48
 
~М96:
// 96. Действие | Будем брать область 48
ВертОбласть = "|_48";
Перейти ~М65;
 
// ==================== Шампур
 
// 72. Ветка | Заполним "шапку"
 
~М70:
// 70. Действие | Получим область шапки с учетом размера
ОбластьШапка = Макет.ПолучитьОбласть("ШапкаЧека" + ВертОбласть);
 
// 8. Действие | Заголовок = Номер чека + Дата + Время
ОбластьШапка.Параметры.Заголовок = "Чек № " + ДокументНаПечать.Номер + " от " + Формат(ДокументНаПечать.Дата, "ДФ=dd.MM.yyyy") + " " + Формат(ДокументНаПечать.Дата, "ДЛФ=T");
 
// 14. Действие | Организация
ОбластьШапка.Параметры.Организация = ДокументНаПечать.Организация;
 
// 21. Действие | ИНН
ОбластьШапка.Параметры.ИНН = ДокументНаПечать.Организация.ИНН;
 
// 69. Действие | Вывести шапку для вывода на печать.
ТабДок.Вывести(ОбластьШапка);
 
// 59. Адрес -> 58. Ветка | Заполним табличную часть для "товары"
 
// ==================== Шампур
 
// 58. Ветка | Заполним табличную часть для "товары"
 
// 39. Начало цикла ДЛЯ | Заполняем перечень проданных товаров
Для каждого Строка ИЗ ДокументНаПечать.Товары Цикл
 
// 23. Действие | Получим область строки чека с учетом размера
ОбластьТелоЧека = Макет.ПолучитьОбласть("ТелоЧека" + ВертОбласть);
 
// 24. Действие | Наименование товара = Артикул + Наименование + Характеристика
ОбластьТелоЧека.Параметры.НаименованиеТовара = Строка.Номенклатура.Наименование + " (" + Строка.Характеристика.Наименование + ") (" + ДокументНаПечать.Товары[0].Номенклатура.ЕдиницаИзмерения + ")";
 
// 27. Действие | КоличествоЦена = Количество * Цена
ОбластьТелоЧека.Параметры.КоличествоЦена = "" + Строка.Количество + " * " + Строка.Цена + " руб.";
 
// 25. Действие | Вывести ТелоЧека для вывода на печать.
ТабДок.Вывести(ОбластьТелоЧека);
 
// 54. Завершение цикла | Завершение цикла
КонецЦикла;
 
// 97. Вопрос | Есть скидки? | Да
Если ДокументНаПечать.СкидкиРассчитаны Тогда Перейти ~М26; КонецЕсли;
 
// 100. Адрес -> 62. Ветка | Заполним "итог" чека
Перейти ~М32;
 
// ==================== Шампур
 
// 124. Адрес -> 99. Ветка | Заполнить табличную часть "скидки"
 
// ==================== Шампур
 
// 99. Ветка | Заполнить табличную часть "скидки"
 
~М26:
// 26. Действие | Определим Сумму скидок
СуммаСкидкиИтого = 0;
 
// 28. Действие | Получим область строки чека скидки
ОбластьТелоЧекаСкидка = Макет.ПолучитьОбласть("ТелоЧекаСкидка" + ВертОбласть);
 
// 107. Начало цикла ДЛЯ | Заполняем перечень проданных товаров
Для каждого Строка ИЗ ДокументНаПечать.СкидкиНаценки Цикл
 
// 104. Действие | Сумма скидки итого
СуммаСкидкиИтого = СуммаСкидкиИтого + Строка.Сумма;
 
// 110. Завершение цикла | Завершение цикла
КонецЦикла;
 
// 105. Действие | Определим сумму скидки итого
ОбластьТелоЧекаСкидка.Параметры.Скидка = "" + СуммаСкидкиИтого + " руб.";
 
// 106. Действие | Вывести ТелоЧекаСкидка для вывода на печать.
ТабДок.Вывести(ОбластьТелоЧекаСкидка);
 
// 109. Адрес -> 62. Ветка | Заполним "итог" чека
 
// ==================== Шампур
 
// 62. Ветка | Заполним "итог" чека
 
~М32:
// 32. Действие | Вывести в макет отступ
ТабДок.Вывести(Макет.ПолучитьОбласть("ТелоЧекаОтступ" + ВертОбласть));
 
// 66. Действие | Получим область строки чека "Итог"
ОбластьИтог = Макет.ПолучитьОбласть("Итог" + ВертОбласть);
 
// 31. Действие | Итог
ОбластьИтог.Параметры.Итог = ДокументНаПечать.СуммаДокумента;
 
// 108. Действие | Вывести Итого для вывода на печать.
ТабДок.Вывести(ОбластьИтог);
 
// 52. Адрес -> 55. Ветка | Заполнить табличную часть "оплата"
 
// ==================== Шампур
 
// 55. Ветка | Заполнить табличную часть "оплата"
 
// 122. Действие | Переменная Суммы оплаты
СуммаОплаты = 0;
 
// 33. Начало цикла ДЛЯ | Заполним данные об оплате
Для каждого Строка ИЗ ДокументНаПечать.Оплата Цикл
 
// 112. Действие | Получим область строки чека с учетом размера
ОбластьОплата = Макет.ПолучитьОбласть("Оплата" + ВертОбласть);
 
// 113. Действие | Тип оплаты
ОбластьОплата.Параметры.ТипОплаты = Строка.ВидОплаты;
 
// 114. Действие | Оплата
ОбластьОплата.Параметры.Оплата = Строка.Сумма;
 
// 123. Действие | Увеличим Сумму оплаты
СуммаОплаты = СуммаОплаты + Строка.Сумма;
 
// 115. Действие | Вывести Оплата для вывода на печать.
ТабДок.Вывести(ОбластьОплата);
 
// 103. Завершение цикла | Завершение цикла
КонецЦикла;
 
// 119. Адрес -> 118. Ветка | Заполнить табличную часть "подвал"
 
// ==================== Шампур
 
// 118. Ветка | Заполнить табличную часть "подвал"
 
// 116. Действие | Получим область строки чека "Подвал"
ОбластьПодвалЧека = Макет.ПолучитьОбласть("ПодвалЧека" + ВертОбласть);
 
// 121. Действие | Сдача
ОбластьПодвалЧека.Параметры.Сдача = СуммаОплаты - ДокументНаПечать.СуммаДокумента;
 
// 126. Действие | Сотрудник
ОбластьПодвалЧека.Параметры.Сотрудник = ДокументНаПечать.Продавец.Наименование;
 
// 127. Действие | Вывести "подвал" для вывода на печать.
ТабДок.Вывести(ОбластьПодвалЧека);
 
// 63. Адрес -> 51. Ветка | Пошлем макет на печать
 
// ==================== Шампур
 
// 51. Ветка | Пошлем макет на печать
 
// 68. Действие | Вызовем макет
//ТабДок.Показать();
 
// 56. Действие | Распечатаем без просмотра
ТабДок.АвтоМасштаб = Истина;
ТабДок.Напечатать();
// 44. Адрес -> 49. Ветка | Завершение
 
// ==================== Шампур
 
// 49. Ветка | Завершение
 
// 50. Конец | Конец
 
// 38. Схема, конец
КонецПроцедуры
 
// 37. Модуль конец
//Здесь общие процедуры вводим
0
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
08.12.2014, 16:26
Цитата Сообщение от sitimur
Я конечно не сторонник так делать код, но когда это позволяет недо-программисту решать поставленную задачу в срок, это неплохо.
п.с. Очень напрягает в сгенерированном коде большое число переходов по меткам. :-)
Это не плохо, а ОЧЕНЬ плохо. Потом такой код очень трудно корректировать если понадобится что-то добавить. Да и появляются ненужные строки и неоптимальные алгоритмы по обработке данных. Понятно, что когда речь идет о базе с 100 позициями номенклатуры, то замедление формирования отчета не заметно. Но когда их количество больше в несколько раз, то тормоза реальные, и отчет, который раньше формировался 5 секунд сейчас формируется по 30-40 минут.
Таким программистам надо руки оторвать и сказать что так и было
0
0 / 0 / 0
Регистрация: 07.04.2013
Сообщений: 461
08.12.2014, 19:37
Гололобов "FlowCode"
И ничего существует похожий чем то на Дракон продукт программирования МК

и с блок схемами Ktechlab
0
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
09.12.2014, 00:11
Учись писать, читать и понимать алгоритмы в ИС Дракон. / В.Д. Паронджанов /
Для каждого нужен не метод, а инструмент. / http://forum.obiromcore.ru/vie... 864#p89864 /
Совершенствоваться -значит меняться, быть совершенным - значит меняться часто. / сэр Уинстон Черчилль /

http://forum.obiromcore.ru/vie... 983#p89983
ИС Дракон, выпуск от 09.12.2014

Прошу сообщать Ваши отзывы, замечания и предложения.
0
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
09.12.2014, 00:17
Цитата Сообщение от dymyurk1978
Где ты скачивал программу? То что я скачал, пробная версия. Листы не сохраняет, код не транслирует.
Действительно не сохраняет листы.
Устранил ошибку.
Пользуйтесь выпуском от 09.12.2014.

Код не транслирует? Это новость. Проверю и сообщу утром.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
09.12.2014, 00:23
Цитата Сообщение от dragonedit
Действительно не сохраняет листы.
Устранил ошибку.
Пользуйтесь выпуском от 09.12.2014.
Ну вот, наконец-то увидели ошибку, что не сохраняет листы. А то сохраняет, сохраняет...
0
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
09.12.2014, 00:35
Цитата Сообщение от sitimur
Вот пример кода "Вырви глаз" :-)
Правильно, но туда не зачем смотреть, это промежуточный код, как твои потроха, без причины их не смотрят.
Вот транслятор найдет ошибку в промежуточном коде, тогда в коде найдешь строку и номер иконы, перейдешь в Дракон-схеме к иконе, откроешь P-текст, в нем минимальное количество строк кода и устранишь ошибку.

А промежуточный код, собран по примеру или стилю ассемблеровского кода.
Ассемблеросвкому коду никто не ужасается.
0
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
09.12.2014, 00:43
здесь есть ссылки на блоги С.Д. Ефанова.
Сергей Дмитриевич, в 2012 освоил ИС Дракон, поделился своим опытом, сейчас разработки выполняет только в ИС Дракон. Сообщает, что свободно может вернуться к любой прошлой своей разработке.
0
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 57
09.12.2014, 08:56
Вопрос: при сборке Си-кода с установленной галочкой "Сборка без Маршрутного транслятора" - код не собирается компилятором, выдается куча ошибок, суть которых в том, что где-то в коде пропадают закрывающие ";" и "}". Проверьте пожалуйста.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
09.12.2014, 10:28
Есть вещь, которая мне насквозь непонятна в том вырвиглазном коде:

1. Здешние апологеты Дракона утверждают, что он энфорсит нормальную структуру кода (без переходов в произвольные места)
2. Нормальная структура кода чётко ложится на операторы цикла + if + case + briok + return.

Так почему в сгенерированном коде куча goto? По моим представлениям, если писать кодогенератор прямыми руками - максимум вместо briok останутся.
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 901
09.12.2014, 10:34
Цитата Сообщение от dragonedit
Правильно, но туда не зачем смотреть, это промежуточный код, как твои потроха, без причины их не смотрят.
С одной стороны, это действительно так. с другой стороны - качество сгенерированного кода кагбэ намэкаэт на качество кодогенератора и кодогенерации.
Вот транслятор найдет ошибку в промежуточном коде, тогда в коде найдешь строку и номер иконы, перейдешь в Дракон-схеме к иконе, откроешь P-текст, в нем минимальное количество строк кода и устранишь ошибку.
И такое бывает? :-) кодогенератор дракона написан с ошибками? а чтож для написания драконом не воспользовались? :-))
А промежуточный код, собран по примеру или стилю ассемблеровского кода.
Ассемблеросвкому коду никто не ужасается.
Ну, давным-давно, почти не в этой жизни, когда сами дописывали-переписывали хендриксовский компилер смолл-си - заглядывали в код болеее чем регулярно. И честно скажу - в большинстве случаев ужасаться было нечему. В код после микропаскаля залазил (только процессор не скажу уже) - тоже нечему ужасаться. когда-то дизассемблировали CP/M и Supercalc - тоже уже частично написанные на ЯВУ - и хотя по коду было заметно, где писал человек, а где - генерил компилятор , но не ужасались.
---------------------
Не, я полностью согласен с тем, что "программы читаются людьми"©,
но исполняет-то их машина. Ну и кроме всех прочих прелестей - попробуйте такой код оттрассировать на этапе выполнения....
----------
на мой взгляд, Дракон несовпал со своим временем. когда он был критически нужен (когда программирование было "элитным занятием", типа "Понедельника...") - он был невозможен по аппаратным возможностям. когда он становится возможным - потребность в нем падает... Его бы какой-нибудь "корпорации добра/зла" впарили бы году в 1995 - имхо, сейчас уже был бы выхлоп. Потому как идея хорошая, философия проработана. Ну, или в школы, в учебники школьные - и бесплатная общедоступная исполняющая машина...
0
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
09.12.2014, 11:11
oomomstir

Не понял сообщения.
Вы ссылаетесь на пример кода в 1С, а пишите о конструкциях синтаксиса Си.

Скажу от себя по теме.
В ИС Дракон производиться сборка текста из Р-точек икон и схемы.
Логика программы задается графикой Дракон-схеы, иконой Вопрос и блоком Переключатель.
При сборке программ внутренний Маршрутный транслятор вставляет от себя следующие операторы языку:
Метка, L10: ;
безусловный переход, goto L10;
Переходы по условию, if (a==b) goto L10; if (!(a==b)) goto L10;
Комментарий, комментарий до конца строки, // adfghjkk

Весь остальной код программистом вписывается в Р-точки икон и схем.

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

Настройка ИС Дракон на конкретный язык программирования и содержание иконы одуль описано в выдаваемом тексте при выполнении в меню пункта "Программирование / Элененты языка программирования".

Вот вкратце все.
0
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 494
09.12.2014, 11:15
Цитата Сообщение от Mykysoft
Ну и кроме всех прочих прелестей - попробуйте такой код оттрассировать на этапе выполнения....
Для этого есть режим генерации программного кода с автоматической вставкой операторов трассировки для указанных икон.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
09.12.2014, 13:30
dragonedit, ну просто я практически не помню Visual Basic (язык 1С, как известно - тупой перевод VB на русский), вот и использовал знакомые термины.

А вот то, что вы описали (генерация кода из схем через goto) - это лютый [censored], простите мой французский. Это такой жирный намёк, что под Драконом никакой разумной основы нет, просто квадратики и стрелочки. Вы мне тут пели песню, что Дракон не даст расставлять стрелочки чёрт знает как? Похоже, врали. Или Паронджанов - чистый теоретик, а реализацию "Дракона" делали студенты-двоечники, никогда не слышавшие ни об AST (Abstract Syntax Tree), ни о прочих давно придуманных человечеством радостях жизни для создателей компиляторов?

Поймите простую вещь: если язык не даёт писать кривой код - значит, его синтаксис этого кривого кода не предусматривает (а для исключений из правил - есть операторы-изгои типа goto).

Если язык Дракона тупо отображается в серию goto - значит, он и состоит из блоков и стрелочек, а не конструкций более высокого уровня. С этого момента говорить о нём как о языке высокого уровня бессмысленно: он отстал от жизни лет на 30 (когда от бейсиков с goto перешли к Паскалю и Си, в которых goto был табу... Да что там - даже в Fortran 77 появился блочный оператор if).

Да, хороший программист и на ассемблере напишет структурированный код. Но зачем?

Ну и чисто технически: скорость работы мешанины goto в 1С изучали?
0
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 454
09.12.2014, 13:45
М.. подождите, а во что превращаются при трансляции в С операции со списками, всякие там деревья и сортировки (я думал что в stl, boost и подобное)?

И как вообще то с типами данных в Драконе?
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 901
09.12.2014, 14:08
Цитата Сообщение от dragonedit
Для этого есть режим генерации программного кода с автоматической вставкой операторов трассировки для указанных икон.
ню-ню.... "отладчик - придумали для слабаков"©.
0
0 / 0 / 0
Регистрация: 08.02.2012
Сообщений: 648
09.12.2014, 14:10
Вот пример из чего получился приведенный мною 1С код: http://infostort.ru/public/311020/
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 901
09.12.2014, 14:40
Цитата Сообщение от oomomstir
dragonedit, ну просто я практически не помню Visual Basic (язык 1С, как известно - тупой перевод VB на русский), вот и использовал знакомые термины.
Это - "тупой перевод" - где-то в интервале от "не совсем так" до "совсем не так". Даже для самых ранних версий, в которых появился язык и открытый код.

А вот то, что вы описали (генерация кода из схем через goto) - это лютый [censored], простите мой французский. Это такой жирный намёк, что под Драконом никакой разумной основы нет, просто квадратики и стрелочки. Вы мне тут пели песню, что Дракон не даст расставлять стрелочки чёрт знает как? Похоже, врали. Или Паронджанов - чистый теоретик, а реализацию "Дракона" делали студенты-двоечники, никогда не слышавшие ни об AST (Abstract Syntax Tree), ни о прочих давно придуманных человечеством радостях жизни для создателей компиляторов?
Основной принцип ООП - отделение интерфейса от реализации :-)
Интерфейс - это Паронджанов и его идеи (достаточно хорошо продуманное), а реализация - ну, в общем, где-то в том районе, что вы описали. Может, и не двоечники, правда... но я ж неспроста выше говорил про "продаться корпорации" - были бы ресурсы нанять программистов, либо поляна, на которой можно найти гиков-энтузиастов.

Поймите простую вещь: если язык не даёт писать кривой код - значит, его синтаксис этого кривого кода не предусматривает (а для исключений из правил - есть операторы-изгои типа goto).
С другой стороны, если будет 100% адекватность исполнения дракон-схеме - разве же так важно, "что внутре"? пусть даже и гоуту. в конце концов, все равно все структурные конструкции в итоге транслятся в джампы и бранчи :-)
Другое дело, что адекватности выполнения пока нет (и не будет, пока не будет специализированного продукта), следовательно, надо отлаживать на целевой системе. а при отладке и трасировке на целевой системе у нормального человека от сгенерированного кода крышу снесет. а кому нужен сумасшедший программист?
Если язык Дракона тупо отображается в серию goto - значит, он и состоит из блоков и стрелочек, а не конструкций более высокого уровня. С этого момента говорить о нём как о языке высокого уровня бессмысленно: он отстал от жизни лет на 30 (когда от бейсиков с goto перешли к Паскалю и Си, в которых goto был табу... Да что там - даже в Fortran 77 появился блочный оператор if).
он и состоит из блоков и стрелочек. и "блочно-стрелочная часть" у него замечательная. Структурированная, вполне в духе дейкстры, только лучше. только код генерится, как у не первый день пьяного первокурсника-двоечника.
Да, хороший программист и на ассемблере напишет структурированный код. Но зачем?
затем, что структурированный код легко читается, сопровождается, тестируется и модифицируется. Хоть на ассемблере.

Цитата:
Ну и чисто технически: скорость работы мешанины goto в 1С изучали?
почти не отличается (чуть-чуть медленнее, на единицы процентов, менее 10% замедления). на каком-то релизе были проблемы с памятью при большом числе переходов, но сейчас не наблюдается.
0
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 454
09.12.2014, 16:04
Цитата Сообщение от Mykysoft
он и состоит из блоков и стрелочек. и "блочно-стрелочная часть" у него замечательная. Структурированная, вполне в духе дейкстры, только лучше. только код генерится, как у не первый день пьяного первокурсника-двоечника.
Если бы он генерил код для целевой системы (хороший эффективный двоичный код) особых вопросов бы не возникло.
Но генерить лапшу из goto и кормить ее компилятору... это беда. Теряется слишком много возможностей языка. Да и оптимизации могут сойти с ума.

Кто с этим Драконом встречался - что там со структурами данных?
Формальное описание алгоритмов - это всё-таки не самоцель, да и работают алгоритмы над данными.

Как будут выглядеть на Драконе и во что странслируются операции над упорядоченным списком или деревом каким-нить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2014, 16:04

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
460
Закрытая тема Создать тему
Новые блоги и статьи
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru