Форум
Философия программирования
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, roro, Вы писали: R>Здравствуйте, Cyberax, Вы писали: C>>Здравствуйте, Marty, Вы писали: C>>>>К примеру, не обрабатывается ситуация "кончились черви" или "жена позвонила и сказала бежать домой". Причём если их добавлять, то схема (и так уже сложная) перестанет быть понимаемой. C>>>>Да, и ещё непонятно как легко откомментировать кусочек схемы. Оверквотинг сплошной получается. M>>>State-машина гораздо приятнее в этом плане. Надо просто для нового типа события "позвонила жена" или "кончились черви" обойти состояния, и решить в каждом случае, как реагировать. Можно проигнорировать (по дефолту) или добавить новые состояния и/или новые дуги на графе переходов. C>>Получится уйма переходов - жена может позвонить на каждом шаге. Нужно вводить что-то типа исключений, которые графически не особо красиво рисуются. R>Если новые состояния переключаются event`ом будет только одна точка входа wait_events -> process. R>Прерывания, насколько знаю, тоже можно в одной функции обрабатывать и иметь одну точку входа обработчик. C>>Для state-машины графическое представление может быть удобно. А может быть и неудобно - я сейчас как раз пишу планировщик задач, где state-машин полно. Но мне их удобнее описывать кодом (в виде набора узлов и переходов), а потом генерировать по ним graphviz'овский .dot-файл для документации (собственно, я так и нарисовал "эргономичный quicksort"). R>Диаграмма нагляднее отображает что происходит, даже в случае очень высокоуровневых шаблонов. C>>Ну и в любом случае, state-машины - это крайне нишевая область. По крайней мере из-за того, что в них нельзя описать структуру [b]данных[/b] - у чистой state-машины вообще данных нет (кроме состояния). Как графически описать связный список или хэш-карту - очень интересный вопрос. R>Вот не надо, установить tcp соединение это уже стейт-машина примитивная.
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …