3

Figure 3-1 shows the sequence of events when you invoke pc.

Compiler

pc

Symbol con- flict checking

pc3

 

 

 

 

 

 

Compiler

 

 

 

 

Compiler

 

 

 

 

Code

 

 

 

Link

 

 

 

 

Executable

 

 

Source and

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

preprocessor

 

 

 

 

frontend

 

 

 

 

generator

 

 

 

editor

 

 

 

 

 

 

include files

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a.out

 

 

 

 

 

 

cpp or cppas

 

 

 

 

pc0

 

 

 

 

 

cg

 

 

 

ld

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Optimize with

 

Optimizer

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-O[level]option

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

iropt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Libraries

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figure 3-1Organization of Pascal Compilation

Language Preprocessor

The cpp(1) program is the C language preprocessor. The compiler driver pc normally calls cpp(1) during the first pass of a Pascal compilation. If you use the –xlswitch, pc calls the alternate preprocessor cppas. Then cpp(1) and cppas operate on files that contain the extension .p or .pas.

You can give directives to cpp(1) or cppas to define constants, conditionally compile parts of your program, include external files, and take other actions. For example, the following program shows the use of an include directive, which asks cpp(1) to copy the named file into the program before compilation.

The Pascal Compiler

19