Object Pascal: Difference between revisions

Content deleted Content added
Rescuing 6 sources and tagging 0 as dead.) #IABot (v2.0.9.5
MN 7216 (talk | contribs)
No edit summary
 
(10 intermediate revisions by 10 users not shown)
Line 14:
| scope = [[Scope (computer science)|Lexical]] (static)
| programming language =
| platform = [[ARM architecture family|ARM]], [[x86]], [[PowerPC]], [[ppc64]], [[SPARC]], [[MIPS architecture|MIPS]], [[Common Language Infrastructure|CLI]], [[Java (software platform)|Java]], [[Cocoa (API)|Cocoa]]
| operating system =
| license =
Line 23:
| dialects = Apple, [[Turbo Pascal]], [[Free Pascal]] (using '''objfpc''' or '''delphi''' mode), [[Delphi (software)|Delphi]], Delphi.NET, Delphi Web Script, [[PascalABC.NET]], [[Oxygene (programming language)|Oxygene]]
| influenced by = [[Pascal (programming language)|Pascal]], [[Simula]], [[Smalltalk]]
| influenced = [[C Sharp (programming language)|C#]], [[Genie (programming language)|Genie]], [[Java (programming language)|Java]], [[Nim (programming language)|Nim]], [[C/AL]]
}}
 
'''Object Pascal''' is an extension to the programming language [[Pascal (programming language)|Pascal]] that provides [[object-oriented programming]] (OOP) features such as [[Class (computer programming)|classes]] and [[Method (computer programming)|methods]].
 
The language was originally developed by [[Apple Inc.|Apple Computer]] as ''[[Clascal]]'' for the [[Apple Lisa|Lisa]] Workshop development system. As Lisa gave way to [[Mac (computer)|Macintosh]], Apple collaborated with [[Niklaus Wirth]], the author of Pascal, to develop an officially standardized version of Clascal. This was renamed Object Pascal. Through the mid-1980s, Object Pascal was the main programming language for early versions of the [[MacApp]] [[application framework]]. The language lost its place as the main development language on the Mac in 1991 with the release of the [[C++]]-based MacApp 3.0. Official support ended in 1996.
 
[[NortonLifeLockGen Digital|Symantec]] also developed a [[compiler]] for Object Pascal for their Think Pascal product, which could compile programs much faster than Apple's own [[Macintosh Programmer's Workshop]] (MPW). Symantec then developed the Think Class Library (TCL), based on MacApp concepts, which could be called from both Object Pascal and [[THINK C]]. The Think suite largely displaced MPW as the main development platform on the Mac in the late 1980s.
 
Symantec ported Object Pascal to the PC, and developed a similar object framework on that platform. In contrast to TCL, which eventually migrated to C++, the PC [[Library (computing)|libraries]] remained mainly based on Pascal.
 
[[Borland]] added support for object-oriented programming to [[Turbo Pascal]] 5.5, which would eventually become the basis for the Object Pascal dialect used in [[Delphi (software)|Delphi]] created by [[Anders Hejlsberg]]. Delphi remained mainstream for business applications on the PC into the early 2000s, and was partly displaced in the 2000s with the introduction of the [[.NET Framework]] which included Hejlsberg's [[C Sharp (programming language)|C#]].
 
==History==
===Apple Pascal===
Pascal became a major language in the programming world in the 1970s, with high-quality implementations on most [[minicomputer]] platforms and [[microcomputer]]s. Among the laterlatter was the [[UCSD Pascal]] system, which compiled to an intermediate ''p-System'' code format that could then run on multiple platforms. Apple licensed UCSD and used it as the basis for their [[Apple Pascal]] system for the [[Apple II series|Apple II]] and [[Apple III]].
 
Pascal became one of the major languages in the company in this period. With the start of the [[Apple Lisa]] project, Pascal was selected as the main programming language of the platform, although this time as a ''compiler'' in contrast to the p-System ''interpreter''.
 
