Back to questions
Junior — Middle
57
Можете объяснить, что означает конечный автомат (FSM) в контексте программирования и системного дизайна?
Answer from AI
sobes.tech AI
Конечный автомат (Finite State Machine, FSM) — это модель вычислений, которая описывает систему через конечное число состояний и переходы между ними в ответ на события или входные данные. В программировании и системном дизайне FSM часто используется для управления поведением программы, где в каждый момент времени система находится в одном из состояний, и переходы между состояниями происходят по определённым правилам.
Пример: управление состояниями пользовательского интерфейса (например, кнопка может быть в состояниях "нормальное", "наведено", "нажато"), или обработка протоколов, где разные сообщения переводят систему в разные состояния.
Пример на Python:
class TrafficLightFSM:
def __init__(self):
self.state = 'RED'
def on_event(self, event):
if self.state == 'RED' and event == 'timer':
self.state = 'GREEN'
elif self.state == 'GREEN' and event == 'timer':
self.state = 'YELLOW'
elif self.state == 'YELLOW' and event == 'timer':
self.state = 'RED'
traffic_light = TrafficLightFSM()
print(traffic_light.state) # RED
traffic_light.on_event('timer')
print(traffic_light.state) # GREEN