Summary
In this first chapter, we introduced the concept of a computer via an FSM. A state machine is an abstraction of any system that can exist in one of several states at any instant. State machines are defined in terms of the states and the transitions between states. We introduced state machines as a precursor to digital systems. State machines introduce the notion of discrete states and discrete times. A state machine moves from one state to another at discrete instants in time. This mirrors the action of a program where actions (change of state) take place only when an instruction is executed.
State machines can model systems as simple as traffic lights to a game of chess or a computer program. We also introduced the idea of algorithms – that is, a set of rules used to solve a problem. Later in this book, we’ll explain how computers can implement algorithms.
In Chapter 2, we’ll provide a brief overview of n. We’ve chosen this language because it has a remarkably shallow learning curve, is very powerful (it does a lot with a few lines of code), is taught in many universities, and is freely available to run on PCs, Macs, and Raspberry Pi systems.