DRAKON.SU

Текущее время: Пятница, 29 Март, 2024 08:16

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




Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Четверг, 14 Ноябрь, 2013 20:13 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Илья Ермаков писал(а):
По поводу последней реплики:
- ну так как раз применения за пределами программирования ("гуманитарные") имеют шансы стать очень массовыми (собственно, видно, что ДРАКОН там уже попёр "самовозбуждающимся" образом), так что я бы не стал сильно критиковать тезисы о революционности.

Я имел в виду "революционность" именно в программировании. Вот показательная цитата из Попытка нарисовать рекурсию:
Владимир Паронджанов писал(а):
...
Когда я делал доклад на кафедре прикладной математики МЭИ,
мне задали вопрос:
Как изобразить рекурсию на Драконе?

Уменя не было готового ответа.
Я никогда раньше об этом не думал.
...

То есть:

- ребята, смотрите, вот так нужно отлично и безошибочно программировать...
- хм..., а как с рекурсией ?..
- э..., никогда об этом не думал...

И основной негатив вокруг Дракона возникает не из-за языка как такового, а именно из-за "маркетинга". Любой адекватный специалист понимает сущность Дракона, насколько он продвинулся по сравнению с блок-схемами, и по случаю вполне может им воспользоваться. И лично я благодарен Паронджанову за его идеи.

И хорошо, что Дракон хоть куда-то попёр. Если программисты не могут выбить из него новых решений, то м.б. гуманитарии надавят, ведь там есть с чем конкурировать, со всякой разной попсой (IDEF, eEPC, workflow и прочие uml-и). От Дракона потребуют (да и сейчас многие плачут) кроме алгоритмов нотацию и для моделирования, декларирования и т.д., похожую на исходную. Вот Степан Митькин работает сейчас над языком ERIL для структур. Ему придётся решать эту проблему (отсюда):
alexus писал(а):
Не возьмусь говорить о "рисовании" алгоритмов, но вот базы данных "рисую" очень давно. Там тоже есть проблема пересечений связей между отношениями (ER-диаграммы). За полвека никто из "базовиков" не предложил хорошего решения. Используют два варианта, каждый из которых имеет свои плюсы и минусы:
1. Оставляют пересечения, как есть;
2. Дублируют сущность, связь с которой вызывает пересечения, в другом месте, где таких пересечений нет. Дубль помечают примерно так: RELATION: CUSTOMERS : 3. Цифра "3" означает, что это третий дубль.

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

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

Во всех нотациях а-ля UML одни и те же проблемы - у них нет такой драконовской упорядоченности. И от Дракона для "декларатива" эту упорядоченность однозначно потребуют (даже неявно, подсознательно, типа "не понял..., а чё в этой схеме фиг разберёшься ?...").


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Четверг, 14 Ноябрь, 2013 20:22 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
И насчёт попытки для декларатива. Я сделал такую вот шпаргалку по Amber-нотации (картинка "длинная"):
Вложение:
amber.PNG
amber.PNG [ 515.77 КБ | Просмотров: 12805 ]

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

И из этой нотации можно подметить пару фишек, которые распространены во многих диаграммах, и их применение как раз намекает на то, что продукт старается следовать "международным стандартам":

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

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

- комментарий а-ля UML, прямоугольник с загнутым уголком, типа "бумажка".

И если посмотреть на всякие разные графнотации, то можно подметить, что как-то не различают через иконы разные варианты развилок: "if" и "case". В Драконе конструкция "выбор" несколько громоздка, плюс "вариант" перекликается с "именем ветки". М.б. будет лучше, если такие яркие информационные указатели как "имя ветки" и "адрес" будут только вверху/внизу. А вместо "выбора" и "варианта" использовать тот же "вопрос", т.е. на "вопрос" м.б. ответ как "да/нет" или несколько ответов, и "вопрос" - "ответ" через икону одного типа вроде нормально будут отражать связь.


Подозреваю, что все эти улучшалки предлагались не раз, но не помешает и ещё один...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Четверг, 14 Ноябрь, 2013 21:31 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Владимир Паронджанов писал(а):
Когда я делал доклад на кафедре прикладной математики МЭИ,
мне задали вопрос:
Как изобразить рекурсию на Драконе?


Кстати, на своей "родине" Дракон применяется на оборудовании, на котором даже стек эмулируется программно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Четверг, 14 Ноябрь, 2013 21:34 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
PSV100 писал(а):
В общем, прошу желающих посмотреть и "визуально попрограмлять", вдруг какие-то идеи появятся.


А как бы пример увидеть уже частный, а не справочник элементов?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Пятница, 15 Ноябрь, 2013 17:34 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Илья Ермаков писал(а):
Кстати, на своей "родине" Дракон применяется на оборудовании, на котором даже стек эмулируется программно.

