|
|
1.1 ! root 1: .\" Copyright (c) 1980, 1990 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted provided ! 5: .\" that: (1) source distributions retain this entire copyright notice and ! 6: .\" comment, and (2) distributions including binaries display the following ! 7: .\" acknowledgement: ``This product includes software developed by the ! 8: .\" University of California, Berkeley and its contributors'' in the ! 9: .\" documentation or other materials provided with the distribution and in ! 10: .\" all advertising materials mentioning features or use of this software. ! 11: .\" Neither the name of the University nor the names of its contributors may ! 12: .\" be used to endorse or promote products derived from this software without ! 13: .\" specific prior written permission. ! 14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: .\" ! 18: .\" @(#)pc.1 6.2 (Berkeley) 6/11/90 ! 19: .\" ! 20: .Dd June 11, 1990 ! 21: .Dt PC 1 ! 22: .Os BSD 4 ! 23: .Sh NAME ! 24: .Nm pc ! 25: .Nd Pascal compiler ! 26: .Sh SYNOPSIS ! 27: .Nm pc ! 28: .Op option ! 29: .Op Fl i Ar name \&... ! 30: .Ar name \&... ! 31: .Sh DESCRIPTION ! 32: .Nm Pc ! 33: is a Pascal compiler. ! 34: If given an argument file ending with ! 35: .Pa \&.p , ! 36: it will compile the file ! 37: and load it ! 38: into an executable file called, by default, ! 39: .Pa a.out . ! 40: .Pp ! 41: A program may be separated into more than one ! 42: .Pa \&.p ! 43: file. ! 44: .Nm Pc ! 45: will compile a number of argument ! 46: .Pa \&.p ! 47: files into object files (with ! 48: the extension ! 49: .Pa \&.o ! 50: in place of ! 51: .Pa \&.p ) . ! 52: Object files may then be loaded ! 53: into an executable ! 54: .Pa a.out ! 55: file. ! 56: Exactly one object file must supply a ! 57: .Ar program ! 58: statement to successfully create an executable a.out file. ! 59: The rest of the files must consist only of ! 60: declarations which logically nest within the program. ! 61: References to objects shared between separately compiled files ! 62: are allowed if the objects are declared in ! 63: .Ic included ! 64: header files, whose names must end with ! 65: .Pa \&.h . ! 66: Header files may only be included at the outermost level, ! 67: and thus declare only globally available objects. ! 68: To allow ! 69: .Cx Ic function ! 70: .Cx s ! 71: .Cx ! 72: and ! 73: .Cx Ic procedure ! 74: .Cx s ! 75: .Cx ! 76: to be declared, an ! 77: .Ic external ! 78: directive has been added, whose use is similar to the ! 79: .Ic forward ! 80: directive but restricted to appear only in ! 81: .Pa \&.h ! 82: files. ! 83: .Ic Function ! 84: and ! 85: .Ic procedure ! 86: bodies may not appear in ! 87: .Pa \&.h ! 88: files. ! 89: A binding phase of the compiler checks that declarations ! 90: are used consistently, to enforce the type checking rules of Pascal. ! 91: .Pp ! 92: Object files ! 93: created by other language processors may be loaded together with ! 94: object files created by ! 95: .Nm pc . ! 96: The ! 97: .Cx Ic function ! 98: .Cx s ! 99: .Cx ! 100: and ! 101: .Cx Ic procedure ! 102: .Cx s ! 103: .Cx ! 104: they define must have been declared ! 105: in ! 106: .Pa \&.h ! 107: files included by all the ! 108: .Pa \&.p ! 109: files which call those ! 110: routines. ! 111: Calling conventions are as in C, ! 112: with ! 113: .Ic var ! 114: parameters passed by address. ! 115: .Pp ! 116: See the Berkeley Pascal User's Manual for details. ! 117: .Pp ! 118: The following options have the same meaning as in ! 119: .Xr cc 1 ! 120: and ! 121: .Xr f77 1 . ! 122: See ! 123: .Xr ld 1 ! 124: for load-time options. ! 125: .Tw Fl ! 126: .Tp Fl c ! 127: Suppress loading and produce `.o' file(s) from source file(s). ! 128: .Tp Fl g ! 129: Have the compiler produce additional symbol table information for ! 130: .Xr dbx 1 . ! 131: .Tp Fl w ! 132: Suppress warning messages. ! 133: .Tp Fl p ! 134: Prepare object files for profiling, see ! 135: .Xr prof 1 . ! 136: .Tp Fl O ! 137: Invoke an ! 138: object-code improver. ! 139: .Tp Fl S ! 140: Compile the named program, and leave the ! 141: assembler-language output on the corresponding file suffixed `.s'. ! 142: (No `.o' is created.). ! 143: .Tp Cx Fl o ! 144: .Ws ! 145: .Ar output ! 146: .Cx ! 147: Name the final output file ! 148: .Ar output ! 149: instead of ! 150: .Pa a.out . ! 151: .Tp ! 152: .Pp ! 153: The following options are peculiar to ! 154: .Nm pc . ! 155: .Tw Fl ! 156: .Tp Fl C ! 157: Compile code to perform runtime checks, ! 158: verify ! 159: .Ic assert ! 160: calls, ! 161: and initialize all variables to zero as in ! 162: .Nm pi . ! 163: .Tp Fl b ! 164: Block buffer the file ! 165: .Ar output . ! 166: .Tp Fl i ! 167: Produce a listing for ! 168: the specified procedures, functions and ! 169: .Ar include ! 170: files. ! 171: .Tp Fl l ! 172: Make a program listing during translation. ! 173: .Tp Fl s ! 174: Accept standard Pascal only; ! 175: non-standard constructs cause warning diagnostics. ! 176: .Tp Cx Fl t ! 177: .Ws ! 178: .Ar directory ! 179: .Cx ! 180: Use the given ! 181: .Ar directory ! 182: for compiler temporary files. ! 183: .Tp Fl z ! 184: Allow execution profiling with ! 185: .Nm pxp ! 186: by generating statement counters, and arranging for the ! 187: creation of the profile data file ! 188: .Pa pmon.out ! 189: when the resulting object is executed. ! 190: .Pp ! 191: .Tp ! 192: Other arguments ! 193: are taken ! 194: to be loader option arguments, ! 195: perhaps libraries of ! 196: .Nm pc ! 197: compatible routines. ! 198: Certain flags can also be controlled in comments within the program ! 199: as described in the ! 200: .Em "Berkeley Pascal User's Manual." ! 201: .Sh FILES ! 202: .Dw /usr/lib.pc2.*strings ! 203: .Di L ! 204: .Dp Pa file.p ! 205: pascal source files ! 206: .Dp Pa /usr/lib/pc0 ! 207: compiler ! 208: .Dp Pa /lib/f1 ! 209: code generator ! 210: .Dp Pa /usr/lib/pc2 ! 211: runtime integrator (inline expander) ! 212: .Dp Pa /lib/c2 ! 213: peephole optimizer ! 214: .Dp Pa /usr/lib/pc3 ! 215: separate compilation consistency checker ! 216: .Dp Pa /usr/lib/pc2.*strings ! 217: text of the error messages ! 218: .Dp Pa /usr/lib/how_pc ! 219: basic usage explanation ! 220: .Dp Pa /usr/lib/libpc.a ! 221: intrinsic functions and I/O library ! 222: .Dp Pa /usr/lib/libm.a ! 223: math library ! 224: .Dp Pa /lib/libc.a ! 225: standard library, see ! 226: .Xr intro 3 ! 227: .Dp ! 228: .Sh SEE ALSO ! 229: .Em Berkeley Pascal User's Manual ! 230: .br ! 231: .Xr pi 1 , ! 232: .Xr pxp 1 , ! 233: .Xr pxref 1 , ! 234: .\" .Xr sdb 1 ! 235: .Sh HISTORY ! 236: .Nm Pc ! 237: appeared in 4.0 BSD. ! 238: .Sh DIAGNOSTICS ! 239: For a basic explanation do ! 240: .Pp ! 241: .Df I ! 242: .Nm pc ! 243: .De ! 244: .Pp ! 245: See ! 246: .Xr pi 1 . ! 247: for an explanation of the error message format. ! 248: Internal errors cause messages containing the word SNARK. ! 249: .Sh AUTHORS ! 250: Charles B. Haley, William N. Joy, and Ken Thompson ! 251: .br ! 252: Retargetted to the second pass of the portable ! 253: .Ar C ! 254: compiler by Peter Kessler ! 255: .br ! 256: Runtime library and inline optimizer by M. Kirk McKusick ! 257: .br ! 258: Separate compilation consistency checking by Louise Madrid ! 259: .Sh BUGS ! 260: The keyword ! 261: .Ic packed ! 262: is recognized but has no effect. ! 263: .Pp ! 264: The binder is not as strict as described here, ! 265: with regard to the rules about external declarations only ! 266: in `.h' files and including `.h' files only at the outermost level. ! 267: It will be made to perform these checks in its next incarnation, ! 268: so users are warned not to be sloppy. ! 269: .Pp ! 270: The ! 271: .Fl z ! 272: flag doesn't work for separately compiled files. ! 273: .Pp ! 274: Because the ! 275: .Fl s ! 276: option is usurped by the compiler, ! 277: it is not possible to pass the strip option to the loader. ! 278: Thus programs which are to be stripped, must be run through ! 279: .Xr strip 1 ! 280: after they are compiled.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.