Finite State Machine
Finite State Machine (FSM and also called Finite State Automata) is a way to represent the behavior of a system in terms of states, transitions and actions. I remember the topic to be one of my favorite during college days when I studied them in compiler design and operating systems papers. FSM works basically by representing the behavior of a system with finite states with each state maintaining its past and a transition that represents the change from one state to another within the system. Additionally an action defines what needs to be done at a specific time during the lifetime of the system. An action could happen when the system is in a state and a transition has to be initiated or it could be an action that gets triggered during transition of a system to move it to a specific state. I was intrigued to read an article in IBM developerWorks, “Finite state machines in JavaScript, Part 1: Design a widget“. I was enthralled to read this article and a beautiful theory being applied to enhance the experience of web sites. I liked the fading tool tip example presented in the article and could be very useful feature that can be implemented in the rich interface web sites for better usability in terms of context sensitive help.










