LINUX.ORG.RU

FSME 1.0


0

0

Собрался с духом и выпустил первый стабильный релиз FSME.

Пакет состоит из нескольких программ:

FSME - графический редактор конечных автоматов

FSMC - преобразователь XML описаний, созданных FSME, в исходные тексты (пока есть fsmc для C++ и pyfsmc для Python, буду рад увидеть трансляторы для других языков)

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

Домашняя страничка - http://fsme.sf.net Скриншот FSMD - http://www.linux.org.ru/profile/adaro...

>>> Скачать

★★★★

Проверено: Demetrio ()

Полезная прога, и выглядит хорошо.

tesla
()

интересно, какая лицензия у этой программы? мы надеемся на GPL, но мало ли? про лицензию на сайте ничего не нашёл...

Harzah
()

Отличный проект! Жалею, что у меня в детстве такой программы не было. Было бы нагляднее и интереснее КА изучать.

Cybem ★★
()

а можно гапример смоделировать работу планировщика задачами в компьютере?

anonymous
()

Интересная работа. Было-бы забавно посмотреть, если бы оно ещё и собиралось (ALT Compact 2.3, gcc version 3.2.3 (ALT Linux, build 3.2.3-alt2 -- ни в какую не можем обнаружить compose2, ну и ещё, по мелочи). Выпуская в свободное плавание, надо заботится, чтобы собиралось и работало не только у автора, хух?

anonymous
()
Ответ на: комментарий от anonymous

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

sleepflint ★★★
()

Ну не перемину респект еще раз. Качаю :)

sleepflint ★★★
()

А почему на kde-apps его нет?

anonymous
()

Уважаемые доны, подскажите ламеру плиз, в чем дело, у меня Мандрейк 9.2 и на нем тролтеч, ну я добавил в path ссылки на его qmake,uic, moc делаю qmake - получаю Makefile, ну я ему говорю make, а он покомпилил что то там, а в конце говорит - make[1]: Entering directory `/home/andrei/src/FinAutom/fsme/ui' /usr/lib/qt3//bin/uic neweiobasedlg.ui -o .ui/neweiobasedlg.h /usr/lib/qt3//bin/uic eiobasedlg.ui -o .ui/eiobasedlg.h /usr/lib/qt3//bin/uic statedlg.ui -o .ui/statedlg.h uic: File generated with too recent version of Qt Designer (3.2 vs. 3.1.2) make[1]: *** [.ui/statedlg.h] Ошибка 1 make[1]: Leaving directory `/home/andrei/src/FinAutom/fsme/ui' make: *** [sub-ui] Ошибка 2

То есть получается, что у меня слишком новый qt ? А как быть?

anonymous
()
Ответ на: комментарий от anonymous

О подборе напильников

> надо заботится, чтобы собиралось и работало не только у автора, хух?

Вот _Вы_ и позаботьтесь чтобы работало не только у автора и патчик прислать можете, или лень замучила? А автор Вам ничего не должен. Достаточно того что он под GPL прогу отдал.

Batyi
()
Ответ на: О подборе напильников от Batyi

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

anonymous
()
Ответ на: комментарий от anonymous

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

Конечные автоматы позволяют, например, делать в "миниатюрном" варианте то, что делают процессоры: последовательно выполнять "код" со всякими условными переходами.

Если я тут наглючил - поправьте :)

anonymous
()
Ответ на: комментарий от anonymous

Нет, слишком старый. Может помочь правка версии в UIC, надеюсь, ничего кроме этого не изменилось...

adarovsky ★★★★
() автор топика
Ответ на: комментарий от anonymous

