Processor as File Clerk

Programming Language

imperative / any

Form

Analogy

Attribution — Origin / Source

Collected by Matthias Hauswirth — Interview, Antonio Carzaniga

Conceptual Advantage

Makes explicit the difference between data and instructions, shows how little a single instruction really can achieve. Can be stretched to explain all kinds of concepts (although eventually becomes a bit of a stretch).

Mapping

PLNM
processor file clerk
instruction action taken by file clerk (e.g., read info off a card)

Draws Attention To

Data an instruction operates on, 'mechanistic' workings of instructions.

Use When

When introducing assembly programming (or low-level imperative programming), mostly at the beginning.

Cost

Requires an understanding of files / file clerks.

Details

Antonio Carzaniga pointed out that Richard Feynman used this notional machine.

For a detailed discussion, see Matthias Hauswirth’s blog post on Richard Feynman’s Notional Machine, with a video of Feynman and a reference to Feynman’s lecture notes.

Comments or Feedback?

Do you have feedback on this notional machine? Did you find a mistake, or do you have a request for improvement? You can create an Issue on GitHub, where the description is hosted. This way we can see your feedback and address it.

For this, you need a GitHub account. Then follow this link to see the source file of this page. In there, click the ... left of the highlighted line, then pick "Reference in a new issue".

Create an Issue on GitHub