Sunteți pe pagina 1din 7

Glossary A...

C Page 1 of 7

The C++Course provides a general introduction to programming in C++.


It is based on A.B. Downey's book, How to Think Like a Computer
Scientist. Click here for details.

C++Course Appendix Glossary Glossary A...C Index

Glossary A...C
A set of classes. The abstract class specification lists the requirements a class must satisfy to be
abstract class
included in the set.
A data type (usually a collection of objects) that is defined by a set of operations, but that can be
abstract data type
implemented in a variety of ways.
abstract parameter A set of parameters that act together as a single parameter.
The process of interpreting a program (or anything else) at a higher level than what is literally
abstraction
represented by the code.
accessor function A function that provides access (read or write) to a private instance variable.
A variable used inside a loop to accumulate a result, often by getting something added or
accumulator
concatenated during each iteration.
"address of"
an operator that returns the address in memory of a variable.
operator
ADT abstract data type (see there)
algorithm A set of instructions for solving a class of problems by a mechanical, unintelligent process.
aliasing The condition when two or more variables refer to the same object.
A value that you provide when you call a function. This value must have the same type as the
argument
corresponding parameter.
A named collection of values, where all the values have the same type, and each value is identified
array
by an index.
assignment A statement that assigns a value to a variable.
associative array Another name for a dictionary.
AWT The Abstract Window Toolkit, one of the biggest and most commonly-used Java packages.
binary operator An operator that takes two operands.
binary tree A tree in which each node refers to 0, 1, or 2 dependent nodes.
body The statements inside the loop.
A value or variable that can take on one of two states, often called true and false. In C++, boolean
boolean
values can be stored in a variable type called bool.
A method of program development that starts by writing small, useful functions and then
bottom-up design
assembling them into larger solutions.
bounding box A common way to specify the coordinates of a rectangular area.
bug An error in a program.
A special kind of object code used for Java programs. Byte code is similar to a low-level language,
byte code
but it is portable, like a high-level language.
call Cause a function to be executed.
cargo An item of data contained in a node.
chaining A way of joining several conditional statements in sequence.
child One of the nodes referred to by a node.
An implementation of a queue using an array and indices of the first element and the next available
circular buffer
space.
A method with the keyword static. Class methods are not invoked on objects and they do not have a
class method
current object.

file://C:\Documents and Settings\my pc\Local Settings\Temp\~hh340F.htm 11/26/2009


Glossary A...C Page 2 of 7

class variable A static variable declared outside of any method. It is accessible from any method.
In general use, a class is a user-defined type with member functions. In C++, a class is a structure
class
with private instance variables. A class definition is also a template for a new type of object.
client A program that uses an ADT (or the person who wrote the program).
collection Any data structure that contains a set of items or elements.
comparison An operator that compares two values and produces a boolean that indicates the relationship
operator between the operands.
To translate a program in a high-level language into a low-level language, all at once, in preparation
compile
for later execution.
complexity class A set of algorithms whose performance (usually run time) has the same order of growth.
The ability to combine simple expressions and statements into compound statements and
composition
expressions in order to represent complex computations concisely.
concatenate To join two operands end-to-end.
An operator that compares two values and produces a boolean that indicates the relationship
conditional operator
between the operands.
conditional A block of statements that may or may not be executed depending on some condition.
constant reference
A parameter that is passed by reference but that cannot be modified.
parameter
constant time An operation whose run time does not depend on the size of the data structure.
constructor A special function that creates a new object and initializes its instance variables.
coordinate A variable or value that specifies a location in a two-dimensional graphical window.
counter A variable used to count something, usually initialized to zero and then incremented.
The object on which a member function is invoked. Inside the member function, we can refer to the
current object
current object implicitly, or by using the keyword this.
exception An error in a program that makes it fail at run-time. Also called a run-time error.

Last Update: 2005-Nov-22

The C++Course provides a general introduction to programming in C++.


It is based on A.B. Downey's book, How to Think Like a Computer
Scientist. Click here for details.

C++Course Appendix Glossary Glossary D...I Index

Glossary D...I
dead code Part of a program that can never be executed, often because it appears after a return statement.
debugging The process of finding and removing any of the three kinds of errors.
declaration A statement that creates a new variable and determines its type.
decrement Decrease the value of a variable by one. The decrement operator in C++ is --.
deep equality Equality of values. Two references that point to objects that have the same value.
an operator that returns the memory pointed to by a pointer to the free store (a special pool of free
delete
memory that each program has)
delimiter A character that is used to separate tokens, like the punctuation in a natural language.
deterministic A program that does the same thing every time it is run.
A process for developing a program. In this chapter, I demonstrated a style of development based
development plan
on developing code to do simple, specific things, and then encapsulating and generalizing.
dictionary Another name for a table.

