CSE 341 Vocabulary
Last modified: Thu May 30 11:16:10 PDT 2002
These lists are primarily based on the class handouts and are
updated frequently. In addition to your notes, handouts, and
textbooks, consider consulting the
Free On-Line Dictionary of Computing (FOLDOC) for definitions.
(see also: FOLDOC mirror
sites, if the one linked here is slow) Some synonyms are marked
with syn.
Overview Slides
- reusability
- maintainability
- performance
- robustness
- flexibility
- dynamicism
- libraries
- aesthetics
- also: comprehensibility
General Concepts
Conceptual Overview
(See handout for vocabulary.)
Language Families
- imperative, procedural
- object-oriented
- functional
- logic and constraint
Operational Semantics
- normal vs. applicative order rewriting
Types
- type safe
- statically vs. dynamically typed
- strongly vs. weakly typed
Miranda and Functional Programming
Miranda Basics
- pure functional
- side effect
- referential transparency
- lazy evaluation
- polymorphic function
- first class functions
- currying
- lexical scoping
- higher order functions
- polymorphic function
- type variable
- constructor (for a user-defined type)
- polymorphic or parameterized type
- list comprehension
OO / Java
- object; instance
- class
- method
- to extend (syn. to subclass)
- compiler
- interpreter
- virtual machine (VM)
- primitive type
- heap vs. stack
- garbage collection (GC)
- applet
- instance vs. static/class method
- override
- overload
- abstract class
- interface
- exception
- thread
OO / Java guest lecture
- dynamic (run-time) vs. static (compile time, based on code) type
- method dispatch (syn. method lookup)
- static dispatching (syn. early binding)
- dynamic dispatching (syn. late binding)
- throwing/handling an exception
- collection
- iterator
- key vs. value
- reference
- pass by reference vs. pass by value
OO / Smalltalk
- message (syn. "method")
- unary message
- keyword message
- binary message
- block (syn. closure, lexical closure, lambda, anonymous
function)
- see also: all the OO / Java vocabulary above, of course!
Parameter Passing Techniques
- pass/call by value
- pass/call by result
- pass/call by value-result
- pass/call by reference
- pass/call by name
- lazy evaluation
- formal vs. actual parameter
- to indirect
- L-value
- alias, aliasing
Polymorphism / Java and Pizza
- bounded polymorphism
- parameteric polymorphism
- parameterized type
- type variable
Scheme
- prefix (vs. infix or postfix)
- list cell
- S-expression (symbolic expression)
- lambda, anonymous function
Static vs. Dynamic Scoping
- lexical scope
- stack frame
- shadowed variable