-
- В общем, против ручного кодинга возражений нет. Токо надо сделать некий стандарт кодинга, чтобы по нему АВТОМАТОМ строить диаграмму. - Evgeny_CD(14.01.2008 10:55)
- Против ручного ничего не имею. Но сначала надо рисовать диаграмммуВаш же подход идет против направления "сверху-вниз". - Алексей Мусин(15.01.2008 11:49)
- Рисовать мышкой или писать на оптимизированном под задачу языке - это кому как нравится. Мне лично кажется, что писать на язке будет быстрее. Потом рисовать диаграмму атовматом и правитиь описание. А потом уже вокруг описания на этом суперязыке Evgeny_CD(135 знак., 15.01.2008 12:10)
- не нужен супер язык -- нужен DSL. Я когда-то уже пробовал проектировать удобный DSL для описания конечных автоматов. Однако текстовое описание все равно имеет ограниченную экспрессивность. Хотя я бы предпочел его, ибо рисовать получается дольше. bialix_(422 знак., 15.01.2008 12:50)
- Итого, все уважаемые коллеги высказались за подход, когда FSM описывается непосредственно на языке программирования, в рамках определенного стандарта оформления кода, а графическое отображение рисуется автоматом по этому описанию. - Evgeny_CD(15.01.2008 12:55)
- Простите что встреваю, там мимо проходил des00(236 знак., 16.01.2008 15:08)
- Да мы вроде как и не претендуем на открытие Америки, скорее на ее осмысление. На осмысление методов работы с разными представлениями одного и того же. - Evgeny_CD(16.01.2008 15:27)
- Это не мы пришли, это авторы тулзов всё время мимо ходят. - =AlexD=(16.01.2008 15:16)
- +1 - bialix_(16.01.2008 16:42)
- Да здравствует лошадь впереди телеги! :-) - =AlexD=(15.01.2008 12:58)
- :-D - bialix_(15.01.2008 13:10)
- Простите что встреваю, там мимо проходил des00(236 знак., 16.01.2008 15:08)
- Итого, все уважаемые коллеги высказались за подход, когда FSM описывается непосредственно на языке программирования, в рамках определенного стандарта оформления кода, а графическое отображение рисуется автоматом по этому описанию. - Evgeny_CD(15.01.2008 12:55)
- Не нужен супер язык, нужно подмножество Си. - =AlexD=(15.01.2008 12:18)
- Да, именно так. По сути, должен быть набор специализированных макросов. - Evgeny_CD(15.01.2008 12:28)
- Уфф :-((, я категорически против макросов. - =AlexD=(15.01.2008 12:33)
- Да, именно так. По сути, должен быть набор специализированных макросов. - Evgeny_CD(15.01.2008 12:28)
- не нужен супер язык -- нужен DSL. Я когда-то уже пробовал проектировать удобный DSL для описания конечных автоматов. Однако текстовое описание все равно имеет ограниченную экспрессивность. Хотя я бы предпочел его, ибо рисовать получается дольше. bialix_(422 знак., 15.01.2008 12:50)
- Какая разница чем рисовать диаграмму - мышкой или кодом? Главное, чтобы процесс был итеративный - с исправлениями и дополнениями. А верх-низ в данном случае лишние сущьности. Считай пир-то-пир :-) - =AlexD=(15.01.2008 11:56)
- А то, что FSM (более общо, алгоритм) может делать чел, который Си и не знает, зато он профи в области, для которой девайс предназначен. - Алексей Мусин(15.01.2008 11:59)
- Ну и дать ему ключевые слова Си, и правила их применения (ограниченный набор). Что тут такого? А набить полученный шаблон рабочим кодом сможет уже программист. Какая разница - чему человека учить? Пример: =AlexD=(2734 знак., 15.01.2008 12:19)
- не, switch-технология при большом числе состояний превращается в монстра. по своему проекту знаю. - bialix_(15.01.2008 13:32)
- Не обязательно делать всё в одном свиче, можно раскидать по логическим группам команд. Делал, нормально получается. А рендеру пофиг - сколько найдёт корректных свичей - столько объектов сгенерит (как я себе представляю). - =AlexD=(15.01.2008 13:41)
- Вообще, оптимизация свичей - тоже тема. Я сначала генерирую избыточный код, потом лишнее вырезаю (повторяющиеся ветки), а также инвертирую логику FSM =AlexD=(213 знак., 15.01.2008 13:47)
- у меня на самом деле используется смесь логик и для уменьшения сложности я использую выделение подавтоматов для групп задач. - bialix_(15.01.2008 14:42)
- Впрочем, был бы рендер - писал бы сразу нормально. - =AlexD=(15.01.2008 13:51)
- Вообще, оптимизация свичей - тоже тема. Я сначала генерирую избыточный код, потом лишнее вырезаю (повторяющиеся ветки), а также инвертирую логику FSM =AlexD=(213 знак., 15.01.2008 13:47)
- А какая альтернатива? - Алексей Мусин(15.01.2008 13:38)
- очень неоднозначная. - bialix_(15.01.2008 13:40)
- Изврат какой? :) - Алексей Мусин(15.01.2008 13:43)
- на сях альтернатива -- это таблицы, но их построение должно быть автоматическое, следовательно нужен си-подобный DSL. Мне такой неизвестен. Самому писать все некогда. bialix_(986 знак., 15.01.2008 14:16, ссылка)
- Спасибо большое, буду изучать. - Алексей Мусин(16.01.2008 07:46)
- вот кстати сравнительная новая статья (я давно уже этот сайт не читал) -- вручную кодировать таблицы (или через эксель). - bialix_(15.01.2008 14:19, ссылка)
- Все хорошо, но я про другое думаю. Оставим автоматы на 1к состояний теоретикам, займемся практикой. Для практики важна, + ко всему, еще и "компактность средств". Т.е. есть некий средний проект, который разрабатывается командой из нескольких человек. Evgeny_CD(890 знак., 15.01.2008 14:36)
- вы статью-то хоть прочитали? прочитайте внимательно. там как раз шаблон программы описан. - bialix(15.01.2008 23:09)
- Каюсь. Не вкурил! Буфер входной переполнился :) - Evgeny_CD(16.01.2008 10:36)
- вы статью-то хоть прочитали? прочитайте внимательно. там как раз шаблон программы описан. - bialix(15.01.2008 23:09)
- Все хорошо, но я про другое думаю. Оставим автоматы на 1к состояний теоретикам, займемся практикой. Для практики важна, + ко всему, еще и "компактность средств". Т.е. есть некий средний проект, который разрабатывается командой из нескольких человек. Evgeny_CD(890 знак., 15.01.2008 14:36)
- на сях альтернатива -- это таблицы, но их построение должно быть автоматическое, следовательно нужен си-подобный DSL. Мне такой неизвестен. Самому писать все некогда. bialix_(986 знак., 15.01.2008 14:16, ссылка)
- Изврат какой? :) - Алексей Мусин(15.01.2008 13:43)
- очень неоднозначная. - bialix_(15.01.2008 13:40)
- Не обязательно делать всё в одном свиче, можно раскидать по логическим группам команд. Делал, нормально получается. А рендеру пофиг - сколько найдёт корректных свичей - столько объектов сгенерит (как я себе представляю). - =AlexD=(15.01.2008 13:41)
- Да, взглянув на этот код, надо в мозгах его "разворачивать" в картинку. Алексей Мусин(290 знак., 15.01.2008 13:18)
- Не, не так надо. Пусть рисует на бумажке (это правильно!), потом по нему пишет шаблон, рендерит картинку, разукрашивает её, правит, вылизывает, распечатывает, подписывает, а уж потооооом, отдаёт тебе на кодирование! :-) - =AlexD=(15.01.2008 13:29)
- Идеал - это когда мне не давали бы на кодирование ничего. PLC технология (на языках IEC 61131-3). - Алексей Мусин(15.01.2008 13:36)
- Это так я резанул из-за одного моего проекта. Так-то решение не для каждого девайса, конечно. - Алексей Мусин(15.01.2008 13:40)
- Ну... начать нужно с малого, а далее останется один шаг. - =AlexD=(15.01.2008 13:38)
- Идеал - это когда мне не давали бы на кодирование ничего. PLC технология (на языках IEC 61131-3). - Алексей Мусин(15.01.2008 13:36)
- Не, не так надо. Пусть рисует на бумажке (это правильно!), потом по нему пишет шаблон, рендерит картинку, разукрашивает её, правит, вылизывает, распечатывает, подписывает, а уж потооооом, отдаёт тебе на кодирование! :-) - =AlexD=(15.01.2008 13:29)
- Нужна формализация способов описания на человеческом языке. типа case DISABLE: // тут мы все запретили нахрен фсе. Тулза рисует состояние, его формальное имя/номер, и строку описания. - Evgeny_CD(15.01.2008 12:27)
- не, switch-технология при большом числе состояний превращается в монстра. по своему проекту знаю. - bialix_(15.01.2008 13:32)
- Очень мудрая мысль! FSM должна быть описана на очень простом языке, отрисована графически, а потом это описание должно быть встроено в С код. Это будет самое грамотное! - Evgeny_CD(15.01.2008 12:07)
- Ну и дать ему ключевые слова Си, и правила их применения (ограниченный набор). Что тут такого? А набить полученный шаблон рабочим кодом сможет уже программист. Какая разница - чему человека учить? Пример: =AlexD=(2734 знак., 15.01.2008 12:19)
- А то, что FSM (более общо, алгоритм) может делать чел, который Си и не знает, зато он профи в области, для которой девайс предназначен. - Алексей Мусин(15.01.2008 11:59)
- Рисовать мышкой или писать на оптимизированном под задачу языке - это кому как нравится. Мне лично кажется, что писать на язке будет быстрее. Потом рисовать диаграмму атовматом и правитиь описание. А потом уже вокруг описания на этом суперязыке Evgeny_CD(135 знак., 15.01.2008 12:10)
- А тут ИМХО особого выбора нет :-(. Всякие таблицы, которые генерируют тулзы - совершенно нечитаемы, и намертво привязывают к средству кодогенерации. =AlexD=(656 знак., 14.01.2008 11:44)
- С++, после того как его осознать (я пока не прошел этот путь до конца) - похоже, действительно рулез! Понятно, что вся FSM - switch, if, else. Но все-таки хочется остаться в парадигме С. - Evgeny_CD(14.01.2008 11:51)
- С++, как и любое сложное явление, осознаётся постепенно, по мере взаимодействия. На этом пути на первых порах, ессно, следует придерживаться тропинок, протоптанных гуру. =AlexD=(225 знак., 14.01.2008 12:23)
- -> - Evgeny_CD(14.01.2008 14:02, ссылка)
- Вот вроде бы один из. - =AlexD=(14.01.2008 13:56, ссылка)
- Respect! Я догадывался, что такое есть, но в чистом виде вижу впервые! - Evgeny_CD(14.01.2008 14:01)
- С++, как и любое сложное явление, осознаётся постепенно, по мере взаимодействия. На этом пути на первых порах, ессно, следует придерживаться тропинок, протоптанных гуру. =AlexD=(225 знак., 14.01.2008 12:23)
- С++, после того как его осознать (я пока не прошел этот путь до конца) - похоже, действительно рулез! Понятно, что вся FSM - switch, if, else. Но все-таки хочется остаться в парадигме С. - Evgeny_CD(14.01.2008 11:51)
- Против ручного ничего не имею. Но сначала надо рисовать диаграмммуВаш же подход идет против направления "сверху-вниз". - Алексей Мусин(15.01.2008 11:49)
- В общем, против ручного кодинга возражений нет. Токо надо сделать некий стандарт кодинга, чтобы по нему АВТОМАТОМ строить диаграмму. - Evgeny_CD(14.01.2008 10:55)