[fpc-pascal] Name of the programming language used in/with FPC

Marco van de Voort marcov at stack.nl
Tue Feb 8 09:58:14 CET 2011

In our previous episode, Ben said:
> What is the programming language used in and with the Free Pascal Compiler?
> * Object Pascal
> * Delphi
> * Free Pascal
> * Pascal

Pretty much all apply.  Free Pascal has a mode concept with 5/6 modes.

The first is a Turbo Pascal compatible mode, but the object extensions of
Turbo Pascal were also called "object pascal" in the day.

The second is a fpc (Free Pascal mode), which is a Turbo Pascal like mode
with some extensions and some limiting backwards compatibility features of
Turbo mode removed.

The third is a Delphi compatible mode, which, by Borland itself, was called
"Object Pascal" too.

The fourth is the "Object Free Pascal" mode, which is more like a "strict"
Delphi mode.

The fifth is a Mac Pascal mode whose Pascal was also called "Object Pascal"
in the day. This mode also has a submode called "objectIVE Pascal".

The sixth is an ISO Pascal mode, and together with Mac Pascal mode it comes
closest to the original Pascal (the Borland dialects, Turbo and Delphi are
based on a subset of the original Pascal). This mode is only available in
development versions.

The reason for so many "Object Pascal" names is that there were many
attempts to add Objects to Pascal, but they all take the name of an early
proposal to do so.

The "Objective" mode is not related to that, but to Objective C, the
language where parts of the OS X system interfaces are specified in.

> If the Free Pascal Compiler project indeed does consider it having its
> own Pascal dialect, named Free Pascal, then is there a list of what
> syntax it has that is different to Borland's "Object Pascal", or
> Embarcadero's "Delphi" language?

The FPC modes are mostly variants of the Borland modes. Delphi is a bit of a
problematic term because there is no formal standard, and the various
Delphi versions don't always agree on things.

In general, the compatibility with older versions (up to D7) is very high,
only some more exotic things are not implemented. Libraries will probably
pose a bigger problem than language.

More information about the fpc-pascal mailing list