COS 441 - Week 1 lecture notes
The following terms are defined in Finkel,
Chapter 1. I will cover these concepts this week in lecture.
Desiderata:
- simplicity
- uniformity
- orthogonality
- abstraction
- clarity
- information hiding
- modularity
- safety
- expressiveness
- efficiency
Technical terms:
- type
- variable
- primitive type
- structured type
- component
- homogenous
- index type
- flexible array
- dynamic-sized array
- array slice
- field
- choice
- tagcase
- literal
- constructor
- expression
- operator
- arity
- dereferencing
- prefix operator
- postfix operator
- reference operator
- overloading
- precedence
- r-value
- l-value
- assignment-compatible
- coercion (implicit; explicit)
- casting
- short-circuit
- lazy evaluation
- conditional expression
- statement (simple; compound)
- goto; if; case; while; for
- block statement
- dangling-else
- elsif
- guard
- nondetermistic conditional
- break; exit
- loop-end
- multilevel exit
- C-style for loop
- nondeterministic while
- procedure
- function
- procedure/function header
- local environment
- procedure body
- recursion
- formal parameter
- actual parameter
- parameter mode
- call-by-value
- call-by-result
- call-by-value/result
- call-by-reference
- readonly parameter
- call-by-name
- macro
- non-local goto
- default value
- keyword parameter-passing
- positional parameter-passing
- explicit return
- implicit return
- identifier return
- block structure
- name scope
- environment map
- binding
- hole in scope
- elaboration
- local variable
- nonlocal variable
- global variable
- variable instance
- nonlocal referencing environment
- closure
- deep binding
- shallow binding
- scope rules
- static scope
- dynamic scope
- runtime store
- stack
- activation record
- dynamic chain (dynamic link)
- static chain (static link)
- heap
- explicit deallocation
- garbage collection
Back
to COS 441 front page
| Course Newsgroup
| Assignments