4.3BSD-Reno/share/man/cat1/pc.0

Compare this file to the similar file:
Show the results in this format:

PC(1)			    UNIX Reference Manual			 PC(1)

NNAAMMEE
     ppcc - Pascal compiler

SSYYNNOOPPSSIISS
     ppcc [option] [--ii _n_a_m_e ...] _n_a_m_e ...

DDEESSCCRRIIPPTTIIOONN
     PPcc is a Pascal compiler.  If given an argument file ending with ._p, it
     will compile the file and load it into an executable file called, by de-
     fault, _a._o_u_t.

     A program may be separated into more than one ._p file.  PPcc will compile a
     number of argument ._p files into object files (with the extension ._o in
     place of ._p).  Object files may then be loaded into an executable _a._o_u_t
     file.  Exactly one object file must supply a _p_r_o_g_r_a_m statement to suc-
     cessfully create an executable a.out file.  The rest of the files must
     consist only of declarations which logically nest within the program.
     References to objects shared between separately compiled files are al-
     lowed if the objects are declared in iinncclluuddeedd header files, whose names
     must end with ._h.	Header files may only be included at the outermost
     level, and thus declare only globally available objects.  To allow
     ffuunnccttiioonns and pprroocceedduurrees to be declared, an eexxtteerrnnaall directive has been
     added, whose use is similar to the ffoorrwwaarrdd directive but restricted to
     appear only in ._h files.  FFuunnccttiioonn and pprroocceedduurree bodies may not appear in
     ._h files.	A binding phase of the compiler checks that declarations are
     used consistently, to enforce the type checking rules of Pascal.

     Object files created by other language processors may be loaded together
     with object files created by ppcc.  The ffuunnccttiioonns and pprroocceedduurrees they
     define must have been declared in ._h files included by all the ._p files
     which call those routines.  Calling conventions are as in C, with vvaarr
     parameters passed by address.

     See the Berkeley Pascal User's Manual for details.

     The following options have the same meaning as in cc(1) and f77(1).  See
     ld(1) for load-time options.

     --cc        Suppress loading and produce `.o' file(s) from source file(s).

     --gg        Have the compiler produce additional symbol table information
	       for dbx(1).

     --ww        Suppress warning messages.

     --pp        Prepare object files for profiling, see prof(1).

     --OO        Invoke an object-code improver.

     --SS        Compile the named program, and leave the assembler-language
	       output on the corresponding file suffixed `.s'.	(No `.o' is
	       created.).

     --oo _o_u_t_p_u_t
	       Name the final output file _o_u_t_p_u_t instead of _a._o_u_t.

     The following options are peculiar to ppcc.

     --CC        Compile code to perform runtime checks, verify aasssseerrtt calls,
	       and initialize all variables to zero as in ppii.

     --bb        Block buffer the file _o_u_t_p_u_t.

     --ii        Produce a listing for the specified procedures, functions and
	       _i_n_c_l_u_d_e files.
     --ll        Make a program listing during translation.

     --ss        Accept standard Pascal only; non-standard constructs cause
	       warning diagnostics.

     --tt _d_i_r_e_c_t_o_r_y
	       Use the given _d_i_r_e_c_t_o_r_y for compiler temporary files.

     --zz        Allow execution profiling with ppxxpp by generating statement
	       counters, and arranging for the creation of the profile data
	       file _p_m_o_n._o_u_t when the resulting object is executed.

     Other arguments are taken to be loader option arguments, perhaps li-
     braries of ppcc compatible routines.  Certain flags can also be controlled
     in comments within the program as described in the _B_e_r_k_e_l_e_y _P_a_s_c_a_l _U_s_e_r'_s
     _M_a_n_u_a_l.

FFIILLEESS
     _f_i_l_e._p		     pascal source files
     /_u_s_r/_l_i_b/_p_c_0	     compiler
     /_l_i_b/_f_1		     code generator
     /_u_s_r/_l_i_b/_p_c_2	     runtime integrator (inline expander)
     /_l_i_b/_c_2		     peephole optimizer
     /_u_s_r/_l_i_b/_p_c_3	     separate compilation consistency checker
     /_u_s_r/_l_i_b/_p_c_2.*_s_t_r_i_n_g_s   text of the error messages
     /_u_s_r/_l_i_b/_h_o_w__p_c	     basic usage explanation
     /_u_s_r/_l_i_b/_l_i_b_p_c._a	     intrinsic functions and I/O library
     /_u_s_r/_l_i_b/_l_i_b_m._a	     math library
     /_l_i_b/_l_i_b_c._a	     standard library, see intro(3)


SSEEEE AALLSSOO
     _B_e_r_k_e_l_e_y _P_a_s_c_a_l _U_s_e_r'_s _M_a_n_u_a_l
     pi(1), pxp(1), pxref(1),

HHIISSTTOORRYY
     PPcc appeared in 4.0 BSD.

DDIIAAGGNNOOSSTTIICCSS
     For a basic explanation do

	   ppcc

     See pi(1).  for an explanation of the error message format.  Internal er-
     rors cause messages containing the word SNARK.

AAUUTTHHOORRSS
     Charles B. Haley, William N. Joy, and Ken Thompson
     Retargetted to the second pass of the portable _C compiler by Peter
     Kessler
     Runtime library and inline optimizer by M. Kirk McKusick
     Separate compilation consistency checking by Louise Madrid

BBUUGGSS
     The keyword ppaacckkeedd is recognized but has no effect.

     The binder is not as strict as described here, with regard to the rules
     about external declarations only in `.h' files and including `.h' files
     only at the outermost level.  It will be made to perform these checks in
     its next incarnation, so users are warned not to be sloppy.

     The --zz flag doesn't work for separately compiled files.

     Because the --ss option is usurped by the compiler, it is not possible to
     pass the strip option to the loader.  Thus programs which are to be
     stripped, must be run through strip(1) after they are compiled.