This manual documents how to run, install and maintain the GNU Pascal Compiler (GPC), as well as its new features and incompatibilities, and how to report bugs. It corresponds to GPC 20050331 (GCC 2.8.1, 2.95.x, 3.2.x, 3.3.x or 3.4.x). the free 32/64-bit Pascal compiler of the GNU Compiler Collection (GNU CC or GCC). It combines a Pascal front-end with the proven GCC back-end for code generation and opti- mization. Other compilers in the collection currently include compilers for the Ada, C, C++, Objective C, Chill, FORTRAN, and Java languages. Unlike utilities such as p2c, this is a true compiler, not just a converter. This version of GPC corresponds to GCC version 2.8.1, 2.95.x, 3.2.x, 3.3.x or 3.4.x. The purpose of the GNU Pascal project is to produce a Pascal compiler (called GNU Pascal or GPC) which • combines the clarity of Pascal with powerful tools suitable for real-life programming, • supports both the Pascal standard and the Extended Pascal standard as de?ned by ISO, ANSI and IEEE (ISO 7185:1990, ISO/IEC 10206:1991, ANSI/IEEE 770X3.160-1989), • supports other Pascal standards (UCSD Pascal, Borland Pascal, parts of Borland Delphi, Mac Pascal and Pascal-SC) in so far as this serves the goal of clarity and usability, • may be distributed under GNU license conditions, and • can generate code for and run on any computer for which the GNU C compiler can generate code and run on. Pascal was originally designed for teaching. GNU Pascal provides a smooth way to proceed to challenging programming tasks without learning a completely di?erent language. The current release implements Standard Pascal (ISO 7185, levels 0 and 1), most of Extended Pascal (ISO 10206, aiming for full compliance), is highly compatible to Borland Pascal (version 7.0), has some features for compatibility to other compilers (such as VAX Pascal, Sun Pascal, Mac Pascal, Borland Delphi and Pascal-SC). It provides a lot of useful GNU extensions not found in other Pascal compilers, e.g. to ease the interfacing with C and other languages in a portable way, and to work with ?les, directories, dates and more, mostly independent of the underlying operating system. Included units provide support for regular expressions, arithmetic with integer, rational and real numbers of unlimited size, internationalization, inter-process communication, message di- gests and more. Demo programs show the usage of these units and of many compiler features. If you are familiar with Standard Pascal (ISO 7185) programming, you can probably just go ahead and try to compile your programs. Also, most of the ISO Extended Pascal Standard (ISO 10206) is implemented into GNU Pascal. The Extended Pascal features still missing from GPC are qualified module import, protected module export variables, set types with variable bounds, structured value initializers and expressions as subrange lower bounds. GPC’s new or changed features since the last (non alpha/beta) GPC release are listed here. Items without further description refer to new routines, variables or options. Features implemented for compatibility to other compilers are marked with, e.g., ‘(B)’ for BP compatibility. A few old and obsolete features have been dropped or replaced by cleaner, more ?exible or otherwise more useful ones. This might lead to minor problems with old code, but we suppose they’re rare and easy to overcome. Pascal was originally designed for teaching. GNU Pascal provides a smooth way to proceed to challenging programming tasks without learning a completely di?erent language. The current release implements Standard Pascal (ISO 7185, levels 0 and 1), most of Extended Pascal (ISO 10206, aiming for full compliance), is highly compatible to Borland Pascal (version 7.0), has some features for compatibility to other compilers (such as VAX Pascal, Sun Pascal, Mac Pascal, Borland Delphi and Pascal-SC). It provides a lot of useful GNU extensions not found in other Pascal compilers, e.g. to ease the interfacing with C and other languages in a portable way, and to work with ?les, directories, dates and more, mostly independent of the underlying operating system. Included units provide support for regular expressions, arithmetic with integer, rational and real numbers of unlimited size, internationalization, inter-process communication, message digests and more. Demo programs show the usage of these units and of many compiler features.


