Pascal variations: Difference between revisions
No edit summary |
|||
Line 11: | Line 11: | ||
==ISO Pascal== | ==ISO Pascal== | ||
ISO 7185 Pascal is basically ETH P4 with some clarifications and minor changes, it was ratified in 1982 and received some further changes in 1990 primarily to enhance compatibility with ISO 10206, and is in common usage referred to as "Standard Pascal". It had a strong following for a while but ISO compliant programming tools are getting thin on the ground these days due to the popularity of [[Turbo Pascal] compatible tools. | ISO 7185 Pascal is basically ETH P4 with some clarifications and minor changes, it was ratified in 1982 and received some further changes in 1990 primarily to enhance compatibility with ISO 10206, and is in common usage referred to as "Standard Pascal". It had a strong following for a while but ISO compliant programming tools are getting thin on the ground these days due to the popularity of [[Turbo Pascal]] compatible tools. | ||
====ANSI Pascal==== | ====ANSI Pascal==== | ||
Line 20: | Line 20: | ||
ISO 10206 that is commonly known as just '''Extended Pascal''' was ratified in 1990. Amongst other thins it adds expressions, the module system and separate compilation from [[Modula-2]], non-static types, mathematical types and a whole host of other primarily minor goodies but also makes some of the syntax more flexible. It also tweaks the "Standard Pascal" language a bit to make it more coherent. | ISO 10206 that is commonly known as just '''Extended Pascal''' was ratified in 1990. Amongst other thins it adds expressions, the module system and separate compilation from [[Modula-2]], non-static types, mathematical types and a whole host of other primarily minor goodies but also makes some of the syntax more flexible. It also tweaks the "Standard Pascal" language a bit to make it more coherent. | ||
* [[Extended Pascal]] OS/2 & Windows - Commercial - Discontinued | * [[Extended Pascal]] OS/2 & Windows - Commercial - Discontinued | ||
==Object Pascal== | ==Object Pascal== | ||
The Object Pascal variant is a development that traces its roots to the [[UCSD Pascal]] that was used on the Apple III and later developed into Lisa Pascal that was used to develop the systems software for the Macintosh and then to the object oriented Clascal. Object Pascal is a more coherent version of Clascal and has better object orientated features and was the language that was supplied with Macintosh Programmer's Workshop. Borland started supporting it when they rewrote [[Turbo Pascal]] for the Mac in the latter half of the 80's and deemed that compatibility with Apple Pascal was needed for the tool to sell on the Mac and they ported the language back to the PC and introduced a subset of OP with the release of [[Borland Pascal]]. They have never implemented the full OP language but have made their own additions in Delphi. | The Object Pascal variant is a development that traces its roots to the [[UCSD Pascal]] that was used on the Apple III and later developed into Lisa Pascal that was used to develop the systems software for the Macintosh and then to the object oriented Clascal. Object Pascal is a more coherent version of Clascal and has better object orientated features and was the language that was supplied with Macintosh Programmer's Workshop. Borland started supporting it when they rewrote [[Turbo Pascal]] for the Mac in the latter half of the 80's and deemed that compatibility with Apple Pascal was needed for the tool to sell on the Mac and they ported the language back to the PC and introduced a subset of OP with the release of [[Borland Pascal]]. They have never implemented the full OP language but have made their own additions in Delphi. |
Revision as of 21:09, 19 March 2015
This page aims to give a short introduction to the various variants of the Pascal language and what the basic differences are, the list is not complete and is not an attempt to empty the field.
Borland Pascal
Concurrent Pascal
Language designed by Per Brinch Hansen in the latter half of the 70's, has extensions to cope with parallel programming.
SuperPascal
Concurrent Pascal has a derivative in the form of SuperPascal, but it is not known if it should be considered a replacement for CP. Language designer Per Brinch Hansen did implement a compiler and distributed it as an open source tool, but he also talked about the language as a "thinking tool", a theoretical computer language to be used to create examples when explaining problems and solutions in parallel programming.
ISO Pascal
ISO 7185 Pascal is basically ETH P4 with some clarifications and minor changes, it was ratified in 1982 and received some further changes in 1990 primarily to enhance compatibility with ISO 10206, and is in common usage referred to as "Standard Pascal". It had a strong following for a while but ISO compliant programming tools are getting thin on the ground these days due to the popularity of Turbo Pascal compatible tools.
ANSI Pascal
ANSI ratified a standard in 1983 that was based on the "home grown" UCSD Pascal but deferred to ISO Pascal in regards to the base language, this was largely ignored and no-one appears to have released tools based on this standard although some compiler makers talked about ANSI compatibility in their literature. The ANSI standards group merged with an IEEE Pascal standards group and they collaborated with the ISO standards committee over the next few years resulting in the "Extended Pascal" standard below.
Open Group Pascal
The Open Group added their own clarifications and minor additions to ISO for increased code portability in the Product Standard for Operating System and Languages: Pascal Language, this is implemented in Compaq Pascal and its derivatives. This is mostly compatible with the later "Extended Pascal" standard.
ISO Extended Pascal
ISO 10206 that is commonly known as just Extended Pascal was ratified in 1990. Amongst other thins it adds expressions, the module system and separate compilation from Modula-2, non-static types, mathematical types and a whole host of other primarily minor goodies but also makes some of the syntax more flexible. It also tweaks the "Standard Pascal" language a bit to make it more coherent.
- Extended Pascal OS/2 & Windows - Commercial - Discontinued
Object Pascal
The Object Pascal variant is a development that traces its roots to the UCSD Pascal that was used on the Apple III and later developed into Lisa Pascal that was used to develop the systems software for the Macintosh and then to the object oriented Clascal. Object Pascal is a more coherent version of Clascal and has better object orientated features and was the language that was supplied with Macintosh Programmer's Workshop. Borland started supporting it when they rewrote Turbo Pascal for the Mac in the latter half of the 80's and deemed that compatibility with Apple Pascal was needed for the tool to sell on the Mac and they ported the language back to the PC and introduced a subset of OP with the release of Borland Pascal. They have never implemented the full OP language but have made their own additions in Delphi.
Object Pascal has never been standardised and most implementations simply ape the Borland syntax and additions. There was an attempt in the early 90's to create a standard but as Apple was switching to C in wake of their collaboration with IBM on PINK and Borland had no interest in what they saw as a tool to help their competitors create compatible systems, so the attempt floundered due to lack of industry support
Strangely enough Apple stopped distributing Object Pascal in the early/mid 90's but continued developing it internally and kept it as an in-house development tool, both the MPW and the C/C++ compiler were written in Pascal and it was deemed to expensive to re-write.
Pascal-S
A subset of Pascal introduced in 1975, it is not as often reported a "educational subset" of Pascal, but rather a minimal version of the language that ran much faster on the ETH CDC computer than the full blown Pascal system, allowing students a better chance of getting their programs compiled and run on the system than with a full compiler kit. As such it is outdated and has no real relevance in modern computing. Most Pascal compilers will actually compile Pascal-S programs.
- Language report to be found here.
Scientific Pascal
Better known as Pascal-SC, this is an extension of the language that has a robust support for numerical computations, dynamic text sting (intended for symbolic notation but usable for normal text) and imports the module concept from Modula-2. Few tools support the language these days, some Pascal-SC extensions are supported by GNU Pascal.
Publications
- By Gerd Bohlender, Christian Ullrich and Jürgen Wolff von Gudenberg: Pascal-SC: A Computer Language for Scientific Computation - Paperback - 1987 - Academic Press - ISBN: 0-12-11155-5 - Out of print.
Turbo Pascal
A Pascal subset originally introduced by the Borland company in 1983. Most modern tools actually strive for compatibility with the later Borland Pascal or Delphi toolsets, but a few older tools reference earlier Turbo Pascal versions, in particular those that pre-date the introduction of BP, with the most commonly referenced being 5.5 and 3.0.
Prior to version 7 the language as implemented by Borland was a subset of Pascal with a few extensions primarily specific to programming under DOS and CP/M, with BP and TP7 the base language has been changed to Object Pascal.