Pascal User's Guide
 
 Contents
 Preface				
	1.	 Introduction				
-  Standards				
 
-  Pascal Compiler				
 
-  Features				
 
-  Compatibility				
 
-  Text Editors				
 
-  Debuggers				
 
-  Native Language Support				
 
-  Internationalization				
 
-  Locale				
 
-  Licensing				
 
	2.	 Pascal Programs				
-  A Simple Pascal Program				
 
-  Compiling the Program				
 
-  Running the Program				
 
-  Renaming the Executable File				
 
-  An Interactive Pascal Program				
 
-  Compiling the Program				
 
-  Running the Program				
 
-  Redirecting I/O				
 
-  Using a File Name as a File Variable				
 
-  Where Did My Program Fail?				
 
-  Using Pascal Traceback				
 
-  Using a Sample Program with Segmentation Violation				
 
-  Compiling and Running the Program				
 
-  Using the -g Option				
 
	3.	 The Pascal Compiler				
-  pc Version Number				
 
-  Compile and Link Sequence				
 
-  Language Preprocessor				
 
-  File Name Extensions Accepted By pc				
 
-  Option-Passing on the Command-Line				
 
-  Option-Passing in the Program Text				
 
-  Options				
 
-  -a				
 
-  -Bbinding				
 
-  -b				
 
-  -C				
 
-  -c				
 
-  -calign				
 
-  -cg89				
 
-  -cg92				
 
-  -cond				
 
-  -config				
 
-  -Dname[=def]				
 
-  -dalign				
 
-  -dn				
 
-  -dryrun				
 
-  -dy				
 
-  -fast				
 
-  -flags				
 
-  -fnonstd				
 
-  -fns				
 
-  -fround=r				
 
-  -ftrap=t				
 
-  -G				
 
-  -g				
 
-  -H				
 
-  -hname				
 
-  -help				
 
-  -Ipathname				
 
-  -i name				
 
-  -keeptmp				
 
-  -L				
 
-  -l				
 
-  -Ldirectory				
 
-  -libmieee				
 
-  -libmil				
 
-  -llib				
 
-  -misalign				
 
-  -mt				
 
-  -native				
 
-  -nolib				
 
-  -nolibmil				
 
-  -non_init[=yes|no]				
 
-  Use With -Rw				
 
-  Lack of Effect of -non_init				
 
-  -noqueue				
 
-  -notrace				
 
-  -O[level]				
 
-  -o filename				
 
-  -P				
 
-  -p and -pg				
 
-  Using the -p Option				
 
-  Using the -pg Option				
 
-  -pic, -Kpic and -PIC, -KPIC				
 
-  -Qoption				
 
-  -Qpath pathname				
 
-  -Qproduce				
 
-  -qp				
 
-  -R path[:dir]				
 
-  -Rw				
 
-  -S				
 
-  -s[level]				
 
-  -sb				
 
-  -sbfast				
 
-  -tc				
 
-  -temp=dir				
 
-  -time				
 
-  -U name				
 
-  -V				
 
-  -V0 and -V1				
 
-  -v				
 
-  -w				
 
-  -xa				
 
-  -xarch=a				
 
-  -xcache=c				
 
-  -xchip=c				
 
-  -xcg89				
 
-  -xcg92				
 
-  -xF				
 
-  -xildoff				
 
-  -xildon				
 
-  -xl				
 
-  -xlibmieee				
 
-  -xlibmil				
 
-  -xlibmopt				
 
-  -xlicinfo				
 
-  -xMerge				
 
-  -xnolib				
 
-  -xnolibmopt				
 
-  -xO5				
 
-  -xpg				
 
-  -xprofile=p				
 
-  -xregs=r				
 
-  -xs				
 
-  -xsafe=mem				
 
-  -xsb				
 
-  -xsbfast				
 
-  -xspace				
 
-  -xtarget=t				
 
-  -Z				
 
-  -ztext				
 
	4.	 Program Construction and Management				
-  Units				
 
-  Using Program Units and Module Units				
 
-  Compiling with Units				
 
-  Using Units and Header Files				
 
