DRAKON.SU
https://forum.drakon.su/

Черновик. Текстовый формат языка ДРАКОН. Часть 1
https://forum.drakon.su/viewtopic.php?f=62&t=7259
Страница 1 из 4

Автор:  Владимир Паронджанов [ Понедельник, 01 Май, 2023 11:38 ]
Заголовок сообщения:  Черновик. Текстовый формат языка ДРАКОН. Часть 1

Черновик. Текстовый формат языка ДРАКОН. Часть 1

Критические замечания участника tonyk о реализации языка ДРАКОН для ПЛК

tonyk писал(а):
За питьём кофе полистал сайт. Ребята, вы в тупике. И будете в нём до тех пор, пока не появится текстовый формат языка Дракона.

Пока сделайте главное, дайте описание текстового формата Дракона в БНФ.

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

Даёшь Дракон в БНФ!

tonyk писал(а):
Свои мысли я тут высказываю с позиций разработчика ПЛК, по мнению которого проект "Дракон" уходит далеко от того, что нужно инженерам-практикам.

я сильно сомневаюсь, что с нынешним подходом к разработке Дракон будет доведён до состояния, когда он будет массово использоваться, например, в ПЛК.

Глядя на происходящее, думаю, что если ничего не менять в вашей работе, то Дракон так и останется игрушкой для разума энтузиастов.

Повторюсь, я смотрю на Дракон с позиций разработчика ПЛК. Мне нравится концепция Дракона, будь у Дракона то, о чём я написал (текстовый формат, протокол обмена с рантаймом и т.п.), с удовольствием занялся бы переносом его на ПЛК.

tonyk писал(а):
на Дракон вообще не предусмотрена работа с периферией контроллеров.

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

Не заметил возможности написания фрагментов программы на языках низкого уровня, например, С/С++ или ассемблер. Да много чего нет, без чего эффективное использование Дракона вряд ли возможно.

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

Полностью критику tonyk можно прочесть здесь
Считаю, что tonyk прав.

В данной теме я начал описывать текстовый формат языка ДРАКОН, но не в БНФ, а для скорости в упрощенной форме.
Схема исправлена по замечаниям участника Comdiv.
Вложение:
01 if 6 штук     .png
01 if 6 штук .png [ 239.43 КБ | Просмотров: 1374 ]

Схема исправлена по замечаниям участника Comdiv.
Вложение:
02 if else if else     .png
02 if else if else .png [ 311.03 КБ | Просмотров: 1373 ]

Уважаемые коллеги!
Прошу критиковать и указать на ошибки.

