Tutorial 1: Modelling Computing and Abstract Machines
Unit 2 ยท Section 1
Objectives
Model state, input, transition, and output.
Use an abstract machine to reason about execution.
Separate model assumptions from implementation.
An abstract machine is a simplified model with states, symbols or inputs, transitions, and outputs. A finite-state machine is useful for menus, protocols, validation, and device control.
state: Locked
input: validKey
transition: Locked -> Open
output: unlock signal
Exercises
Model a vending machine as states and transitions.
Identify invalid transitions.
Translate a state table into pseudocode.
Self-check
What is machine state?
What triggers a transition?
Why simplify a model?
Self-Check Quiz
1. What does a transition consume?
AnswerIt responds to an input or condition and changes the current state, possibly producing output.
2. Is an abstract machine a physical CPU?
AnswerNot necessarily; it is a model used to reason about computation.
Homework
Build a state-machine model for an online checkout.
List states, events, outputs, and invalid actions.
Explain one implementation consequence.
Sample answerStates include Cart, Payment, Confirmed, and Failed. Payment success moves to Confirmed; invalid payment moves to Failed; a confirmed order cannot be paid again. The implementation needs explicit state and guarded transitions.