-  Sharing Variables Between Units				
 
-  Libraries				
 
	5.	 Separate Compilation				
-  Working with Units				
 
-  Using Program Units				
 
-  Using Module Units				
 
-  Sharing Variables and Routines Across Multiple Units				
 
-  Compiling without the -xl Option				
 
-  Sharing Public Variables				
 
-  Using extern Option to Share Routines				
 
-  Using include Files to Share Variables and Routines				
 
-  Using the -xl Option				
 
-  Using public var Declarations				
 
-  Using the define Variable Attribute				
 
-  Using the define Declaration				
 
-  Using include Files				
 
-  Using extern				
 
-  Sharing Declarations in Multiple Units				
 
	6.	 The C-Pascal Interface				
-  Compilation of Mixed-Language Programs				
 
-  Compatibility of Types for C and Pascal				
 
-  Precautions with Compatible Types				
 
-  The shortreal Type				
 
-  Character Strings				
 
-  Array Indexes				
 
-  Aggregate Types				
 
-  Incompatibilities				
 
-  Enumerated Types				
 
-  Pascal Set Types				
 
-  General Parameter Passing in C and Pascal				
 
-  Procedure Calls: C-Pascal				
 
-  Variable Parameters				
 
-  Simple Types without -xl				
 
-  Simple Types with -xl				
 
-  Strings of Characters				
 
-  Fixed Arrays				
 
-  The univ Arrays				
 
-  Conformant Arrays				
 
-  Records and Structures				
 
-  Variant Records				
 
-  Pascal Set Type				
 
-  Pascal intset Type				
 
-  Value Parameters				
 
-  Simple Types without -xl				
 
-  Simple Types with -xl				
 
-  Arrays				
 
-  Conformant Arrays				
 
-  Function Return Values				
 
-  Simple Types				
 
-  Input and Output				
 
-  Procedure Calls: Pascal-C				
 
-  Variable Parameters				
 
-  Simple Types				
 
-  Strings of Characters				
 
-  Fixed Arrays				
 
-  The univ Arrays				
 
-  Conformant Arrays				
 
-  Records and Structures				
 
-  Variant Records				
 
-  Non-Pascal Procedures				
 
-  Value Parameters				
 
-  Simple Types				
 
-  Function Return Values				
 
-  Parameters That Are Pointers to Procedures				
 
-  Procedures and Functions as Parameters				
 
-  Global Variables in C and Pascal				
 
-  File-Passing Between Pascal and C				
 
	7.	 The C++-Pascal Interface				
-  Sample Interface				
 
-  Compatibility of Types for C++ and Pascal				
 
-  C++ Name Encoding				
 
-  Procedure Calls: C++-Pascal				
 
-  Arguments Passed by Reference				
 
-  Simple Types without the -xl Option				
 
-  Simple Types with  the -xl Option				
 
-  Strings of Characters				
 
-  Fixed Arrays				
 
-  Records and Structures				
 
-  Arguments Passed by Value				
 
-  Simple Types without the -xl Option				
 
-  Function Return Values				
 
-  Simple Types				
 
-  Type shortreal				
 
-  Input and Output				
 
-  Procedure Calls: Pascal-C++				
 
-  Arguments Passed by Reference				
 
-  Simple Types Passed by Reference				
 
-  Arguments Passed by Value				
 
-  Simple Types				
 
-  Function Return Values				
 
-  Global Variables in C++ and Pascal				
 
-  Pascal File Pointers to C++				
 
	8.	 The FORTRAN-Pascal Interface				
-  Compiler Mixed-Language Programs				
 
-  Compatibility of Types for FORTRAN and Pascal				
 
-  Precautions with Compatible Types				
 
-  Character Strings				
 
-  Array Indexes				
 
-  Incompatibilities				
 
-  Variant Records				
 
-  Enumerated Types				
 
-  Pascal Set Types				
 
-  Multidimensional Arrays				
 
-  General Parameter-Passing in FORTRAN and Pascal				
 
-  Procedure Calls: FORTRAN-Pascal				
 
-  Variable Parameters				
 