Автор:  Владимир Паронджанов [ Вторник, 09 Май, 2023 16:40 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Предыдущее сообщение полностью изменено.
Вложение:
03 Вложенный if else Схема И     .png
03 Вложенный if else Схема И .png [ 259.07 КБ | Просмотров: 1722 ]

Вложение:
04 Циклы и switch    .png
04 Циклы и switch .png [ 254.92 КБ | Просмотров: 1722 ]

Уважаемые коллеги!
Прошу критиковать и указать на ошибки.

Автор:  LKom [ Пятница, 12 Май, 2023 08:44 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

В ДРусскийАКОН почему то используются не русские слова?
Происходит какое то онаучивание Дракона.

Пустое занятие В.Д. Паронджанова.

Автор:  LKom [ Пятница, 12 Май, 2023 18:59 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

В 02 и 03 страницах различные операторы с 11-м номером.

В чём смысл?

Автор:  Владимир Паронджанов [ Пятница, 12 Май, 2023 19:19 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

LKom писал(а):
В 02 и 03 страницах различные операторы с 11-м номером. В чём смысл?

Это ошибка нумерации. Номера операторов не должны повторяться: 11, 12 и т.д. Спасибо за указание на ошибку

Автор:  LKom [ Пятница, 12 Май, 2023 19:57 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

В чем смысл жирных, широких линий?
Ведь не очевидно, что они находятся между икон Ветка и Адрес или Заголовок и Конец.

Жирные, широкие линий обсуждались в теме "Эргономика ДРАКОН-схем / Жирная (широкая) ..." https://forum.drakon.su/viewtopic.php?f=175&t=7011

Жирные, широкие линий - вообще не нужны, более того, нарушается эргономика. Создается отвлекающий визуальный шум, которого не должно быть в схеме.

Автор:  LKom [ Вторник, 23 Май, 2023 12:55 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Владимир Паронджанов писал(а):
Уважаемые коллеги!
Прошу критиковать и указать на ошибки.

Если долго сидеть на берегу, то можно дождаться...
LKom писал(а):
В чем смысл жирных, широких линий?
Ведь не очевидно, что они находятся между икон Ветка и Адрес или Заголовок и Конец.

Жирные, широкие линий обсуждались в теме "Эргономика ДРАКОН-схем / Жирная (широкая) ..." viewtopic.php?f=175&t=7011

Жирные, широкие линий - вообще не нужны, более того, нарушается эргономика. Создается отвлекающий визуальный шум, которого не должно быть в схеме.

Автор:  LKom [ Среда, 24 Май, 2023 19:27 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Владимир Паронджанов писал(а):
Уважаемые коллеги!
Прошу критиковать и указать на ошибки.

Критика есть, а "в ответ тишина", глухо!
Продолжать критику надо?

Автор:  Comdiv [ Суббота, 27 Май, 2023 03:46 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Для упрощения разбора фигурные скобки должны быть обязательными.
Раз уж взято направление на синтаксис С, то там, где в этом нет нужды, не следует от него отклоняться (например, elseif вместо else if).
Думаю, у авторов редакторов могут быть определённые сложности с сериализацией схем в такой текст.
А вообще, стоит явно проговорить цели, которым должна соответствовать текстовая форма.


текст1 = текст3, текст2 = текст4, а не должны бы, поскольку так нельзя разобрать, какой схеме соответствует текст
текст3 по аналогии должен быть таким
Код:
if (!(условие)) {
     ;
} else {
     операторы
}


В тексте 11.1 лишние отрицания.

В 11.2-14 потеряно соответствие между схемой и текстом. Например 11.2 это ближе к
Код:
if (  (условие1)
   && (условие2)
   ) {
    операторы1
} else {
    операторы2
}
А если более обобщённо с учётом дополнительных конструкций, которые возможны в схеме, то
Код:
if (условие1) {
     ;
} and if (условие2) {
    операторы1
} else {
    операторы2
}


Также, в примерах не хватает других неструктурных элементов схем как во вложенной картинке.

Вложения:
Неструктурность.png
Неструктурность.png [ 21.93 КБ | Просмотров: 1542 ]

Автор:  Владимир Паронджанов [ Суббота, 27 Май, 2023 11:30 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Comdiv, спасибо, что откликнулись.
Благодарю за ценные замечания.
Буду отвечать по отдельным пунктам.
Comdiv писал(а):
Для упрощения разбора фигурные скобки должны быть обязательными.

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

Автор:  Григорий Пуляев [ Суббота, 27 Май, 2023 14:06 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Я вообще не понял для чего нужен этот формат. Есть drt, он текстовый. Чем он не устраивает?

Автор:  Comdiv [ Суббота, 27 Май, 2023 16:44 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Владимир Паронджанов писал(а):
Правильно я понимаю, что нужно удалить ... вставить: ...
Можно ничего не вставлять, если только не хотите дать дополнительные пояснения. А так - удаление самодостаточно.

Автор:  Comdiv [ Суббота, 27 Май, 2023 16:46 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Григорий Пуляев писал(а):
Есть drt, он текстовый. Чем он не устраивает?
Для удобства рассмотрения этого вопроса, пожалуйста, опишите формат подробно или дайте ссылку на его описание.

Автор:  Григорий Пуляев [ Суббота, 27 Май, 2023 17:30 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

> опишите формат подробно или дайте ссылку на его описание.

https://drakon.su/_media/opisanie_formata_drt_a.pdf

Автор:  Comdiv [ Суббота, 27 Май, 2023 19:54 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Это же просто случайный набор для наивного разбора конкретным редактором. Чего только стоит фамилия и инициалы автора редактора вместе с завершающей латинской A как часть формата.
Владимир Даниелович пока не озвучил список целей, которым он бы хотел, чтобы формат соответствовал, но даже и без этого сложно представить формат drt хотя бы как основу для общего формата.

Автор:  Григорий Пуляев [ Суббота, 27 Май, 2023 20:21 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

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

Единственно что я понял это то что формат должен быть текстовым. По этому я взял за основу формат drt что бы оттолкнувшись от него можно было более чётко сформулировать требования.

Автор:  Владимир Паронджанов [ Суббота, 27 Май, 2023 20:51 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Comdiv писал(а):
стоит явно проговорить цели, которым должна соответствовать текстовая форма.

Попробую указать цели.

1. Стратегическая цель

Язык ДРАКОН занимает ничтожно малую долю рынка. Отсюда цель — увеличить долю рынка.
Предполагаемая область широкого применения языка ДРАКОН: программирование микроконтроллеров и ПЛК.
Сегодня в этой области ДРАКОН используется в единичных случаях (С. Ефанов и А. Муравицкий).
Специалист по ПЛК tonyk подверг резкой критике такое положение и указал, как преодолеть этот недостаток.

2 Частная цель

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

Уважаемые коллеги!
Определение целей — трудная задача.
Прошу критиковать и дополнить список целей.

Для Григория Пуляева: см. viewtopic.php?f=211&t=7146

Автор:  Григорий Пуляев [ Суббота, 27 Май, 2023 23:11 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

> Определение целей — трудная задача.

Это не только трудная, а ещё и первостепенная задача. Без этого мы не будем понимать куда нужно двигаться.

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

Сейчас есть 2 живых дракон-редактора:
1) ИС ДРАКОН.
2) Проекты которые делает Степан Митькин.
ИС ДРАКОН использует формат drt, если Степан добавит в свои проекты импорт/экспорт из этого формата, то задача будет решена.

> Сегодня код одного дракон-редактора нельзя вставить в другой дракон-редактор, они несовместимы.

А насколько эта проблема актуальна? Я не думаю что один и тот же проект кто то будет делать в разных редакторах.

Автор:  Владимир Паронджанов [ Воскресенье, 28 Май, 2023 09:33 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Григорий Пуляев писал(а):
то задача будет решена.

Нет, задача не будет решена. Потому что tonyk (специалист по ПЛК) не будет пользоваться ни тем, ни другим редактором.

Вывод
Язык ДРАКОН будет по-прежнему занимать ничтожно малую долю рынка. Задача значимого увеличения доли рынка не будет решена.

Подробнее см. viewtopic.php?f=211&t=7146

Автор:  Владимир Паронджанов [ Воскресенье, 28 Май, 2023 11:14 ]
Заголовок сообщения:  Re: Черновик. Текстовый формат языка ДРАКОН. Часть 1

Comdiv писал(а):
Раз уж взято направление на синтаксис С, то там, где в этом нет нужды, не следует от него отклоняться (например, elseif вместо else if).

Cпасибо за указание на ошибку.
В пунктах 7, 8, 9, 10 ошибочный термин elseif будет удален и заменен на правильный термин
else if.

Направление на синтаксис Си выбрано потому, что разработчики программ для микроконтроллеров и ПЛК пользуются преимущественно языком Си.

Страница 1 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/