{"id":1098,"slug":"finite-state-machine","name":"Finite-state machine","short_description":"A formalism consisting of a finite set of states and a transition function describing when to move from one state to another.","url":"https://github.com/topics/finite-state-machine","github_count":1223,"created_by":null,"logo_url":null,"released":null,"wikipedia_url":"https://en.wikipedia.org/wiki/Finite-state_machine","related_topics":["automaton","deterministic-finite-automaton","nondeterministic-finite-automaton"],"aliases":["finite-state-machines","fsm","finite-state-automaton","finite-state-automata","finite-state-automatons","fsa","finite-automaton","finite-automata","finite-automatons","state-machine"],"github_url":null,"content":"\u003cp\u003eA \u003cstrong\u003efinite-state machine\u003c/strong\u003e (FSM), \u003cstrong\u003efinite-state automaton\u003c/strong\u003e (FSA), or simply \u003cstrong\u003estate machine\u003c/strong\u003e is a mathematical \u003ca href=\"https://en.wikipedia.org/wiki/Model_of_computation\"\u003emodel of computation\u003c/a\u003e and an \u003ca href=\"https://en.wikipedia.org/wiki/Abstract_machine\"\u003eabstract machine\u003c/a\u003e that can be in exactly one of a finite number of states at any given time.\nThe FSM can change from one state to another in response to some inputs; the change from one state to another is called a \u003cem\u003etransition\u003c/em\u003e.\nAn FSM is defined by a list of its states, its initial state, and the inputs that trigger each transition.\u003c/p\u003e\n\n\u003cp\u003eIn computer science, FSM are widely used in modeling of application behavior (\u003ca href=\"https://en.wikipedia.org/wiki/Control_theory\"\u003econtrol theory\u003c/a\u003e), design of \u003ca href=\"https://en.wikipedia.org/wiki/Digital_electronics\"\u003ehardware digital systems\u003c/a\u003e, \u003ca href=\"https://github.com/topics/software-engineering\"\u003esoftware engineering\u003c/a\u003e, \u003ca href=\"https://github.com/topics/compiler\"\u003ecompilers\u003c/a\u003e, \u003ca href=\"https://en.wikipedia.org/wiki/Network_protocol\"\u003enetwork protocols\u003c/a\u003e, and \u003ca href=\"https://en.wikipedia.org/wiki/Computational_linguistics\"\u003ecomputational linguistics\u003c/a\u003e.\u003c/p\u003e\n","created_at":"2025-02-06T00:10:38.655Z","updated_at":"2026-06-27T00:10:53.975Z","topic_url":"https://awesome.ecosyste.ms/api/v1/topics/finite-state-machine","html_url":"https://awesome.ecosyste.ms/topics/finite-state-machine","projects_url":"https://awesome.ecosyste.ms/api/v1/projects?keyword=finite-state-machine","lists_url":"https://awesome.ecosyste.ms/api/v1/lists?topic=finite-state-machine"}