Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Pascal (programming language)
(section)
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''
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)