The method C++ uses to refer to member variables and functions. The format is

file://C:\Documents and Settings\my pc\Local Settings\Temp\~hh340F.htm 11/26/2009


Glossary A...C Page 3 of 7

dot notation className.memberName.


dynamic memory
the explicit allocation of contiguous blocks of memory at any time in a program.
allocation
element One of the values in a vector. The [] operator selects elements of a vector.
To divide a large complex program into components (like functions) and isolate the components
encapsulate
from each other (for example, by using local variables).
encode To represent one set of values using another set of values, by constructing a mapping between them.
entry An element in a table that contains a key-value pair.
exception A run time error. Exceptions cause the execution of a program to terminate.
executable Another name for object code that is ready to be executed.
Anything that is spelled out completely. Within a nonmember function, all references to the
explicit
instance variables have to be explicit.
A combination of variables, operators and values that represents a single result value. Expressions
expression
also have types, as determined by their operators and operands.
"first in, first out," a queueing discipline in which the first member to arrive is the first to be
FIFO
removed.
A function that takes an "empty" object as a parameter and fills it its instance variables instead of
fill-in function
generating a return value.
flag A variable (usually type bool) that records a condition or status information.
A type of variable (or value) that can contain fractions as well as integers. There are a few floating-
floating-point
point types in C++; the one we use in this book is double.
Any of the languages people have designed for specific purposes, like representing mathematical
formal language
ideas or computer programs. All programming languages are formal languages.
A kind of image that is defined recursively, so that each part of the image is a smaller version of the
fractal
whole.
A statement that declares the interface to a function without providing the body. Declarations of
function declaration
member functions appear inside structure definitions even if the definitions appear outside.
A named sequence of statements that performs some useful function. Functions may or may not
function
take parameters, and may or may not produce a result.
functional
A style of program design in which the majority of functions are pure.
programming style
garbage collection The process of finding objects that have no references and reclaiming their storage space.
To replace something unnecessarily specific (like a constant value) with something appropriately
generalize general (like a variable or parameter). Generalization makes code more versatile, more likely to be
reused, and sometimes even easier to write.
generic data
A kind of data structure that can contain data of any type.
structure
hash code The integer value that corresponds to a given value.
hash function A function that maps values of a certain type onto integers.
hash table A particularly efficient implementation of a table.
heapsort Yet another sorting algorithm.
Often a small function that does not do anything enormously useful by itself, but which helps
helper function
another, more useful, function.
high-level language A programming language like C++ that is designed to be easy for humans to read and write.
histogram A vector of integers where each integer counts the number of values that fall into a certain range.
implementation The body of a function, or the details of how a function works.
Anything that is left unsaid or implied. Within a member function, you can refer to the instance
implicit
variables implicitly (without naming the object).
Increase the value of a variable by one. The increment operator in C++ is ++. In fact, that's why
increment
C++ is called C++, because it is meant to be one better than C.
A variable or value used to select one of the members of an ordered set, like a character from a
index
string, or the element of a vector.
infinite loop A loop whose condition is always true.
A function that calls itself recursively without every reaching the base case. Eventually an infinite
infinite recursion
recursion will cause a run-time error.

file://C:\Documents and Settings\my pc\Local Settings\Temp\~hh340F.htm 11/26/2009


Glossary A...C Page 4 of 7

infix A way of writing mathematical expressions with the operators between the operands.
initialization A statement that declares a new variable and assigns a value to it at the same time.
inorder A way to traverse a tree, visiting the left subtree, then the root, then the right subtree.
One of the named data items that make up an structure. Each structure has its own copy of the
instance variable
instance variables for its type.
An example from a category. My cat is an instance of the category "feline things." Every object is
instance
an instance of some type.
A description of how a function is used, including the number and types of the parameters and the
interface
type of the return value.
interpret To execute a program in a high-level language by translating it one line at a time.
A condition, usually pertaining to an object, that should be true at all times in client code, and that
invariant
should be maintained by all member functions.
invoke To call a function "on" an object, in order to pass the object as an implicit parameter.
iteration One pass through (execution of) the body of the loop, including the evaluation of the condition.

Last Update: 2005-Nov-22

The C++Course provides a general introduction to programming in C++.


It is based on A.B. Downey's book, How to Think Like a Computer
Scientist. Click here for details.

C++Course Appendix Glossary Glossary K...P Index