>Интересная работа. Было-бы забавно посмотреть, если бы оно ещё и собиралось (ALT Compact 2.3, gcc version 3.2.3 (ALT Linux, build 3.2.3-alt2 -- ни в какую не можем обнаружить compose2, ну и ещё, по мелочи). Выпуская в свободное плавание, надо заботится, чтобы собиралось и работало не только у автора, хух?

В альтах что-то непонятное сотворили с C++. Между версиями 3.2 и 3.3 произошли перемены - все STL расширения от SGI переехали в ext/. На эту тему стоит дефин по версии. А в альтах то ли в новой версии по-старому сделали, то ли в старой по-новому.

Чтобы починить, попробуй с ним повозиться. Файл semantic.cpp.

#if defined(__GNUC__) && __GNUC__ >= 3 && __GNUC_MINOR__ >= 2

замени на #if 0

adarovsky ★★★★
() автор топика
Ответ на: комментарий от anonymous

>С одной стороны, верно: сделал полезную прогу - и просто поделился с другими. С другой стороны, если выпускать прогу под GPL в свет без хорошего тестирования - можно создать GPL-прогам имидж "с первого раза это никогда не заработает. А если заработает - то обязательно с глюками, которые придётся долго и упорно разгребать... Или взять проприетарную прогу" :(

Создатели проприетарной проги имеют парк машин и несколько разработчиков для тестирования. Я - нет. Причём свободного времени тоже мало :-(.

С глюком при компиляции уже встречался, причем только в ALT linux. Что делать - не знаю, альта на машине нет. Если поменять версию C++ в дефине, перестанет работать на остальных дистрибутивах. Не знаю, может надо смотреть не на версию C++, а на версию stdc++. У кого не альт и c++ 3.2, скажите плиз версии stdc++. Тогда эту глюку забодаю...

adarovsky ★★★★
() автор топика
Ответ на: комментарий от anonymous

>эх, все как всегда... а доку на русском написать слабО?

Напиши, выложу и спасибо скажу :-)

adarovsky ★★★★
() автор топика
Ответ на: комментарий от Harzah

GPL.

На страничке Summary есть. В Trove Category

adarovsky ★★★★
() автор топика

Патч для альтов

diff -ur fsme_old/ui/syntax/func.cpp fsme/ui/syntax/func.cpp
--- fsme_old/ui/syntax/func.cpp 2004-05-14 14:44:24.000000000 +0600
+++ fsme/ui/syntax/func.cpp     2004-11-04 11:05:36.366945960 +0500
@@ -32,7 +32,7 @@

 using namespace std;

-#if defined(__GNUC__) && __GNUC__ >= 3 && __GNUC_MINOR__ >= 2
+#if 0
 #   include <ext/algorithm>
     using namespace __gnu_cxx;
 #else
diff -ur fsme_old/ui/syntax/semantic.cpp fsme/ui/syntax/semantic.cpp
--- fsme_old/ui/syntax/semantic.cpp     2004-05-14 14:44:24.000000000 +0600
+++ fsme/ui/syntax/semantic.cpp 2004-11-04 11:05:46.483408024 +0500
@@ -24,7 +24,7 @@
 #include <iterator>


-#if defined(__GNUC__) && __GNUC__ >= 3 && __GNUC_MINOR__ >= 2
+#if 0
 #   include <ext/functional>
     using namespace __gnu_cxx;
 #else

adarovsky ★★★★
() автор топика
Ответ на: Патч для альтов от adarovsky

Народ! Альтовцы! Попробуйте плиз! Если поможет, выложу новый файловый релиз

adarovsky ★★★★
() автор топика
Ответ на: комментарий от anonymous

> можно создать GPL-прогам имидж "с первого раза это никогда не заработает.

Гы. Проснулся.

anonymous
()
Ответ на: комментарий от anonymous

1. лицензия к качеству кода отношения не имеет

2. проверить качество в закрытых поделиях не представляется возможным

anonymous
()

Выложил FSME-1.0.1 с набором напильников-полуфабрикатов.

adarovsky ★★★★
() автор топика
Ответ на: комментарий от anonymous

>Выпуская в свободное плавание, надо заботится, чтобы собиралось и работало не только у автора, хух?

Автор не обязан поддерживать работоспособность программы на всяких глюкодромах и анахронизмах.

Cybem ★★
()

А есть мысли в будущем сделать поддержку генерации boost::fsm? http://lists.boost.org/MailArchives/boost/msg73419.php Мне в ней правда не все нравится, но примеры в туториале хорошие, я по мере возможности стараюсь догнать в своей либе ее функционал. http://lists.boost.org/MailArchives/boost/msg72092.php

alnsn
()
Ответ на: комментарий от alnsn

Темплейтами рисовать FSM - это круто! :-)

Если оно войдёт в релиз, посмотрим...

IMHO, моя реализация попроще будет :)

