PC(1)                                                                    PC(1)


NAME
       pc - Pascal compiler

SYNOPSIS
       pc [ option ] [ -i name ...  ] name ...

DESCRIPTION
       Pc  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
       default, a.out.

       A program may be separated into more than one .p file.  Pc 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.out file.  Exactly one object file must supply a program statement to
       successfully  create  an  executable a.out file.  The rest of the files
       must consist only of declarations which logically nest within the  pro‐
       gram.   References  to objects shared between separately compiled files
       are allowed if the objects are declared in included header files, whose
       names  must end with .h.  Header files may only be included at the out‐
       ermost level, and thus declare only  globally  available  objects.   To
       allow  functions  and  procedures to be declared, an external directive
       has been added, whose use is  similar  to  the  forward  directive  but
       restricted  to  appear only in .h files.  Function and procedure 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 pc.  The functions and procedures
       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
       var 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.

       -c    Suppress loading and produce ‘.o’ file(s) from source file(s).

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

       -w    Suppress warning messages.

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

       -O    Invoke an object-code improver.

       -S    Compile the named program, and leave the assembler-language  out‐
             put  on  the  corresponding file suffixed ‘.s’.  (No ‘.o’ is cre‐
             ated.).

       -o output
             Name the final output file output instead of a.out.

       The following options are peculiar to pc.

       -C    Compile code to perform runtime checks, verify assert calls,  and
             initialize all variables to zero as in pi.

       -b    Block buffer the file output.

       -i    Produce  a  listing  for  the specified procedures, functions and
             include files.

       -l    Make a program listing during translation.

       -s    Accept standard Pascal only; non-standard constructs cause  warn‐
             ing diagnostics.

       -t directory
             Use the given directory for compiler temporary files.

       -z    Allow  execution profiling with pxp by generating statement coun‐
             ters, and arranging for the creation of  the  profile  data  file
             pmon.out when the resulting object is executed.

       Other  arguments  are  taken  to  be  loader  option arguments, perhaps
       libraries of pc compatible routines.  Certain flags can  also  be  con‐
       trolled  in  comments  within  the program as described in the Berkeley
       Pascal Users Manual.

FILES
       file.p                   pascal source files
       /usr/lib/pc0             compiler
       /lib/f1                  code generator
       /usr/lib/pc2             runtime integrator (inline expander)
       /lib/c2                  peephole optimizer
       /usr/lib/pc3             separate compilation consistency checker
       /usr/lib/pc2.*strings    text of the error messages
       /usr/lib/how_pc          basic usage explanation
       /usr/lib/libpc.a         intrinsic functions and I/O library
       /usr/lib/libm.a          math library
       /lib/libc.a              standard library, see intro(3)

SEE ALSO
       Berkeley Pascal User’s Manual
       pi(1), pxp(1), pxref(1), sdb(1)

DIAGNOSTICS
       For a basic explanation do

              pc

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

AUTHORS
       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

BUGS
       The keyword packed 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 -z flag doesn’t work for separately compiled files.

       Because the -s 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.


4th Berkeley Distribution       April 29, 1985                           PC(1)
 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 753
Valid CSS Valid XHTML 1.0 Strict