И как раз в контексте такой семантики командного управления Дракон выглядит очень и очень, особенно для не программистов. И если взглянуть на примеры, которые давал Владимир Даниелович, например, здесь: Цепочка больших дракон-схем формата А1 (реальный пример), то вполне приемлемо в них разобраться, особенно с учётом такого "когнитивного" текста внутри икон, когда прикладник может легко читать короткие коды команд.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Пятница, 15 Ноябрь, 2013 17:45 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Илья Ермаков писал(а):
А как бы пример увидеть уже частный, а не справочник элементов?

Да у меня больше нет примеров. Когда-то Владислав Жаринов обратил внимание на этот Amber. Я немного покопался в инете, нашёл несколько публикаций, и из них вытащил, фактически, все основные картинки.
На всякий случай, если имеется интерес, выкладываю чего нашёл (хотя там содержательно полезного ничего особенного нет):
Вложение:
Amber.zip [4.66 МБ]
Скачиваний: 302

Ключевая зацепка, которая замечается в этой нотации насчёт структурных блоков, это ограничение отношений: бинарные и тернарные, что может быть даёт и какое-то ограничение на свободу компоновки блоков, плюс зачатки для укладки. С другой стороны, есть и потребность во множестве связей (передача между акторами/"плавательными дорожками" и т.д.).

Здесь ещё нужно вспомнить о многочисленных решениях Владислава насчёт декларирования. К примеру, его "синт-силуэт":
Вложение:

Его суть:
Вложение:
drakonalgo_html_32bc7ee7.gif
drakonalgo_html_32bc7ee7.gif [ 13.91 КБ | Просмотров: 12765 ]

Применить его можно по-разному. Через "горизонтальный" силуэт можно выделять деклар-схемы, а обычный силуэт продолжает указывать на алгоритмику. Или через вертикальные ветки выделять одни отношения, через горизонтальный силуэт - другой тип связи. И т.п.

В общем, у Владислава объёмный багаж, всего не вспомню. Но вот какой-то алгебры построения структурных блоков (в т.ч. и в силуэте) что-то не припоминаю...

И, всё-таки, хотелось бы, чтобы ERIL не пошёл по граблям UML и прочих ER-диаграмм. Как-то не подраконовски такой путь...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Воскресенье, 17 Ноябрь, 2013 18:16 

Зарегистрирован: Понедельник, 04 Ноябрь, 2013 13:53
Сообщения: 5
Отписался на этом форуме по одной причине: обсуждается написанное мной, вроде бы как-то на это надо отреагировать, поэтому сделал комментарии к ранее написанному. Обсуждение всего, что связано с алгоритмами, блок-схемами и «Драконом» было бы зачастую интересно. Но для меня есть вещи ещё более интересные, поэтому втягиваться в такие обсуждения не очень хотелось бы. Тем более, что свою позиция уточнил.

Илья Ермаков
Цитата:
в финансовой системе может быть блок принятия решения о выдаче/отказе в кредите. С массой ветвлений и проч. ДРАКОН там гораздо лучше смотрится, чем обычный код, в котором ногу сломишь...

Ну так «серебряной пули» нет до сих пор. Поэтому где-то и кому-то «Дракон» может оказаться вполне полезен. Хотя и над кодом надо работать, чтобы ноги не пришлось ломать.
Цитата:
И нужно представление алгоритма в какой-либо форме, облегчающей "аудит кода"..

А каким вы видите представление данных, чтобы облегчить этот аудит? А совокупность и алгоритма, и данных?
Цитата:
Кстати, на своей "родине" Дракон применяется на оборудовании, на котором даже стек эмулируется программно
.
Очень даже может быть. Где встречал, что бурановский Бисер (более поздние – это MIPS) – по сути ЕС ЭВМ. А ЕС – это копия IBM/360/370, в их архитектуре нет аппаратного стека, соответственно нет поддержки на уровне кодов. По легенде, главного архитектора IBM/360 «сослали во внутрифирменный аналог Сибири» за этот просчёт. Но есть сомнения, что это аналог ЕС: http://www.buran.ru/htm/su4bcvk.htm здесь пишут:
Цитата:
Число команд центрального процессора: 74

ЕС – это CISC-архитектура, там больше команд.

Геннадий Тышов
Цитата:
Получается, Вы программист не новатор, закостенелый.

Когда-то был новатором, отказавшись от блок-схем. Но история развивается по спирали, теперь я – ретроград и махровый консерватор.
Цитата:
какие книги по языку Дракон Вы прочитали

Самую важную – «Как улучшить работу ума».
Цитата:
какая среда языка Дракон Вам знакома или освоена

Я смотрел учебное видео по работе с одной из реализаций «Дракона». Скорее всего, Ваша реализация. Сейчас ещё раз его посмотрел. Мне кажется, если бы между надписями на иконках и генерируемым кодом была бы большая связь, это пошло на пользу инструменту.
Цитата:
как Вы общаетесь с заказчиком, заказчик понимает Ваш программный код,
как пользователь работает с Вашей программой,
какую часть в Ваших программах занимает описание прикладной проблемы,

У разных работодателей работалось по-разному. Поэтому нет смысла говорить о средней температуре по больнице. Где-то это вообще без технических заданий. На выходе только писались краткие инструкции по пользованию. Где-то описывалась математические аспекты поставленной задачи; это надо было воплотить в программе. Ну а где-то процессы были формализованы. Но чем меньше было формальностей, тем больше было простора для творчества и больше удовольствия от работы. И качество на выходе было лучше. Особое удовлетворение получалось тогда, когда работа программы для пользователей оказывалась проще и понятнее, чем это виделось заказчику. Ну а заказчиком чаще всего выступал работодатель. Хотя понятно, что в крупных проектах формализация отнюдь не лишняя.

Учитель на уроке литературы: «О герое Вы рассказали. А что расскажите о героине?» Ученик: «А почему Вас так интересует героин?»
Цитата:
сколько Вам лет.

Полагаю, лет на …дцать моложе В. Паронджанова. А какую связь Вы видите между возрастом и ИТ? Евгению Касперскому 48 лет, но его производительность в 2 раза выше, чем в среднем по компании. Алексей Пажитных в свои 57 до сих пор в профессии. С другой стороны, Билл Гейтс начинал в 17. А в Австралии 7-летняя девочка сдала сертификационные экзамены на системного администратора Linux. «Почему Вас так интересует героин?»
Степан Митькин
Цитата:
Программирование без программистов — это здоровье без врачей.

Пожалуйста, зажмурьтесь и представьте, что Вы – не программист. А потом запустите такой код:
Код:
double  x = 0.1;
if (x * 6 == 0.6)
  cout << "Всё правильно! Я ещё в 5 классе учил, что 0.1 * 6 равно 0.6.\n" <<
          "Ура! Моя программа cможет работать на атомных реакторах и оперировать людей!\n" <<
          "Программирование без программистов - это здоровье без врачей! \"Дракон\" рулит!\n" <<
          "Чтобы писать программы, программистом быть не нужно!\n";
else
  cout << "Ой, что-то сломалось (: Может, В.Паронджанов мне починит программу?\n" <<
          "Или лучше позвать программистов?\n\n" <<
          "В теории, теория и практика неразделимы. На практике это не так. (Yoggi Berra)\n" <<
          "Опасайтесь багов в приведенном выше коде; я только доказал корректность, " <<
          "но не запускал его. (Donald E. Knuth)\n";

Дмитрий Дагаев
Цитата:
От такой замечательной критики не стоит "отбиваться", лучше поместить ее как предисловие к очередной книге Паронджанова

Начнём с того, что если мне нужен будет отзыв на что-нибудь, то первым делом надо будет обратиться за ним к Владимиру Даниеловичу ;)
Степан Митькин
Цитата:
К счастью, в настоящее время на секретных заводах куют новую версию DRAKON Editor'а.
Илья Ермаков писал(а):
Степан, куда-то пропала ваша статья.
Степан Митькин
Получил критические замечания. Статью пока убрал.

За секретами, наверное, надо ходить на WikiLeaks? ;) А вообще было интересно взглянуть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Воскресенье, 17 Ноябрь, 2013 20:52 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Уважаемый Communicay!

Приветствую Вас на официальном форуме языка ДРАКОН. Я очень рад, что Вы зарегистрировались, сделали обширное вступительное сообщение и принимаете участие в дискуссии.

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

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

Надеюсь, что Вам здесь понравится. От всей души желаю Вам плодотворной работы на этом замечательном форуме.

Добро пожаловать!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Воскресенье, 17 Ноябрь, 2013 23:25 

Зарегистрирован: Понедельник, 04 Ноябрь, 2013 13:53
Сообщения: 5
Цитата:
Ваше появление на форуме вызвало огромный интерес. Мы знаем Вас как яркого и талантливого человека.

Не льстите. Интерес к моей персоне был бы объясним, если бы я что-то сделал, чем можно было бы гордиться. Но мне пока что нечего предъявить. А критиковать легче всего, это не требует особых трудов. А неимение объекта критики освобождает от критики. Но на будущее приглашаю к критическому взгляду на какие-то вещи моего производства. Если, конечно, у Вас найдётся на это время.
Цитата:
данная тема сразу же выдвинулась на первое место

Это на всех форумах так: если в какой-то ветке есть активность, то она, скорее всего, будет и далее активна.
Цитата:
От всей души желаю Вам плодотворной работы на этом замечательном форуме.

Спасибо за пожелание. Но время – отнюдь не неисчерпаемый ресурс. Чаще занимаюсь другими делами.
Цитата:
на официальном форуме языка ДРАКОН

А что не установите форум на своём сайте? Когда всё своё и под рукой – как-то больше уверенности в завтрашнем дне.
Цитата:
Уважаемый Communicay!