Glossary K...P
key An index, of any type, used to look up values in a table.
A reserved word that is used by the compiler to parse programs. Examples we have seen include int,
keyword
void and endl.
leaf A bottom-most node in a tree, which refers to no other nodes.
level The set of nodes equidistant from the root.
linear time An operation whose run time is a linear function of the size of the data structure.
link An object reference embedded in an object.
linked queue An implementation of a queue using a linked list and references to the first and last nodes.
list A data structure that implements a collection using a sequence of linked nodes.
The number of entries in a hashtable divided by the number of lists in the hashtable; i.e. the average
load factor
number of entries per list.
A variable that is declared inside a function and that exists only within that function. Local variables
local variable
cannot be accessed from outside their home function, and do not interfere with any other functions.
logical error An error in a program that makes it do something other than what the programmer intended.
logical operator An operator that combines boolean values in order to test compound conditions.
loop A statement that executes repeatedly while a condition is true or until some condition is satisfied.
low-level A programming language that is designed to be easy for a computer to execute. Also called "machine
language language" or "assembly language."
A function that is declared within the class defintion of an object. It is invoked directly on an object
member function
using dot notation.
An algorithm for sorting a collection of values. Mergesort is faster than the simple algorithm in the
mergesort
previous chapter, especially for large collections.
method
The design goal of keeping the interface of a method separate from the details of its implementation.
encapsulation

file://C:\Documents and Settings\my pc\Local Settings\Temp\~hh340F.htm 11/26/2009


Glossary A...C Page 5 of 7

A named sequence of statements that performs some useful function. Methods may or may not take
method
parameters, and may or may not produce a result.
modifier A function that changes one or more of the objects it receives as parameters, and usually returns void.
An operator that works on integers and yields the remainder when one number is divided by another.
modulus
In C++ it is denoted with a percent sign (%).
natural language Any of the languages people speak that have evolved naturally.
nesting Putting a conditional statement inside one or both branches of another conditional statement.
new an operator that returns a pointer of the appropriate data type, which points to the reserved place.
An element of a list, usually implemented as an object that contains a reference to another object of
node
the same type.
nonmember A function defined outside any class or structure defintion. Nonmember functions are not invoked on
function objects and they do not have a current object. Also called a "free-standing" function.
A collection of related data that comes with a set of functions that operate on it. The objects we have
object
used so far are the cout object provided by the system, and pstrings.
object code The output of the compiler, after translating the program.
object The design goal of keeping the implementations of two objects as separate as possible. Neither class
encapsulation should have to know the details of the implementation of the other.
A method that is invoked on an object, and that operates on that object, which is referred to by the
object method keyword this in Java or "the current object" in English. Object methods do not have the keyword
static.
operand One of the values on which an operator operates.
operator A special symbol that represents a simple computation like addition or multiplication.
A set of functions with the same leading-order term, and therefore the same qualitative behavior for
order of growth
large values of n.
A data structure in which every element appears only once and every element has an index that
ordered set
identifies it.
Additional time or resources consumed by a programming performing operations other than the
overhead
abstract operations considered in performance analysis.
Having more than one function with the same name but different parameters. When you call an
overloading
overloaded function, C++ knows which version to use by looking at the arguments you provide.
package A collection of classes. The built-in Java classes are organized in packages.
A piece of information you provide in order to call a function. Parameters are like variables in the
parameter
sense that they contain values and have types.
parent The node that refers to a given node.
parse To examine a program and analyze the syntactic structure.
A method of parameter-passing in which the parameter is a reference to the argument variable.
pass by reference
Changes to the parameter also affect the argument variable.
A method of parameter-passing in which the value provided as an argument is copied into the
pass by value
corresponding parameter, but the parameter and the argument occupy distinct locations.
performance A danger associated with a veneer that some of the methods might be implemented inefficiently in a
hazard way that is not apparent to the client.
pixel The unit in which coordinates are measured.
a variable that holds an address in memory. Similar to a reference, however, pointers have different
pointer
syntax and traditional uses from references.
portability A property of a program that can run on more than one kind of computer.
A predicate that must be true at the end of a method or function (provided that the preconditions were
postcondition
true at the beginning).
postfix A way of writing mathematical expressions with the operators after the operands.
postorder A way to traverse a tree, visiting the children of each node before the node itself.
precedence The order in which operations are evaluated.
A condition that is assumed to be true at the beginning of a function. If the precondition is not true, the
precondition
function may not work. It is often a good idea for functions to check their preconditions, if possible.
predicate A mathematical statement that is either true or false.
prefix notation A way of writing a mathematical expression with each operator appearing before its operands.

