- 19 -
[1]
At the time of this writing, not all C++ implementations support namespaces. If your implementation does not support namespaces,
the using directive must be omitted. Because many of the examples in this book were compiled with implementations not supporting
namespaces, using directives have been omitted from most code examples.
Once the program has been entered into a file, say, prog1.C, the next step is to compile it. This is done
as follows under the UNIX operating system ($ represents the system prompt):
$ CC prog1.C
The command name used to invoke the C++ compiler varies across implementations. (Under Windows,
the command is usually invoked through clicking on a menu item.) CC is the command name for the C++
compiler we use on our UNIX workstations. Check the reference manual or ask your system
administrator for the C++ command name on your system.
Part of the compiler's job is to analyze the program text for correctness. A compiler cannot detect
whether the meaning of a program is correct, but it can detect errors in the form of the program. Two
common forms of program error are the following:
1. Syntax errors. The programmer has made a "grammatical" error in the C++ language. For
example:
int main ( { // error: missing ')'
readIn(): // error: illegal character ':'
sort();
compact();
print();
return 0 // error: missing ';'
}
2. Type errors. Each item of data in C++ has an associated type. The value 10, for example, is an
integer. The word "hello" surrounded by double quotation marks is a string. If a function expecting
an integer argument is given a string, a type error is signaled by the compiler.
An error message contains a line number and a brief description of what the compiler believes we have
done wrong. It is a good practice to correct errors in the sequence they are reported. Often a single
error can have a cascading effect and cause a compiler to report more errors than actually are present.
Once the error has been corrected, the program should be recompiled. This cycle is often referred to as
edit-compile-debug.
A second part of the compiler's job is to translate formally correct program text. This translation, referred
to as code generation, typically generates object or assembly instruction text understood by the
computer on which the program is run.
The result of a successful compilation is an executable file. When run, our program generates the
following output:
readIn()