Что такое конечные автоматы и почему программист должен знать о них? - PullRequest
6 голосов
/ 13 декабря 2008

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


(обновлено) Я мог бы посмотреть определение ... но почему бы (как указал @erikson) получить представление о вашем реальном опыте и анекдотах. Сообщество вики-сообщества, которое помогает людям проголосовать за самый проницательный ответ. Интересное чтение, спасибо!

Ответы [ 12 ]

1 голос
/ 13 декабря 2008

На что лучше ответить на других сайтах (таких как Википедия), потому что там уже есть довольно обширные ответы.

Почему вы должны их знать: потому что вы, вероятно, уже реализовали их.

Каждый раз, когда ваш код имеет ограниченное количество возможных состояний (это часть «конечного состояния») и переключается на другое, как только происходит какой-то ввод / событие (это часть «машины»), когда вы пишете конечный автомат .

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

1 голос
/ 13 декабря 2008

Да! Вы можете посмотреть это!

http://en.wikipedia.org/wiki/Finite_state_machine

...