Меня зовут Юрий. Жаль, что нельзя логин сменить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Понедельник, 18 Ноябрь, 2013 11:51 

Зарегистрирован: Понедельник, 04 Ноябрь, 2013 13:53
Сообщения: 5
Фантастический рассказ о временах, когда программисты вытеснены искусственным интеллектом, и как бывшие программисты работают грузчиками и ностальгируют по программированию: Люди с кодопрошлым или закат программистов. «Дракон» как бы на это намекает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Понедельник, 18 Ноябрь, 2013 12:37 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
communicay писал(а):
Фантастический рассказ о временах, когда программисты вытеснены искусственным интеллектом, и как бывшие программисты работают грузчиками и ностальгируют по программированию: Люди с кодопрошлым или закат программистов. «Дракон» как бы на это намекает?


Нет, ДРАКОН на это не намекает. Совсем. Ни сном, ни духом.

Искусственный интеллект — прекрасная вещь.
Но. По моему мнению, сегодня не видно никаких признаков, что ИИ заменит человека в области творческих операций.

В области рутинных операций — да.
А в области творческих операций — нет. Программирование — это творческая работа.

================================

Если говорить о будущем человечества с использованием ДРАКОНа, то его можно представить примерно так: viewtopic.php?p=77785#p77785
Владимир Паронджанов писал(а):

                Ильченко Эдуард писал(а):
                результатом работы чиновника должна быть не только красивая дракон-схема, а нечто ещё. У Вас есть представление, что это должно быть?

Конечный результат такой.

1. Социальная жизнь станет прозрачной для любого (или почти любого) человека.

2. В открытом доступе появится огромное (бесконечно большое) количество ВСЕМ ПОНЯТНЫХ алгоритмов. Любой может увидеть как функционируют государственные (и не только) механизмы. Сейчас все это скрыто от народа.

3. Люди увидят недостатки (в том числе вопиющие) и потребуют их устранения.

4. Все секреты будут доступны журналистам, которые станут ушлыми экспертами по дракон-схемам и по Гостинцу. Журналисты будут по каждой болевой точке (обнаруженной с помощью Гостинца) поднимать оглушительный шум и требовать расследования. Вспомните Наталию Чеславовну Корабельщикову, которая разоблачила воровство с помощью Дракона.
viewtopic.php?f=62&t=4078

5. Прокуратура и следственный комитет будут тщательно анализировать дракон-схемы, использовать Гостинец и отдавать жуликов под суд. Ваш Гостинец отправит в тюрьму не одну тысячу казнокрадов и их пособников.

6. Государственная Дума примет пакет законов, обязывающий прокуратуру и следствие использовать дракон-схемы в качестве доказательной базы. Совет Федерации поддержит это предложение. А Президент РФ утвердит.

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

8. Гостинец — это волшебные очки общества, обнажающие все социальные язвы, болячки и царапины.

9. Пройдет десять-двадцать лет, и молодежь не сможет себе представить, как это раньше люди жили без Гостинца. Точно так же, как они не понимают, как раньше люди жили без мобильной связи.

Гостинец — это продвинутая программа по работе с Драконом, созданная Эдуардом Владимировичем Ильченко, которая будет опубликована через два-три месяца, или чуть позже.

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

10. В первую очередь, массовое внедрение ДРАКОНа будет происходить, по-видимому, в области медицины и биологии. Подробнее см. здесь:
Применение ДРАКОНа в медицинских учебниках

11. Алгоритмы и процессы (в том числе, бизнес-процессы) используемые во всех областях жизни общества.

Сегодня, эти алгоритмы и процессы, как правило, недоступны для народа. Почему?

По двум причинам:

1. Существующие нотации для записи алгоритмов неудобны и сложны. Алгоритмы, записанные с помощью этих (устаревших) нотаций непонятны и недоступны для народа.

2. Многие уважаемые программисты держат созданные ими алгоритмы "в голове". И считают, что так и должно быть.

Первую попытку сломать это ненормальное положение предпринял академик Андрей Петрович Ершов, выдвинув лозунг "Программирование — вторая грамотность!"
Однако этот лозунг по понятным причинам не удалось воплотить в жизнь.

ДРАКОН предлагает этот лозунг в более мягкой формулировке. "Алгоритмизация — вторая грамотность!". Таким образом, акцент делается не на программировании, а на алгоритмизации.

Почему? Потому что программирование — это очень сложно. Программирование доступно только для элиты. Программирование не может быть доступным для народа.

Иное дело алгоритмизация. Алгоритмизация может и должна быть доступна для народа.


Последний раз редактировалось Владимир Паронджанов Понедельник, 18 Ноябрь, 2013 13:36, всего редактировалось 5 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Понедельник, 18 Ноябрь, 2013 12:59 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
communicay писал(а):
Очень даже может быть. Где встречал, что бурановский Бисер (более поздние – это MIPS) – по сути ЕС ЭВМ. А ЕС – это копия IBM/360/370, в их архитектуре нет аппаратного стека, соответственно нет поддержки на уровне кодов.
Но есть сомнения, что это аналог ЕС: http://www.buran.ru/htm/su4bcvk.htm здесь пишут:
Цитата:
Число команд центрального процессора: 74

