Pascal became a major language in the programming world in the 1970s, with high-quality implementations on most minicomputer platforms and microcomputers. Among the latter 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 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.
Object Pascal is 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.12 It is descended from an earlier object-oriented version of Pascal named Clascal, which was available on the 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.
An Object Pascal extension was also implemented in the Think Pascal integrated development environment (IDE). The IDE includes the compiler and an editor with syntax highlighting and checking, a powerful debugger, and a class library.3 Many developers preferred Think Pascal over Apple's implementation of Object Pascal because Think Pascal offered a much faster compile–link–debug cycle, and tight integration of its tools. The last official release of Think Pascal was 4.01, in 1992. Symantec later released an unofficial version 4.5d4 at no charge.
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 an Object Pascal compiler for Macintosh that targeted both 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.45
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 Windows in 1994, they created a successor to Turbo Pascal, named 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 class in preference to object, the Create constructor and a virtual Destroy destructor (and negating having to call the New and Dispose procedures), properties, method pointers, and some other things. These were inspired by the ISO working 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) were ignored.
The Delphi language has continued to evolve over the years to support constructs such as dynamic arrays, generics and anonymous methods. The old object syntax introduced by Apple ("Old-Style Object Types") is still supported.6
Object Pascal compilers are available for a wide range of operating systems and architectures.
Main article: Pascal Script
Pascal Script (formerly InnerFuse) and DWScript (Delphi Web Script) are open-source Object Pascal interpreters and scripting engines written in Delphi. They support subsets of Object Pascal. DWScript can also compile Object Pascal code into JavaScript code (Smart Pascal), and supports just-in-time compilation (JIT). Modern Pascal provides 3 different interpreters: a command-line interface (CLI), Apache Module (Celerity), and CodeRunner (node.js like solution able to handle different scripts per port), besides the ability to compile and protect a script's source code.15
Here are several "Hello World" programs in different Object Pascal versions.
Still supported in Delphi and Free Pascal. FPC also packages its own substitutes for the libraries/units. Delphi does not. The Free Pascal 1.0 series and the FPC textmode IDE are the largest open codebases in this dialect. Free Pascal 2.0 was rewritten in a more Delphi-like dialect, and the textmode IDE and related frameworks (Free Vision) are the only parts in the TP version of Object Pascal.
Another example:
This works based on pointer copy, unless there is a specific allocation for a deeper copy.
Note that the object construct is still available in Delphi and Free Pascal.
The method implementation can also be made in a distinct location as in other Object Pascal dialects.
Many features have been introduced continuously to Object Pascal with extensions to Delphi and extensions to FreePascal. In reaction to criticism, Free Pascal has adopted generics with the same syntax as Delphi, provided Delphi compatibility mode is selected, and both Delphi (partial) and Free Pascal (more extensive) support operator overloading. Delphi has also introduced many other features since version 7,16 including generics. Whereas FreePascal tries to be compatible to Delphi in Delphi compatibility mode, it also usually introduced many new features to the language that are not always available in Delphi.
Tesler, Larry (1985). "Object Pascal Report". Structured Language World. 9 (3): 10–7. ↩
Tesler, Larry (February 4, 1985). "Object Pascal for the Macintosh" (PDF). Retrieved March 13, 2025. https://bitsavers.org/pdf/apple/mac/developer/MacApp/Object_Pascal_For_The_Macintosh_19850214.pdf ↩
Seiter, Charles (November 1990). "Think Pascal 3". Macworld. Vol. 7, no. 11. p. 236. https://archive.org/details/mac_MacWorld_9011_November_1990/page/n251/mode/1up ↩
Arnold, Brian; McCarthy, Guy (November 1995). "MacApp Pascal Rides again". MacTech. Vol. 11, no. 11. pp. 30–31. https://archive.org/details/eu_MacTech-1995-11/page/n31/mode/1up ↩
Arnold, Brian (February 1996). "MacApp 2 for PowerPC in Object Pascal". MacTech. Vol. 12, no. 2. pp. 25–32. https://archive.org/details/eu_MacTech-1996-02_OCR/page/n26/mode/1up ↩
Lischner, Ray (2000). Delphi in a nutshell: a desktop quick reference (1st ed.). Sebastopol, CA: O'Reilly and Associates. ISBN 1565926595. 1565926595 ↩
Community Letter: Embarcadero Technologies agrees to acquire CodeGear from Borland Archived 2018-03-02 at the Wayback Machine. Edn.embarcadero.com. Retrieved on 2013-07-21. http://edn.embarcadero.com/article/38132 ↩
"iPhone/iPod development". Free Pascal development team. Archived from the original on 2009-04-28. Retrieved 2009-04-13. http://wiki.freepascal.org/iPhone/iPod_development ↩
A Smart Book. Leanpub. 18 May 2012. Archived from the original on 25 May 2013. Retrieved 19 June 2013. https://leanpub.com/asmartbook ↩
Funa, Igor (2021). "Turbo51: Turbo Pascal Compiler for 8051 microcontrollers". Archived from the original on 2018-09-25. http://turbo51.com/ ↩
Draxler, Wolfgang. "WDSibyl: Visual Development Environment". Archived from the original on 2020-02-12. https://www.wdsibyl.org/ ↩
"EDM/2: WDSibyl". Archived from the original on 2021-03-24. https://web.archive.org/web/20210324031505/http://www.edm2.com/index.php/WDSibyl ↩
"EDM/2: List of Tools". Archived from the original on 2022-08-21. https://web.archive.org/web/20220821090646/http://www.edm2.com/index.php/List_of_Tools ↩
"eCSoft/2: The Complete OS/2 Software Encyclopedia: WDSibyl". Archived from the original on 2021-10-17. https://web.archive.org/web/20211017225456/https://ecsoft2.org/wdsibyl ↩
"Modern Pascal". Archived from the original on 2018-12-11. Retrieved 2018-10-22. http://www.modernpascal.com/ ↩
"New Delphi language features since Delphi 7". CodeGear. Archived from the original on 2008-07-02. Retrieved 2008-07-06. http://dn.codegear.com/article/34324 ↩