Node: Welcome, Next: Highlights, Previous: Top, Up: Top

## Welcome to GNU Pascal ...

...

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 optimization. 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 or 3.3.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 defined 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 different 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 files, 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.

This manual contains

- an overview of some of GPC's most interesting features, see Highlights,
- a list of new features since the last release, see News,
- the GNU Pascal Frequently Asked Questions List, see FAQ,
- installation instructions, see Installation,
- a QuickStart Guide for programmers used to the Turbo Pascal/Borland Pascal compiler, see Borland Pascal,
- a list of command-line options to invoke the compiler, see Invoking GPC,
- the Programmer's Guide to GPC, describing the Pascal programming language in general and GPC specifc aspects, see Programming,
- the alphabetical GPC language reference, see Reference,
- a list of keywords and operators supported by GNU Pascal, see Keywords,
- information on how to report bugs in GNU Pascal and how to get support, see Support,
- the list of known bugs and things to do, also listing bugs fixed and features implemented recently, see To Do,
- some information for those who are interested in how GNU Pascal works internally, see Internals,
- a list of contributors which tells you who developed and is maintaining GNU Pascal, see Acknowledgments,
- the GNU General Public License which informs you about your rights and responsibilites when using, modifying and distributing GNU Pascal, see Copying,
- and other texts about Free Software and the GNU Project intended to answer questions like “what is GNU?” you might have in mind now, see GNU.

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.

If you are a Borland Pascal programmer, you should probably start reading the QuickStart guide from BP to GNU Pascal, see Borland Pascal. If you are curious about the new features GPC offers, you can get an idea in the overview of GPC highlights (see Highlights), and read in more detail about them in the Programmer's Guide to GPC (see Programming) and in the alphabetical GPC Language Reference (see Reference).

And, please, think about how you can contribute to the GNU Pascal project, too. Please support our work by contributing yours in form of example programs, bug reports, documentation, or even actual improvements of the compiler.

All trademarks used in this manual are properties of their respective owners.