Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Pascal (programming language)
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Standards== ===ISO/IEC 7185:1990 Pascal=== In 1983, the language was standardized in the international standard IEC/ISO 7185<ref>{{cite book|title=ISO/IEC 7185:1990 Pascal|url=http://www.pascal-central.com/docs/iso7185.pdf|access-date=16 September 2014|url-status=dead|archive-url=https://web.archive.org/web/20160127044422/http://pascal-central.com/docs/iso7185.pdf|archive-date=27 January 2016}}</ref> and several local country-specific standards, including the American ANSI/IEEE770X3.97-1983, and ISO 7185:1983. These two standards differed only in that the ISO standard included a "level 1" extension for conformant arrays (an array where the boundaries of the array are not known until run time), where ANSI did not allow for this extension to the original (Wirth version) language. In 1989, ISO 7185 was revised (ISO 7185:1990) to correct various errors and ambiguities found in the original document. The ISO 7185 was stated to be a clarification of Wirth's 1974 language as detailed by the User Manual and Report [Jensen and Wirth], but was also notable for adding "Conformant Array Parameters" as a level 1 to the standard, level 0 being Pascal without conformant arrays. This addition was made at the request of [[C. A. R. Hoare]], and with the approval of Niklaus Wirth. The precipitating cause was that Hoare wanted to create a Pascal version of the [[NAG Numerical Libraries|(NAG) Numerical Algorithms Library]], which had originally been written in FORTRAN, and found that it was not possible to do so without an extension that would allow array parameters of varying size. Similar considerations motivated the inclusion in ISO 7185 of the facility to specify the parameter types of procedural and functional parameters. Niklaus Wirth himself referred to the 1974 language as "the Standard", for example, to differentiate it from the machine specific features of the [[CDC 6000]] compiler. This language was documented in ''The Pascal Report'',<ref>{{cite book|last1=Wirth|first1=Niklaus|title=The Programming Language Pascal (Revised Report)|date=July 1973|publisher=ETH Zürich|doi=10.3929/ethz-a-000814158}}</ref> the second part of the "Pascal users manual and report". On the large machines (mainframes and minicomputers) Pascal originated on, the standards were generally followed. On the [[IBM Personal Computer|IBM PC]], they were not. On IBM PCs, the Borland standards Turbo Pascal and Delphi have the greatest number of users. Thus, it is typically important to understand whether a particular implementation corresponds to the original Pascal language, or a Borland dialect of it. The IBM PC versions of the language began to differ with the advent of UCSD Pascal, an interpreted implementation that featured several extensions to the language, along with several omissions and changes. Many UCSD language features survive today, including in Borland's dialect. ===ISO/IEC 10206:1990 Extended Pascal=== {{Expand section|date=February 2018}} In 1990, an extended Pascal standard was created as ISO/IEC 10206,<ref>{{cite book|title=Extended Pascal: ISO/IEC 10206:1990|url=http://www.dcs.gla.ac.uk/~wpc/reports/compilers/compilerindex/iso10206.ps|access-date=16 September 2014|url-status=dead|archive-url=https://web.archive.org/web/20160327025949/http://www.dcs.gla.ac.uk/%7Ewpc/reports/compilers/compilerindex/iso10206.ps|archive-date=2016-03-27}}</ref> which is identical in technical content<ref name="ISO/ANSI identical">{{cite web|title=Language standards: Pascal, Extended Pascal, Fortan|url=http://www.prosperosoftware.com/std.html|access-date=16 September 2014|ref=identical|archive-url=https://web.archive.org/web/20140714024231/http://www.prosperosoftware.com/std.html|archive-date=2014-07-14|url-status=dead}}</ref> to IEEE/ANSI 770X3.160-1989<ref>{{cite book|doi=10.1109/IEEESTD.1990.101061|isbn=978-0-7381-4247-0|date=1990 |title=IEEE/ANSI Standard for the Programming Language Extended Pascal}}</ref> As of 2019, Support of Extended Pascal in [[FreePascal]] Compiler is planned.<ref>{{Cite web|url=https://wiki.freepascal.org/Extended_Pascal|title=Extended Pascal - Free Pascal wiki|website=wiki.freepascal.org}}</ref> <!-- WHAT FOLLOW APPEARS FACTUALLY WRONG AND IS COMMENTED OUT FOR FUTURE REFERENCE In 1993, the ANSI standard was replaced by the ANSI organization with a "pointer" to the ISO 7185:1990 standard, effectively ending its status as a different standard. --> ===Variations=== Niklaus Wirth's Zürich version of Pascal was issued outside [[ETH Zürich|ETH]] in two basic forms: the CDC 6000 compiler source, and a porting kit called Pascal-P system. The Pascal-P compiler left out several features of the full language that were not required to bootstrap the compiler. For example, procedures and functions used as parameters, undiscriminated variant records, packing, dispose, interprocedural gotos and other features of the full compiler were omitted. [[UCSD Pascal]], under Professor [[Kenneth Bowles]], was based on the Pascal-P2 kit, and consequently shared several of the Pascal-P language restrictions. UCSD Pascal was later adopted as Apple Pascal, and continued through several versions there. Although UCSD Pascal actually expanded the subset Pascal in the Pascal-P kit by adding back standard Pascal constructs, it was still not a complete standard installation of Pascal. In the early 1990s, [[Alan Burns (professor)|Alan Burns]] and Geoff Davies developed Pascal-FC, an extension to Pl/0 (from the Niklaus' book ''Algorithms + Data Structures = Programs''). Several constructs were added to use Pascal-FC as a teaching tool for Concurrent Programming (such as semaphores, monitors, channels, remote-invocation and resources). To be able to demonstrate concurrency, the compiler output (a kind of [[p-code machine|P-code]]) could then be executed on a virtual machine. This virtual machine not only simulated a normal – fair – environment, but could also simulate extreme conditions (unfair mode). ====Borland-like Pascal compilers==== [[Borland]]'s [[Turbo Pascal]], written by [[Anders Hejlsberg]], was written in assembly language independent of UCSD and the Zürich compilers. However, it adopted much of the same subset and extensions as the UCSD compiler. This is probably because the UCSD system was the most common Pascal system suitable for developing applications on the resource-limited microprocessor systems available at that time. The [[shrink-wrapped]] Turbo Pascal version 3 and later incarnations, including Borland's [[Object Pascal]] and [[Delphi (software)|Delphi]] and non-Borland near-compatibles became popular with programmers including shareware authors, and so the SWAG library of Pascal code features a large amount of code written with such versions as Delphi in mind. Software products ([[compiler]]s, and IDE/[[Rapid Application Development]] (RAD)) in this category: * [[Turbo Pascal]] – "TURBO.EXE" up to version 7, and Turbo Pascal for Windows ("TPW") and [[Turbo Pascal#Apple Macintosh|Turbo Pascal for Macintosh]]. * Pure Pascal and HiSPeed Pascal 2 Pascal language Environment for the [[Atari ST]] range of computers. * [[Turbo Pascal|Borland Pascal 7]] – A professional version of Turbo Pascal line which targeted both DOS and Windows. * [[Object Pascal]] – an extension of the Pascal language that was developed at [[Apple Computer]] by a team led by [[Larry Tesler]] in consultation with [[Niklaus Wirth]], the inventor of Pascal; its features were added to Borland's [[Turbo Pascal#Apple Macintosh|Turbo Pascal for Macintosh]] and in 1989 for Turbo Pascal 5.5 for DOS. * [[Delphi (software)|Delphi]] – Object Pascal is essentially its underlying language. * [[Free Pascal]] compiler (FPC) – Free Pascal adopted the standard dialect of Borland Pascal programmers, Borland Turbo Pascal and, later, Delphi. * [[PascalABC.NET]] – a new generation Pascal programming language including compiler and IDE. * [[Kylix (software)|Borland Kylix]] is a compiler and IDE formerly sold by Borland, but later discontinued. It is a [[Linux]] version of the [[Delphi (software)|Borland Delphi]] software development environment and [[C++Builder]]. * [[Lazarus (IDE)|Lazarus]] – similar to Kylix in function, is a free cross-platform visual IDE for RAD using the Free Pascal compiler, which supports dialects of [[Object Pascal]] to varying degrees. * [[Virtual Pascal]] – VP2/1 is a fully Borland Pascal– and Borland Delphi–compatible 32-bit Pascal compiler for OS/2 and Windows 32 (with a Linux version "on the way").<ref>{{cite web |title=Virtual Pascal for OS/2 |url=http://www.pascal-central.com/vpascal.html |access-date=3 April 2016 |url-status=dead |archive-url=https://web.archive.org/web/20110830023208/http://pascal-central.com/vpascal.html |archive-date=30 August 2011 }}</ref> * Sybil is an open source Delphi-like IDE and compiler; implementations include: ** WDSibyl<ref>{{cite web |url=http://www.wdsibyl.org/ |title=WDSibyl: Visual Development Environment |author=Wolfgang |date=October 15, 2020 |website=WDSibyl.org |access-date=2020-04-20 |url-status=live |archive-url=https://web.archive.org/web/20200212174135/https://www.wdsibyl.org/ |archive-date=2020-02-12}}</ref> for [[Microsoft Windows]] and [[OS/2]], a commercial Borland Pascal compatible environment released by a company named Speedsoft that was later developed into a Delphi-like [[rapid application development]] (RAD) environment named Sybil and then open sourced under the GPL when that company closed down; ** Open Sybil, which is an ongoing project, an [[Open-source software|open source]] tool for OS/2 and eCS that was originally based on Speedsoft's WDsybl Sibyl Portable Component Classes (SPCC) and Sibyl Visual Development Tool (SVDE) sources, but now its core is [[IBM System Object Model]] (SOM), WPS and [[OpenDoc]].<ref>{{cite web |title=netlabs.org – Project: Open Sibyl |url=http://sibyl.netlabs.org/en/site/index.xml |access-date=3 April 2016 |url-status=dead |archive-url=https://web.archive.org/web/20160304132432/http://sibyl.netlabs.org/en/site/index.xml |archive-date=4 March 2016}}</ref> ===List of related standards=== * [[International Organization for Standardization|ISO]] 8651-2:1988 ''Information processing systems – Computer graphics – Graphical Kernel System (GKS) language bindings – Part 2: Pascal''
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Pascal (programming language)
(section)
Add topic