-  Simple Types without the -xl Option				
 
-  Simple Types with the -xl Option				
 
-  Strings of Characters				
 
-  Fixed Arrays				
 
-  The univ Arrays				
 
-  Conformant Arrays				
 
-  Records and Structures				
 
-  Variant Records				
 
-  Pascal Set Type				
 
-  Pascal intset Type				
 
-  Value Parameters				
 
-  Simple Types without the -xl Option				
 
-  Simple Types with the -xl Option				
 
-  Type shortreal				
 
-  Arrays				
 
-  Conformant Arrays				
 
-  Pointers				
 
-  Function Return Values				
 
-  Simple Types				
 
-  Type shortreal				
 
-  Procedure Calls: Pascal-FORTRAN				
 
-  Variable Parameters				
 
-  Simple Types				
 
-  Strings of Characters				
 
-  Character Dummy Arguments				
 
-  Fixed Arrays				
 
-  The univ Arrays				
 
-  Conformant Arrays				
 
-  Records and Structures				
 
-  Variant Records				
 
-  Value Parameters				
 
-  Simple Types				
 
-  Pointers				
 
-  Function Return Values				
 
-  Simple Types				
 
-  Type shortreal				
 
-  Routines as Parameters				
 
	9.	 Error Diagnostics				
-  Compiler Syntax Errors				
 
-  Illegal Characters				
 
-  String Errors				
 
-  Digits in Real Numbers				
 
-  Replacements, Insertions, and Deletions				
 
-  Undefined or Improper Identifiers				
 
-  Expected Symbols and Malformed Constructs				
 
-  Expected and Unexpected End-of-file				
 
-  Compiler Semantic Errors				
 
-  Format of the Error Diagnostics				
 
-  Incompatible Types				
 
-  The scalar Class				
 
-  Procedure and Function Type Errors				
 
-  Scalar Error Messages				
 
-  Expression Diagnostics				
 
-  Type Equivalence				
 
-  Unreachable Statements				
 
-  The goto Statement				
 
-  Uninitialized Variables				
 
-  Unused Variables, Constants, Types, Labels, and Routines				
 
-  Compiler Panics, I/O Errors				
 
-  Runtime Errors				
 
	10.	 Math Libraries				
-  Contents of the Math Libraries				
 
-  libm Functions				
 
-  IEEE Support Functions				
 
-  ieee_functions()				
 
-  ieee_values()				
 
-  ieee_retrospective()				
 
-  SPARC Libraries				
 
-  Arithmetic Exceptions				
 
-  Math Library Exception-Handling Function: matherr()				
 
-  libsunmath Support for IEEE Modes and Exceptions				
 
	11.	 The Multithread Library				
-  Multithread Environment for Pascal				
 
-  Compiling Multithreaded Programs				
 
-  Introduction to Multithreading				
 
-  Thread Resources				
 
-  Thread Creation Functions				
 
-  Lightweight Processes				
 
-  Process Control				
 
-  Synchronization				
 
-  Conditional Variables				
 
-  Semaphores				
 
-  Readers/Writer Lock				
 
-  Parallel Matrix-Multiplication Example				
 
-  Improving Time Efficiency With Two Threads				
 
-  Use of  Many Threads				
 
-  Debugging Multithreaded Pascal Programs				
 
-  Sample dbx Session				
 
	A.	 Pascal Preprocessor				
-   cpp-				
 
-   cppas-				
 
-  Conditional Variables				
 
-  Compiler Directives				
 
-  The %config Directive				
 
-  The %debug Directive				
 
-  The %else Directive				
 
-  The %elseif Directive				
 
-  The %elseifdef Directive				
 
-  The %enable Directive				
 
-  The %endif Directive				
 
-  The %error Directive				
 
-  The %exit Directive				
 
-  The %if Directive				
 
-  The %ifdef Directive				
 
-  The %include Directive				
 
-  The %list Directive				
 
-  The %nolist Directive				
 
-  The %slibrary Directive				
 
-  The %var Directive				
 
-  The %warning Directive				
 
	B.	 Error Messages				
 Index