CS302 Glossary of Terms

This is a partial list of terms used in CS302. If you think an important term is missing, please let me know.

accessor
a method for extracting information from an object, usually named according to the variable being accessed, as in getData. Accessors usually declared public so that the actual variables of the instance can be declared protected or private without losing a handle to that data. see also mutator

actual parameters
the values that are passed into a procedure or method. These are always copies of either primitives or object references.

address
a location in memory; each data item is stored at a particular memory address

base case
the simplest case, usually the termination case for a recursive algorithm

binding
the relation between a symbol and its value

call stack (or execution stack)
the part of memory containing the bindings of formal parameters to actual values for procedure calls

class
a definition of a type of object

constructor
a method used to create a new object

data
information that is manipulated by a computation

data flow model
a model of computation in which each computational component is represented as a box whose arguments and results may be connected from and to other boxes

expression tree
a diagram showing the operators and operands of an expression

final
keyword that may be applied to classes, methods, and data which will prevent it from being extended, overriden, or changed, respectively

formal parameter
the parameters declared for a method or procedure, into which the actual parameter values will be copied

garbage
memory that had been allocated but is no longer reachable by a process

garbage collection
claiming unreachable storage for reuse

heap
an area of memory from which space for dyanamic structures are allocated

infix notation
a notation in which operators appear between the operands, as in 3 + 5

instance variables
the variables holding the internal representation of an object

interface
(see abstraction barrier)

internal representation
the data representation (stored in the instance variables) of an object

iteration
a repeated computation, usually performed on a range of values or on the elements of a data structure

iterator
an object that contains a reference to internal items of a data structure in order to support iterating over the data in those items without exposing the internal representation of the structure itself

linked list
a data structure consisting of a sequence of values linked together in memory by a chain of references

liveness
the program will eventually provide a result

loop
a programming language construct that supports iteration (for example, a while loop)

loop invariant
a property of, or relationship among, the values of the loop variables such that the property is true both initially and after each iteration of the loop; together with the termination condition, a loop invariant is useful in demonstrating the correctness of a loop

memory
a place in the computer where values are stored for later retreival

message-passing
a way of thinking about object-oriented programming in which objects communicate by sending messages to each other (to invoke methods on them)

method
an operation that one may invoke on an object

mutation
the act of changing the values of variables or data structures

native
a method modifier that indicated that the method is defined elsewhere and in another platform-dependent fashion. Native methods should have a semicolon in place of its body.

object
an abstraction that encapsulates data and knows how to operate on the data

parameter
the way values are passed to a method or procedure

polymorphism
treating objects of many types in a uniform way

predicate
an expression that evaluates to either true or false

prefix notation
a notation in which operators appear before the operands, as in add(3,5)

primitive data
data, such as numbers and symbols, that are built into the language

procedure
a description of an activity to be carried out (by a computer)

process
an activity (carried out by a computer)

programming language
a language used to write a procedure or other description of a computation

queue
a data structure with first-in first-out behavior, supporting the operations enqueue (to insert) and dequeue (to remove)

reduction
a recasting of one problem as another (somewhat different) problem

recursion
a reduction of a problem to another (typically smaller) instance of the same problem

representation invariant
a property that holds true of the internal representation initially and after the completion of each method

semantics
the meaning of an expression

stack
a data structure with last-in first-out behavior, supporting the operations push (to insert) and pop (to remove)

state
stored information (associated with a process)

subclass
a class that extends another class, possibly by adding new methods or overriding existing methods

substitution model
a model of computation in which expressions are successively replaced by their values until a final result is reached

symbol
a name used to denote a value

synchronized
keyword modifying a class or method indicating that internal state is not thread-safe. A lock is automatically generated to protect the data.

syntax
the notation used to express an idea

tail recursion
a form of recursion in which the result of the recursive call is the final answer; no combining is done on the result of the recursive call

termination condition
a predicate that becomes true when a computation ends

top-down refinement
a design technique in which a problem is described at a highly abstract level and then broken down into finer and finer details until all the pieces are filled in

transient
a modifier indicating that the data is not part of an object's persistent state, and thus needs not be serializable

try
a keyword starting a try block, which uses methods that throw Exceptions. These Exceptions must be caught at the end of the try block

volatile
a keyword indicating that the data is used by synchronized threads, telling the compiler not not to attempt optimizations on it