Imperative Languages & State


Key Concepts

Mental model is a slightly more abstract view of the Von Neumann architecture

Variables

Variables have 6 attributes, which we can represent as a sextuple:
(Name, Address, Value, Type, Lifetime, Scope)
Aliases: when two variable names access the same location in memory (created via pointers, references, C and C++ unions)

Binding

A binding is an association, such as between variable name and a memory location, a symbol and an operation, or a function call and the code that will be executed. What are the advantages and disadvantages of different language design decisions?

Alyce Brady, Kalamazoo College