ЕС – это CISC-архитектура, там больше команд.

- Не, не может быть - а факт. Там нет стека. И ГРАФИТ-ФЛОКС ориентирован на программирование без стека, в стиле первого ФОРТРАНа (взаимодействие через статические области памяти).
- урезанный в одной части и немного дополненный в другой ЕС (не по внутреннему устройству, а по системе команд).

Если кому-то покажется, что это "у нас так отстали", то вот реалии программирования в Toyota:
http://ko.com.ua/kachestvo_vstraivaemog ... lsya_98518
- 11 тыс. глобальных переменных в блоке управления дроссельной заслонкой, цикломатическая метрика показала непригодность для тестирования...

НПЦАП же имеет таки, благодаря своему ГФ, над оборудованием мощностью с микроконтроллер, техпроцесс, позволяющий разрабатывать большую СУ и полностью понимать и проверять её. (Говорю это, как видевший не раз ГФ внутри НПЦ АП).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Вторник, 19 Ноябрь, 2013 12:30 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Илья Ермаков писал(а):
communicay писал(а):
И ГРАФИТ-ФЛОКС ориентирован на программирование без стека, в стиле первого ФОРТРАНа (взаимодействие через статические области памяти).

Илья, а как в ГРАФИТ-ФЛОКС реализованы коллекции (списки, массивы или там таблицы)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Вторник, 19 Ноябрь, 2013 16:10 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Илья Ермаков писал(а):
Если кому-то покажется, что это "у нас так отстали", то вот реалии программирования в Toyota:
http://ko.com.ua/kachestvo_vstraivaemog ... lsya_98518

Статья имеет продолжение: Сложное (и только ли для программистов?)... (попытка предположить, почему так плохо...)

И интересный момент. Цитата отсюда: Автоматическая посадка стотонного утюга...
Цитата:
Для управления процессом посадки, помимо наземных средств контроля и управления, использовалась собственная БЦВМ (Бортовая цифровая вычислительная машина) «Бурана» «Бисер-4». Военный заказ определил архитектуру БЦВМ — она была реализована в виде четырех параллельных независимых вычислительных каналов и компаратора, который непрерывно сравнивал результаты на выходе каналов. В случае отклонения результатов какого-либо из каналов от трех остальных, он отключался и БЦВМ продолжала работать в штатном режиме. Таким же образом мог быть отключен еще один поврежденный вычислительный канал, чем достигалось автоматическое резервирование и отказоустойчивость БЦВМ. Вычислительные каналы (или ядра, в современной терминологии) работали на частоте 4 МГц и имели 128 КБайт оперативной памяти и 16 КБайт постоянной программной памяти. Подобная архитектура позволяла БЦВМ управлять процессом посадки «Бурана» даже в условиях ядерной войны (это входило в ТЗ по требованию военных).

О том же говорит и эта статья, из которой можно ещё дополнить:
Цитата:
Как известно, программная синхронизация четырех БЦВМ в реальном масштабе времени при любом сочетании допустимых отказов является чрезвычайно сложной и недостаточно надежной. В связи с этим в ЦВС и ПВС используется не программная, а аппаратная синхронизация, для чего в составе БЦВК имеется единый кварцевый генератор, подающий во все восемь БЦВМ единую сетку тактовых импульсов частотой 4 МГц и с периодом прерывания 32,8 мс. Поскольку задающий генератор также должен удовлетворять требованию "надежная работа при двух отказах", он имеет пять каналов резервирования, на выходе каждого из которых установлена схема голосования "три из пяти".

И в сравнение тоётовские реалии (отсюда):
Цитата:
По ходу дела было выявлено, что в такой сложной системе полностью отсутствует учёт сбоев и ошибок. При всём этом великолепии все связанные с безопасностью функции контроллера в его «прошивке» оказались реализованными одним единственным процессом. Тема отдельного разговора – watchdog. В «настольном» программировании это нечастое явление, в мире встраиваемых систем – необходимая функция. Watchdog или сторожевой таймер – обычно внешнее по отношению к вычислителю устройство (хоть бы и реализованное на одном с вычислителем кристалле). Принцип его работы предельно прост – если какой-то процесс вовремя не сбросил ранее выставленный на какое-то время страбатывания сторожевой таймер, последний вызовет аппаратное прерывание, оповещающее вычислитель, что с процессом что-то явно не так, или вообще инициирующее быстрый системный сброс. Использование watchdog в «прошивке» вызвало большие сомнения у экспертов – подконтрольным сторожевому таймеру в этой системе оказался по сути только процесс, обслуживающий редкие прерывания системного таймера, что означает – любой сбой в обработчике прочих прерываний мог приводить к исполнению неизвестно чего примерно… полторы секунды до сброса вычислителя от сторожевого таймера. И эксперты не взялись утверждать, что эти полторы секунды до сброса гарантированы, они не исключили возможности, что сброс вообще не наступит. Напоследок не менее прекрасное – коды возврата большинства вызовов RTOS, которые предназначены для сообщений об ошибках, в «прошивке» вообще игнорируются.

