Ответ Алексея СтепановаПриветствую!
Благодарю за обратную связь!
Прокомментирую некоторые моменты.
Alex_st_Tomsk писал(а):
ДРАКОН для ПЛК двух типов "Багет"
Не совсем так. Просто есть конкретная задача: здесь и сейчас писать код для этих ПЛК, поэтому они и выбраны как объект для тренировок и отладки технических решений. Но фишка редактора в том, что он не привязан к какому-либо конкретному языку и какой-то конкретной платформе. Генерацию кода можно реализовать для массы языков - это сугубо техническая задача. Гораздо важнее сделать удобную среду разработки, которая не будет причинять боль пользователям и не будет вводить их в ступор.
Alex_st_Tomsk писал(а):
Только в инструкции я смог отыскать, что дракон-схемы интерпретируются на Си. Но для меня тогда странно, почему в редакторе можно создавать дракон-схемы классов. Тот Си, которому учился я, не был объектно-ориентированным языком.
Классы вполне можно реализовать на C, а также и на других языках, где их нет в явном виде. В случае C это может быть структура с членами, методы реализуются через указатели на функции. Можно сделать, например, наследование и некоторые другие элементы ООП - просто пока таких задач нет, но если они возникнут - особых проблем нет.
Класс был введен больше для удобства разработчика, т.к. это довольно удобный и понятный способ описания разных сущностей. А раз так, то почему бы не описать содержимое класса дракон-схемой?
Alex_st_Tomsk писал(а):
Поэтому дракон-схемы классов если и делать, то это должны быть примитивы с возможными атомами Действие (для ключей) и Вставка (для методов).
Примерно так и планируется. Члены класса - действия (сгруппированы в ветках для удобства), методы - полноценная дракон-схема.
Классы в редакторе еще не доделаны, там есть над чем подумать и что доработать.
Язык Си переживал несколько изменений и его история вам подскажет, какую версию вы взяли за основу
В случае генератора кода на C планируем придерживаться ANSI-С по причине хорошей портируемости результата.
Alex_st_Tomsk писал(а):
Хотелось бы увидеть какие-то подсказки в заполнении икон фрагментами программ или примеры, чтобы было на что ориентироваться
Я так понимаю, речь идет о том редакторе, при помощи которого заполняется содержимое икон? Если да, то такого редактора пока нет, он в разработке. Сейчас там для тестов была сделана возможность писать "свободный код", т.е. код на целевом языке платформы. Но это временное решение. Вообще, создание удобного, простого, но в то же время гибкого редактора выражений для содержимого икон - не самая тривиальная задача, тут есть над чем подумать.
Alex_st_Tomsk писал(а):
Самый главный минус пока что, на мой взгляд, отсутствие возможности пересадки и заземления лиан.
Всё это будет реализовано. Кстати, заземление веток в развилке уже есть.
Вложение:
Заземление Алексей Степанов .png [ 96.53 КБ | Просмотров: 7862 ]
Alex_st_Tomsk писал(а):
Прекрасная реализации операции рокировки, когда вместе с "Да" и "Нет", меняются местами и содержимое обоих плечей развилки.
К слову, помимо такой рокировки, иногда требуется просто сменить назначение веток развилки, т.е. поменять местами "Да" и "Нет" не меняя содержимого самих веток. Такой вариант тоже будет.
Alex_st_Tomsk писал(а):
И есть ещё несколько мелких заметок по поводу интерфейса.
Да, косяки там еще есть. В будущих версиях будем исправлять.
На самом деле, эта версия редактора - прототип, макет. До готового решения ещё далеко и планов на самом деле очень много. В частности,
планируется к реализации:- Создание библиотек, которые можно будет подключать к проекту. Библиотеки могут быть как нативные для целевой платформы, так и созданные пользователем в этом же редакторе.
- Утилитарные иконы для упрощения задания содержимого икон. Например, для действия приравнивания одной переменной к другой (а это весьма распространенная операция при программировании) вовсе не обязательно писать руками выражение. Можно дать пользователю максимально упрощенную форму, в которой он в два клика укажет, что нужно сделать.
- Будет не просто генерация кода, а вызов компилятора для целевой платформы, запись результата в ПЛК. Всё как в серьезных средах разработки: нажали кнопку - получили результат, без необходимости делать руками все промежуточные операции.
- Визуальная отладка кода - как на эмуляторах, так и на целевых ПЛК. В том числе - удалённая отладка.