Jump to content

Pascal variations: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
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.
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==
==Concurrent Pascal==
Language designed by Per Brinch Hansen in the latter half of the 70's, has extensions to cope with parallel programming.
Language designed by Per Brinch Hansen in the latter half of the 70s, has extensions to cope with parallel programming.
* [[CoPascal]] - [[DOS]] - Open source - Discontinued.
*CoPascal - [[DOS]] - Open source - Discontinued


====SuperPascal====
====SuperPascal====
Line 15: Line 13:
====ANSI Pascal====
====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.
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====
====Open Group Pascal====
The Open Group added their own clarifications and minor additions to ISO for increased code portability in the [http://www.opengroup.org/infosrv/Brand/SPS_pdf/pascal.pdf 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.
The Open Group added their own clarifications and minor additions to ISO for increased code portability in the [http://www.opengroup.org/infosrv/Brand/SPS_pdf/pascal.pdf 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 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.
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.
Line 22: Line 22:


==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''' that was mildly influenced by ''Mesa'' and [[Smalltalk]]. Object Pascal is a more coherent version of Clascal and has better object oriented features the resemble [[Simula]] objects 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 80s 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 90s 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


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 90s 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.


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==
==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.
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 [http://www.fh-jena.de/~kleine/history/languages/Wirth-PascalS.pdf here].
 
==Scientific Pascal==
==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]].
Better known as '''Pascal-SC''', this is an extension of the language that has a robust support for numerical computations, dynamic text strings (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====
====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.
*Gerd Bohlender; Christian Ullrich; Jürgen Wolff von Gudenberg: ''Pascal-SC: A Computer Language for Scientific Computation'' - Academic Press 1987, ISBN 0-12-111155-5


==Turbo Pascal==
==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.
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 that are actually [[Object Pascal]] tools, 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 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.


Prior to version 5.5 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 Turbo Pascal 5.5 many Object Pascal features had been introduced and with the releases of BP and TP7 the base language has been changed to Object Pascal.


[[Category:Pascal]][[Category:Programming Languages]]
[[Category:Pascal]][[Category:Programming Languages]]

Latest revision as of 19:48, 23 October 2021

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.

Concurrent Pascal

Language designed by Per Brinch Hansen in the latter half of the 70s, has extensions to cope with parallel programming.

  • CoPascal - DOS - Open source - Discontinued

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.

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 that was mildly influenced by Mesa and Smalltalk. Object Pascal is a more coherent version of Clascal and has better object oriented features the resemble Simula objects 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 80s 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 90s 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 90s 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.

Scientific Pascal

Better known as Pascal-SC, this is an extension of the language that has a robust support for numerical computations, dynamic text strings (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

  • Gerd Bohlender; Christian Ullrich; Jürgen Wolff von Gudenberg: Pascal-SC: A Computer Language for Scientific Computation - Academic Press 1987, ISBN 0-12-111155-5

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 that are actually Object Pascal tools, 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 and 3.0.

Prior to version 5.5 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 Turbo Pascal 5.5 many Object Pascal features had been introduced and with the releases of BP and TP7 the base language has been changed to Object Pascal.