Дальше начинается архитектурное. Не менее красивое. Основной вычислитель (неповинно обвинённый в грехах NEC-Renesas V850) мониторится дополнительным микроконтроллером с «прошивкой» от стороннего производителя, которая выходит за границы ответственности Toyota. Да, это хорошо, когда есть независимый мониторинг. Но каким образом единственный аналогово-цифровой преобразователь, который как раз и предназначен для считывания аналогового сигнала положения педали газа оказался мало что не зарезервированным (продублированным), но ещё и интегрированным именно в этот второй микроконтроллер – это даже трудно сказать кто такое придумал. Точности-то от такого преобразователя нужно всего ничего (ну какая может быть прецизионность в нажатии на педаль газа), АЦП такого класса совершенно копеечные и прекрасно отработаны, и вот такая экономия, формирующая потенциально сверхопасную «точку критического сбоя» (single point of failure). Изящное решение оказалось адекватно поддержанным на уровне кода – отказоустойчивый код сопроцессора-монитора оказался зависимым от неназванной из принципов соблюдения промышленных секретов функции, выполняемой основным микроконтроллером, причём на эту одну функцию взвалили кучу всего – от преобразования угла педали в угол дроссельной заслонки до управления в режиме круиз-контроль и даже до диагностики.

Автора статьи где-то (не помню где именно) корректировали, например, что в документах-оригиналах нет однозначного утверждения "в системе полностью отсутствует учёт сбоев и ошибок", речь идёт о неприменении при разработке традиционных средств "багтрекера". Да и в комментариях в блоге указывали:
Цитата:
Афтар передёргивает.

Вывод NASA - ПО скорее всего не является причиной аварий. А не "...идентифицировала два гипотетических сбоя...".

За 500$ в час в течении года, Barr и сотоварищи как ни пытались (с имитацией случайного изменения памяти), не смогли повторить проблему, привёдшую к гибели пенсионерки.

Оно и понятно, в убогом коде тойоты было несколько механизмов
защиты от сбоев.

И там же давали ссылку, что Toyota "исправляется": TOYOTA ITC Japan Selects SPARK Pro... (что лишний раз подчёркивает, что на подобном производстве широкий зоопарк программных систем, да и к тому же, не смотря на то, что автор во второй статье говорит "сразу отбросим совершенно дурацкие домыслы (вроде «нанятые за гроши непрофессионалы писали») и всевозможные ссылки на кризис и спешку", очевидно, что и неслабый аутсорсинг практикуется).
И, конечно, от Toyota не требуется ездить "даже в условиях ядерной войны", но, увы, на лицо плоды современной экономики:
Вложение:
macht.jpg
macht.jpg [ 55.71 КБ | Просмотров: 12563 ]

(примерно: "всегда найдётся тот, кто сделает дешевле...")


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Среда, 20 Ноябрь, 2013 14:00 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Степан Митькин писал(а):
Илья Ермаков писал(а):
communicay писал(а):
И ГРАФИТ-ФЛОКС ориентирован на программирование без стека, в стиле первого ФОРТРАНа (взаимодействие через статические области памяти).

Илья, а как в ГРАФИТ-ФЛОКС реализованы коллекции (списки, массивы или там таблицы)?


Никак )
В СУ РВ у них нет таких задач.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Суббота, 14 Декабрь, 2013 21:14 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Ответ на критическое замечание Юрия, автора сайта Compiler.ru.
Приведу цитату из статьи Юрия:
http://compiler.su/programmirovanie-bez ... rachej.php

Цитата:
Программирование без программистов — это медицина без врачей

Однажды в книжном магазине ...
вы встречаете книгу «Как улучшить работу ума». «Наверно, это книга для идиотов», — подумаете вы и несёте её на место: из секции «Компьютеры» в секцию «Медицина».
Но на полпути разбирает любопытство: а как же идиотам вправляют мозги? Интересна не столько методика умственного оздоровления, сколько способ убеждения идиотов в том, что они идиоты. И что им надо лечиться.
Открываете книгу, а там... Про алгоритмы и блок-схемы! Существует, конечно, серия книг «для чайников». Но «Блок-схемы для идиотов»?! Это сильно!

И вы покупаете эту книгу и летите с ней к своему начальнику: «Шеф! Смотрите, какую книгу я Вам принёс. Я прочитал название и понял, что это как раз для Вас. Владимир Паронджанов насквозь Вас рассмотрел!».
Представьте, как шеф обрадуется предложению подправить свои мозги? Ну а если он откажется умнеть, подарите книгу жене. «Дорогая! Прочти. Ты даже не понимаешь, как эта книга нужна тебе. Именно тебе!»

