Информация об изменениях

Сообщение Re[24]: Язык ДРАКОН — новая идея в программировании от 07.09.2021 11:30

Изменено 04.07.2022 11:17 VladD2

Re[24]: Язык ДРАКОН — новая идея в программировании
Здравствуйте, Владимир Паронджанов, Вы писали:
ВП>Список показывает, что ДРАКОН уже успешно работает, уже используется для практического программирования.

Ну, само по себе это никакой не показатель.

ВП>Предметная область ПЛК (программируемые логические контроллеры).


Вопрос не в том, можно ли программировать ПЛК с помощью Дракона. А в том — какую пользу это даёт?
Вот я прочитал вашу статью на Хабре.
Задал по ней конкретные вопросы. Ответа не получил. Утверждения про то, что Дракон помогает предотвращать ошибки, остались голословными.
Ну, ок — ваша умозрительая задача про запуск космического корабля, рассмотренная в статье, остаётся умозрительной. Но раз кто-то программирует ПЛК, то, наверное, сталкивается с реальным оборудованием и реальными ограничениями.
Вот тут-то и можно поговорить о том, как Дракон помогает (если помогает) обеспечить выполнение инвариантов, которые нужны для железа.

Классический пример, который у нас только что рассматривали на лекции по верификации софта:
Допустим, у нас есть глобальный параметр x — знаковое целое.
И есть три процедуры, которые с ним работают. Процедуры работают параллельно, реагируя на входные сигналы, поступающие независимо:
public void Increment()
{
  if(x < 200) x = x + 1;
}

public void Decrement()
{
  if(x > 0) x = x - 1;
}

public void Reset()
{
  x = 0;
}

От железячников поступила информация: безопасные значения x находятся в диапазоне [0; 200]. Если мы попробуем скормить в исполнительную систему другие значения x — установке кирдык.

1. Есть ли ошибки в этих процедурах? Т.е. сгорит ли наша установка при такой реализации контроллера, или нет?
2. Можем ли мы применить магию языка Дракон для того, чтобы обнаружить ошибки (если они есть)?
3. Поможет ли язык Дракон исправить ошибки, если они будут найдены?

Честно ответив на эти вопросы, вы определите место Дракону в мире промышленной разработки.



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

Наверное, на этом языке можно учить детишек основам информатики. Для записи алгоритмов типа евклидова целочисленного деления — самое то. Конечно же, детям будет удобнее рисовать блок-схемы в специальном редакторе, который заточен только под дракон-диаграммы.
Re[24]: Язык ДРАКОН — новая идея в программировании
Здравствуйте, Владимир Паронджанов, Вы писали:
ВП>Список показывает, что ДРАКОН уже успешно работает, уже используется для практического программирования.

Ну, само по себе это никакой не показатель.

ВП>Предметная область ПЛК (программируемые логические контроллеры).


Вопрос не в том, можно ли программировать ПЛК с помощью Дракона. А в том — какую пользу это даёт?
Вот я прочитал вашу статью на Хабре.
Задал по ней конкретные вопросы. Ответа не получил. Утверждения про то, что Дракон помогает предотвращать ошибки, остались голословными.
Ну, ок — ваша умозрительая задача про запуск космического корабля, рассмотренная в статье, остаётся умозрительной. Но раз кто-то программирует ПЛК, то, наверное, сталкивается с реальным оборудованием и реальными ограничениями.
Вот тут-то и можно поговорить о том, как Дракон помогает (если помогает) обеспечить выполнение инвариантов, которые нужны для железа.

Классический пример, который у нас только что рассматривали на лекции по верификации софта:
Допустим, у нас есть глобальный параметр x — знаковое целое.
И есть три процедуры, которые с ним работают. Процедуры работают параллельно, реагируя на входные сигналы, поступающие независимо:
public void Increment()
{
  if(x < 200) x = x + 1;
}

public void Decrement()
{
  if(x > 0) x = x - 1;
}

public void Reset()
{
  x = 0;
}

От железячников поступила информация: безопасные значения x находятся в диапазоне [0; 200]. Если мы попробуем скормить в исполнительную систему другие значения x — установке кирдык.

1. Есть ли ошибки в этих процедурах? Т.е. сгорит ли наша установка при такой реализации контроллера, или нет?
2. Можем ли мы применить магию языка Дракон для того, чтобы обнаружить ошибки (если они есть)?
3. Поможет ли язык Дракон исправить ошибки, если они будут найдены?

Честно ответив на эти вопросы, вы определите место Дракону в мире промышленной разработки.


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


Наверное, на этом языке можно учить детишек основам информатики. Для записи алгоритмов типа евклидова целочисленного деления — самое то. Конечно же, детям будет удобнее рисовать блок-схемы в специальном редакторе, который заточен только под дракон-диаграммы.