Есть другие мысли - я вот нашёл либу ptypes, она позволяет кросс-платформенные нити/матексы делать, так можно автомату стек подарить, пусть в нем барахтается и асинхронно события обрабатывает :) IMHO, должно быть хорошо и удобно. В питоне тоже реализуемо через threading и Queue.

adarovsky ★★★★
() автор топика
Ответ на: комментарий от alnsn

Да. ещё. boost::fsm и overload'ы очень приятно смотрятся, когда в тексте дизайнишь FSM, руками. При пересечении возможностей FSME и boost::fsm эти возможности значительно поубавятся :( потому как не нарисовать то, что можно руками вбить в исходник. А вот руками свитчи как у меня генерятся рисовать - можно сразу повеситься. Зато при автоматической генерации на них можно забить.

Я про что? Я про то, что смысла генерить boost::fsm особого не вижу. Если только кому-то отдавать, чтобы руками генерённый текст правил...

adarovsky ★★★★
() автор топика
Ответ на: комментарий от adarovsky

> Я про что? Я про то, что смысла генерить boost::fsm особого не вижу. Если только кому-то > отдавать, чтобы руками генерённый текст правил... Я пытался спросить не про генерацию, а про полноценную работу и после генерации. Как это сделано в некоторых RAD средствах, например в Rational Rosе или Together. Задачка не из легких даже если взять что-то вроде www.gccxml.org за основу.

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

alnsn
()
Ответ на: комментарий от adarovsky

Тогда уж, #if 1 в semabtic.cpp и func.cpp. Да, так собирается. 11Мб монстр, кошмар. Что-то мне подсказывает, когда в проекте очень хочется использовать "на всю катушку" это адское изобретение -- c++ templates, нужно менять среду программировнаия... на питон, например, или что-то аналогичное :)

anonymous
()
Ответ на: комментарий от adarovsky

размер после стрипа - не ситается :)

anonymous
()
Ответ на: комментарий от anonymous

>кстати, а куда нужно класть ui/images/*.png, чтобы они прорисовывались в программе?

ну вообще-то они должны на этапе компиляции импортироваться. uic -embed это делает. А кто не рисуется и где? FSME? FSMD?

adarovsky ★★★★
() автор топика
Ответ на: комментарий от anonymous

>минимум, fsme (0.9). Не русуется пара кнопочек в тулбаре, нет значков в дереве состояний

В 1.0 точно всё рисуется. А в дереве иконок и не было никогда...

adarovsky ★★★★
() автор топика
Ответ на: комментарий от anonymous

>А оно в UML или UML/XML сохранять умеет? Было бы _очень_ полезно.

Имеется в виду формат как в umbrello? Нет, не умеет. Если надо, сделать ничто не мешает :) Буду рад получить патч :-)

adarovsky ★★★★
() автор топика

CVS версия научилась печатать диаграммы

adarovsky ★★★★
() автор топика
Ответ на: комментарий от anonymous

кривые руки никакой питон не исправит. считаете пробелы в начале строки - считайте. но не ходите хвастаться своим поделием

anonymous
()
Ответ на: комментарий от anonymous

за базар чиста реальна отвечать нада, если прога пашет и узверь пищит от восторга - прога реальная, а как она написана - до одного места

anonymous
()
Ответ на: комментарий от adarovsky

> Имеется в виду формат как в umbrello? Нет, не умеет. Если надо, сделать ничто не мешает :) Буду рад получить патч :-)

Как в Rational Rose.

Ладно, посмотрим. Если оно не слишком под какой-нить KDE/Qt заточен - допишем. ;)

anonymous
()
Ответ на: комментарий от anonymous

Самая изящная реализация КА, которую я видел -- непосредственное исполнение Форт-системой таблицы состояний автомата. Описано в Computers in Physics где-то в начале 90-ых, ксерокопию статьи можно взять в ftp://gleb.iao.ru/archive/archive/Info/Articles/MyClipboard/ComputerScience/F...(CiPh).djvu

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.