Но все почему-то предлагают поумнеть именно вам. Смирившись с участью стать одиноким гением, вы осиливаете эту книжку... В ней рассмотрены важные для программиста вопросы: «Что такое интеллектуальный терроризм» и «Кто такие камикадзе умственного труда». Там даже про «математический терроризм» написано! Ставятся мессианские цели и задачи: каждая кухарка должна уметь программировать («Запомните: программирование должны знать все!» © В.Паронджанов). Нам наконец-то раскрываются глаза: «Кстати, программирование — это тоже деятельность». Такой вывод может сделать только индивидуум, улучшивший работу ума!


ЧТО ОЗНАЧАЕТ ТЕРМИН "ПРОГРАММИРОВАНИЕ БЕЗ ПРОГРАММИСТОВ"?
КТО АВТОР ЭТОГО ТЕРМИНА?


В основе ДРАКОНа лежит принцип «Программирование без программистов».
Что означают слова «Программирование без программистов»?

Это художественный образ, красивая метафора или строгое понятие? Если понятие, кто ввел его в научный оборот?

Автор термина «Программирование без программистов» — выдающийся американский ученый Джеймс Мартин, автор свыше ста книг, лауреат Пулитцеровской премии.

Вложение:
Комментарий к файлу: Джеймс Мартин
(1933-2013)

Dr_James_Martin.jpg
Dr_James_Martin.jpg [ 2.12 МБ | Просмотров: 12409 ]


Он входит в список 25 человек, оказавших наибольшее влияние на развитие компьютерной техники и программирования. Особое внимание Джеймс Мартин уделял развитию визуального программирования. Напомню, что ДРАКОН — язык визуального программирования.

В 1982 году Джеймс Мартин опубликовал книгу под названием «Разработка прикладных программ без программистов» (Applications development without programmers).

Книга Мартина дала начало новому направлению исследований, которое обычно для краткости называют «Программирование без программистов» (хотя фактически речь идет только о программировании без ПРИКЛАДНЫХ программистов»).

Подробнее о Джеймсе Мартине см. английский раздел Википедии

В работе Мартина говорится о непроцедурных языках. Мы заимствовали у Мартина идею «Программирование без программистов».

Вместе с тем, мы решительно отказались от сделанного им выбора в пользу непроцедурных языков. И сделали диаметрально противоположный выбор. ДРАКОН — процедурный, императивный язык программирования.

Язык ДРАКОН используется в Научно-производственном центре автоматики и приборостроения имени академика Н. А. Пилюгина вот уже 17 лет (1996-2013 годы).

Что же сделано за эти годы? Давайте посмотрим.

За 17 лет ДРАКОН помог создать системы управления четырнадцати космических проектов:

              * разгонный блок космических аппаратов ДМ-SL (проект «Морской старт»);

              * модернизированная ракета-носитель тяжелого класса ПРОТОН-М;

              * семейство разгонных блоков ФРЕГАТ, которое включает

              * просто ФРЕГАТ,

              * ФРЕГАТ-СБ (со сбрасываемыми баками),

              * ФРЕГАТ-УТТХ (с улучшенными тактико-техническими характеристиками),

              * ФРЕГАТ-МT, предназначенный для запусков с космодрома во Французской Гвиане,

              * ФРЕГАТ-СУМ (с модернизированной системой управления).

              * разгонный блок космических аппаратов ДМ-SLБ (Проект Наземный старт),

              * разгонный блок космических аппаратов ДМ-03,

              * первая cтупень южнокорейской ракеты-носителя KSLV,

              * три проекта семейства Ангара:

              * ракета-носитель легкого класса АНГАРА-1.2 первого пуска,

              * ракета-носитель легкого класса АНГАРА-1.2 с агрегатным модулем,

              * ракета-носитель тяжелого класса АНГАРА-А5,

              * разгонный блок космических аппаратов КВТК (кислородно-водородный тяжелого класса).


Какие преимущества язык ДРАКОН дал инженерам-комплексникам (не программистам)?

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

              Флокс-редактор служит для описания данных в форме флокс-таблиц, которые помещаются в базу данных ФЛОКС.
              Графит-редактор служит для описания алгоритмов.

Второе. Благодаря систематическому использованию флокс-редактора и графит-редактора инженеры-комплексники:

— освоили метод формализации при разработке алгоритмов и программ;

— приобрели навыки автоформализации своих профессиональных знаний;

— научились использовать формальный метод при практической разработке алгоритмов и программ для всех видов испытаний:

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

Третье. В чем состоит наше главное достижение? Главное достижение в том, что сотрудники комплексных отделов передают работу программистам в математически строгой форме – в виде программ, пригодных для трансляции в объектные коды.