===Clascal and Apple's early Object Pascal===
Object Pascal is an extension of the Pascal language that was developed at [[Apple Inc.|Apple Computer]] by a team led by [[Larry Tesler]] in consultation with [[Niklaus Wirth]], the inventor of Pascal.<ref>{{cite journal |last=Tesler |first=Larry |date=1985 |title=Object Pascal Report |journal=Structured Language World |volume=9 |issue=3 |pages=10–7}}</ref><ref>{{cite web |last=Tesler | first=Larry |title=Object Pascal for the Macintosh |url=https://bitsavers.org/pdf/apple/mac/developer/MacApp/Object_Pascal_For_The_Macintosh_19850214.pdf |date=February 4, 1985 |access-date=March 13, 2025}}</ref> It is descended from an earlier object-oriented version of Pascal named [[Clascal]], which was available on the [[Apple Lisa|Lisa]] computer.
 
Object Pascal was needed to support [[MacApp]], an expandable Macintosh application framework that would now be termed a [[class library]]. Object Pascal extensions, and MacApp, were developed by Barry Haynes, Ken Doyle, and Larry Rosenstein, and were tested by Dan Allen. Larry Tesler oversaw the project, which began very early in 1985 and became a product in 1986.
Line 61:
Apple dropped support for Object Pascal when they moved from [[Motorola 68000 series]] chips to IBM's [[PowerPC]] architecture in 1994. MacApp 3.0, had already been rewritten in [[C++]] and ported to this platform.
 
[[Metrowerks]] offered with [[CodeWarrior]]bundled an Object Pascal compiler forwith Macintosh[[CodeWarrior]] that targeted both [[Motorola 68000 series|68k]] and [[PowerPC]], both in their IDE and as MPW tools. Macintosh developers using Object Pascal had a path to port to the [[PowerPC]], even architecture after both Apple and Symantec dropped support. [[MacApp]] 2.0, written in Object Pascal, was ported to the PowerPC using [[CodeWarrior]].<ref name=mt1995_11>
{{cite magazine
| magazine = [[MacTech]]
Line 90:
In 1986, [[Borland]] introduced similar extensions, also named Object Pascal, to the [[Turbo Pascal]] product for the Macintosh, and in 1989 for Turbo Pascal 5.5 for DOS. When Borland refocused from [[DOS]] to [[Microsoft Windows|Windows]] in 1994, they created a successor to Turbo Pascal, named [[Delphi (software)|Delphi]], and introduced a new set of extensions to create what is now known as the Delphi language.
 
The development of Delphi started in 1993 and Delphi 1.0 was officially released in the United States on 14 February 1995. While code using the Turbo Pascal object model could still be compiled, Delphi featured a new syntax using the keyword <code>class</code> in preference to <code>object</code>, the Create constructor and a virtual Destroy destructor (and negating having to call the <code>New</code> and <code>Dispose</code> procedures), properties, method pointers, and some other things. These were inspired by the [[International Organization for Standardization|ISO]] working [[Draft document|draft]] for object-oriented extensions, but many of the differences from Turbo Pascal's dialect (such as the draft's requirement that all methods be [[Virtual function|virtual]]) were ignored. {{Citation needed|date=January 2025}}
 
The Delphi language has continued to evolve over the years to support constructs such as [[dynamic array]]s, [[Generic programming|generics]] and [[Anonymous function|anonymous methods]]. The old object syntax introduced by Apple ("Old-Style Object Types") is still supported.<ref>{{cite book |last1=Lischner |first1=Ray |title=Delphi in a nutshell: a desktop quick reference |date=2000 |publisher=O'Reilly and Associates |___location=Sebastopol, CA |isbn=1565926595 |edition=1st |url-access=registration |url=https://archive.org/details/delphidesktopqui00lisc}}</ref>
Line 104:
* The open source [[GNU Pascal]] compiler is available as a front-end to the [[GNU Compiler Collection]], which implements the [[International Organization for Standardization]] (ISO) 7185 Pascal standard, and most of the ISO 10206 Extended Pascal standard.
* Turbo51 is a free compiler to program [[Intel 8051]] chips.<ref>{{cite web |url=http://turbo51.com/ |title=Turbo51: Turbo Pascal Compiler for 8051 microcontrollers |last=Funa |first=Igor |date=2021 |url-status=live |archive-url=https://web.archive.org/web/20180925023509/http://turbo51.com/ |archive-date=2018-09-25}}</ref>
* WDSibyl is an open source Delphi-like IDE and compiler available for [[Microsoft Windows]] and [[OS/2]],<ref>{{cite web |url=https://www.wdsibyl.org/ |title=WDSibyl: Visual Development Environment |last=Draxler |first=Wolfgang |url-status=deadlive |archive-url=https://web.archive.org/web/20200212174135/https://www.wdsibyl.org/ |archive-date=2020-02-12}}</ref> and is a commercial [[Turbo Pascal]] compatible environment released by a company named Speedsoft that was later developed into a Delphi-like RAD environment named Sybil, and then open sourced under the GPL when that company closed down. Wolfgang Draxler (WD) now maintains the software. The compiler used seems to be located in a DLL and is not open-source.<ref>
{{cite web
|url= http://www.edm2.com/index.php/WDSibyl
|title= EDM/2: WDSibyl
|archive-url= https://web.archive.org/web/20210324031505/http://www.edm2.com/index.php/WDSibyl
|archive-date= 2021-03-24
}}
</ref><ref>
{{cite web
|url= http://www.edm2.com/index.php/List_of_Tools
|title= EDM/2: List of Tools
|archive-url= https://web.archive.org/web/20220821090646/http://www.edm2.com/index.php/List_of_Tools
|archive-date= 2022-08-21
}}
</ref><ref>
{{cite web
|url=https://ecsoft2.org/wdsibyl
|title= eCSoft/2: The Complete OS/2 Software Encyclopedia: WDSibyl
|archive-date= 2021-10-17
|archive-url=https://web.archive.org/web/20211017225456/https://ecsoft2.org/wdsibyl
}}
</ref> The compiler used seems to be located in a DLL and is not open-source.{{Citation needed|date=August 2024}}
 
==Compilers==