home -
about -
download -
support -
team -
GNU -
to do -
misc
The GNU Pascal Compiler (GPC) is, as the name says, the Pascal compiler
of the GNU family. This means:
- 32/64 bit compiler,
- does not have limits like the 64 kB or 640 kB limit known from certain
operating systems - even on those systems -,
- runs on all operating systems supported by GNU C, including
- Linux on Intel,
Alpha, and all other supported types of hardware,
- the BSD family (FreeBSD,
NetBSD,
OpenBSD),
- DOS with 32 bits (DJGPP
and EMX),
- MS-Windows 9x/NT (CygWin
and mingw32),
- OS/2 (EMX),
- MIPS-SGI-IRIX,
- Alpha-DEC-OSF,
- Sparc-Sun-Solaris,
- HP/UX
and more,
- can act as a native or as a cross compiler between all supported systems,
- produces highly optimized code for all these systems,
- is Free Software
(Open-Source Software)
according to the
GNU General Public License
(see also GNU for remarks and translations),
- is compatible to other GNU languages and tools such as
GNU C and the GNU debugger.
The compiler supports the following language
standards and quasi-standards:
Some highlights:
- From Standard Pascal:
Many popular Pascal compilers claim to extend Standard Pascal
but miss these important features.
- From Extended Pascal:
- Compatible to Borland Pascal 7.0 with objects (BP):
- Supports units, objects, ...
and makes even things like absolute variables portable.
[Example]
- Comes with portable versions of the BP standard units
with full source.
- True network-transparent CRT unit: You can run your CRT
applications locally or while being logged in remotely,
without any need to worry about different terminal types.
- Fully functional GUI (X11) version of CRT (also completely
network transparent).
- The random function can produce the same
sequence of pseudo-random numbers as BP does - if you
need that instead of the much more elaborate
default algorithm.
- A Ports unit
lets you access CPU I/O ports on systems where
this makes sense.
[Example]
- From Pascal-SC (PXSC):
- User-definable operators. Add your vectors with "+".
- Carefully designed GNU extensions help you to make your real-world programs portable:
- 64-bit signed and unsigned integer types.
- A Delphi-compatible SetLength procedure
for strings makes it unnecessary to use dirty tricks
like assignments to the "zeroth character".
- Special types
guarantee compatibility to other GNU languages
such as GNU C. Directives like (*$L foo.c *)
make it easy to maintain projects written in
multiple languages.
[Example (Pascal part)]
[Example (C part)]
- Extensions like BitSizeOf and ConvertFromBigEndian help you
to deal with different data sizes and endianesses.
- Little somethings like DirSeparator, PathSeparator,
GetTempDirectory help you to write programs that look and feel
"at home" on all operating systems.
- The PExecute routine
lets you execute child processes in a portable way
that takes full advantage of multitasking
environments.
[Example]
- The GNU GetOpt routines give
you comfortable access to Unix-style short and long
command-line options with and without arguments.
[Example]
- Routines like FSplit or FSearch or
FExpand know about the specifica of the
various different operating systems.
- Useful and portable GNU standard units:
Disadvantages:
- The GNU debugger (GDB) does not yet understand Pascal syntax
and types; you have to use C syntax when debugging Pascal
programs with GDB.
- With GPC you get longer compilation times than with e.g. Borland Pascal.
The upcoming next version of GPC is in beta test stage.
We already can recommend its use over that of gpc-2.0,
the last official release. Just download it from
ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/beta/.
We also recommend to join the GNU
Pascal mailing list for up-to-date information and efficient
support.
We have significantly improved both the compatibility to
Borland Pascal and to ISO-10206 Extended Pascal. For a detailed
list of changes since version 2.0 see the
GPC TODO list. Beware - there are lots of changes!
;-)
Co-workers welcome!
Able, committed programmers are always welcome in the GNU
Pascal team. If you want to be independent of companies that
you must pay for getting a compiler with more restrictive
licensing conditions that only runs on one operating
system, be invited to join the development
team.
Copyright (C) 1996-1999 Markus & Peter Gerwinski
This information is provided in the hope that it will be
useful, but without any warranty. We disclaim any liability for
the accuracy of this information.
Verbatim copying and distribution is permitted in any medium,
provided that this notice and the disclaimer above are preserved.