Подведем итоги. Что же дал нам Дракон? Дракон предоставил инженерам новые интеллектуальные инструменты, усиливающие их творческие возможности. И позволяющие решать задачи, которые ранее считались непосильными для инженеров.

Дракон — это усилитель естественного человеческого интеллекта. Или, что одно и то же, средство для улучшения работы ума.

ВЫВОД

Автором термина (и научного направление) "Программирование без программистов" является американский ученый Джеймс Мартин.

============================

За свою жизнь этот выдающийся человек написал 106 (сто шесть) книг. Вот список этих книг
http://www.jamesmartin.com/about/books_written.cfm

Мартин умер совсем недавно, летом 2013 года.
Вот адрес его персонального сайта
http://www.jamesmartin.com/

Уважаемые коллеги!

Рекомендую вам посмотреть 11-минутный фильм, снятый Джеймсом Мартином.

И еще: здесь десять видеоклипов, все на английском
http://www.jamesmartin.com/video/

=================================

Термин "Программирование без программистов" давно используется и в отечественной литературе. Например, в 1985 году в издательстве "Наука" вышла книга Григория Рафаиловича Громова (под редакцией доктора технических наук Д.А. Поспелова), которая называется так:
Цитата:
Национальные информационные ресурсы. Проблемы промышленной эксплуатации.


В этой книге на стр. 210, 211 сказано:
Цитата:
К весне 1981 года, когда было опубликовано "открытие Черер-Мартина", за пределами мира больших ЭВМ уже свыше пяти лет широко использовались преимущества провозглашенного Мартином революционного подхода: "Разработка прикладных программ без программистов"...

И чуть ниже:
Цитата:
То, что Дж. Мартин определяет как "программирование без программистов" [25].


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Воскресенье, 15 Декабрь, 2013 18:32 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 51
Владимир Паронджанов писал(а):
В основе ДРАКОНа лежит принцип «Программирование без программистов».
А что Вы понимаете под программированием? Что по Вашему включает в себя этот вид деятельности?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Воскресенье, 15 Декабрь, 2013 19:07 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 51
Владимир Паронджанов писал(а):
Третье. В чем состоит наше главное достижение? Главное достижение в том, что сотрудники комплексных отделов передают работу программистам в математически строгой форме – в виде программ, пригодных для трансляции в объектные коды.
Стоп! Вдумаемся в то, что Вы пишете. Некто не программисты, а именно сотрудники комплексных отделов (они сами или их сотрудники-непрограммисты, не важно), занимаются программированием без участия программистов, и получают на выходе некоторые программы (в каком-то виде, не готовом к использованию по назначению). Затем, они передают результаты своей программисткой деятельности настоящим программистам (во всяком случае, Вы их называете именно программистами), которые на самом деле программированием как бы не занимаются, а просто транслируют готовые программы в объектные коды.
Думаю, что на самом деле во всей этой деятельности есть своя логика, роли грамотно распределены и очень хорошо налажено взаимодействие различных специалистов. Тем не менее, очевидно, что с терминологией здесь полный бардак: непрограммисты у Вас программируют, а программисты - не программируют. Из этого бардака с терминологией и проистекает этот парадоксальный по своему звучанию лозунг "Программирование без программистов".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Воскресенье, 15 Декабрь, 2013 20:54 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
igor писал(а):
Затем, они передают результаты своей программисткой деятельности настоящим программистам (во всяком случае, Вы их называете именно программистами), которые на самом деле программированием как бы не занимаются, а просто транслируют готовые программы в объектные коды.


Транслируют - в смысле, не руками. А получают объектный код, готовят образ памяти ("модель памяти", как называется у них) для загрузки в БЦВМ, собирают алгоритмы от комплексного отдела (где ДРАКОН) и от отдела, который занимается вычислительными компонентами (там не ДРАКОН, насколько я помню) и настраивают их совместное выполнение в рабочем цикле ОС РВ и т.п.
И программируют системную часть - допиливают ОС РВ, диспетчирование там, и прочее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: «Дракон» = программа — данные
СообщениеДобавлено: Среда, 18 Декабрь, 2013 17:18 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Настраивают исполнение уже "завершённых черновым производством" целевых процедур?.. оттранслированных на основании совокупных моделей "схема целевого алгоритма (на ГРАФИТ-языке, т.е. Пилюгинском ДРАКОН-2) + модель памяти (на ФЛОКС-языке, т.е. сопряжённом табличном для структур данных)"?.. так?
И, если совместно исполняется в рабочем цикле ОС не оптимально/некорректно, то что? программисты корректируют модели от комплексников? или возвращают на доработку? а как комплексники знают, что дорабатывать?.. Кстати, настройка должна исходить не только из "алгоритмы+данные", но и из модели исполнителя (ну или хотя бы "систематического представления о нём" (С) Вирт у программиста)...

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


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

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


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

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


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

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