Naming¶
Mapping¶
There are several techniques to map names to values, often combined for a single name resolution.
The main idea is resolve(name, context)
, that maps a name in a context to exactly one value.
- table-based lookup: correspondence of name-value in a table
- recursive lookup: resolution provides a new name rather than a mapping, new name looked up
- multiple lookup: search multiple contexts to find the name
So why names?
Computer systems use names to identify components
- addresses of values in objects
- addresses of other systems
Components may be passed by value or reference
- value: copy component
- only makes sense for some usage
- better for modularity: minimizes side effects
- reference: provide the name of the component
Names facilitate sharing
- different components can reference the same object
- name is used to provide a reference to each component
Names allow deferred lookup
- to which object does a name refer?
- decision can be make when the name is looked up
Indirection: using intermediary to associate name and object
Binding: association of a name to a particular object
Contexts and Operations¶
- context: information that helps determine name
- e.g. identity of the user
- location making the request
- current working directory