file://C:\Documents and Settings\my pc\Local Settings\Temp\~hh340F.htm 11/26/2009


Glossary A...C Page 6 of 7

preorder A way to traverse a tree, visiting each node before its children.
A queueing discipline in which each member has a priority determined by external factors. The
priority queue
member with the highest priority is the first to be removed.
A keyword that indicates that a method or instance variable cannot be accessed from outside the
private
current class definition.
problem-solving The process of formulating a problem, finding a solution, and expressing the solution.
project A collection of one or more class definitions (one per file) that make up a program.
prototype A way of describing the interface to a method using Java-like syntax.
provider The code that implements an ADT (or the person who wrote it).
pseudocode A way of designing programs by writing rough drafts in a combination of English and C++.
A sequence of numbers that appear to be random, but which are actually the product of a deterministic
pseudorandom
computation.
A function whose result depends only on its parameters, and that has so effects other than returning a
pure function
value.

Last Update: 2005-Nov-22

The C++Course provides a general introduction to programming in C++.


It is based on A.B. Downey's book, How to Think Like a Computer
Scientist. Click here for details.

C++Course Appendix Glossary Glossary Q...Z Index

Glossary Q...Z
queue An ordered set of objects waiting for a service of some kind.
queueing
The rules that determine which member of a queue is removed next.
discipline
recursion The process of calling the same function you are currently executing.
A value that indicates or refers to a variable or structure. In a state diagram, a reference appears as an
reference
arrow. Similar to a pointer, however, references have different syntax and traditional uses from pointers.
return type The type of value a function returns.
return value The value provided as the result of a function call.
root The top-most node in a tree, to which no other nodes refer.
run-time error An error in a program that makes it fail at run-time.
scaffolding Code that is used during program development but is not part of the final version.
A value used to initialize a random number sequence. Using the same seed should yield the same
seed
sequence of values.
selection sort The simple sorting algorithm in Section 13.7.
semantics The meaning of a program.
shallow
Equality of references. Two references that point to the same object.
equality
shifted sum A simple hash function often used for compounds objects like Strings.
source code A program in a high-level language, before being compiled.
startup class The class that contains the main method where execution of the program begins.
state diagram A snapshot of the state of a program, shown graphically.
A complete description of all the variables and objects and their values, at a given point during the
state
execution of a program.
A line of code that represents a command or action. So far, the statements we have seen are

file://C:\Documents and Settings\my pc\Local Settings\Temp\~hh340F.htm 11/26/2009


Glossary A...C Page 7 of 7

statement declarations, assignments, and output statements.


A data structure that represents a "flow" or sequence of data items from one place to another. In C++
stream
streams are used for input and output.
structure A collection of data grouped together and treated as a single object.
syntax error An error in a program that makes it impossible to parse (and therefore impossible to compile).
syntax The structure of a program.
A special character, written as \verb+\t+ in C++, that causes the cursor to move to the next tab stop on
tab
the current line.
table An ADT that defines operations on a collection of entries.
Also known as parameterized types, templates allow the programmer to save time and space in source
templates
code by simplifying code through overloading functions with an arbitrary typeparameter.
A keyword that refers to the current object. this is a pointer, which makes it difficult to use, since we do
this
not cover pointers in this book.
token A set of characters that are treated as a unit for purposes of parsing, like the words in a natural language.
traverse To iterate through all the elements of a set performing a similar operation on each.
type A set of values. The types we have seen are integers (int in C++) and characters (char in C++).
An operator that converts from one type to another. In Java it appears as a type name in parentheses,
typecast
like (int).
The typeparameter is the arbitrary label or name that you use in your template to represent the various
typeparameter
datatypes, structs, or classes.
value A letter, or number, or other thing that can be stored in a variable.
A named storage location for values. All variables have a type, which determines which values it can
variable
store.
A named collection of values, where all the values have the same type, and each value is identified by
vector
an index.
A class definition that implements an ADT with method definitions that are invocations of other
veneer methods, sometimes with simple transformations. The veneer does no significant work, but it improves
or standardizes the interface seen by the client.
virtual The keyword that is used by any function defined in a parent class that can be overloaded in subclasses.
void A special return type that indicates a void function; that is, one that does not return a value.
wrapper A method that acts as a middle-man between a caller and a helper method, often offering an interface
method that is cleaner than the helper method's.

Last Update: 2005-Nov-22

file://C:\Documents and Settings\my pc\Local Settings\Temp\~hh340F.htm 11/26/2009

S-ar putea să vă placă și