Object Pascal refers to a branch of object oriented derivatives of Pascal, mostly known as the primary programming language of CodeGear Delphi.
| Paradigm | imperative, structured, object-oriented |
|---|---|
| Designed by | originally by Apple and Niklaus Wirth |
| Typing discipline | static and dynamic (dynamic typing through Variants, array of const and RTTI), strong, safe |
| Major implementations | Delphi (x86 and .NET), Oxygene (.NET), Free Pascal (x86, AMD64/x86_64, PowerPC, ppc64, Sparc and ARM), Virtual Pascal (x86), TMT Pascal (x86), Turbo51 (Intel 8051) |
| Dialects | Apple, Turbo Pascal, objfpc, Delphi, Delphi.NET, Oxygene |
| Influenced by | Pascal, Smalltalk |
| Influenced | Java, C# |
Borland used the name "Object Pascal" for the programming language in the first versions of Delphi, but later renamed it to the "Delphi programming language". However, compilers that claim to be Object Pascal compatible are often trying to be compatible with Delphi source code.
CodeGear sells integrated development environments (IDEs) that compile the Delphi programming language to Microsoft Windows, the Microsoft .NET Framework and Linux. The open source Free Pascal project allows the language to be compiled for a range of operating systems including Linux, Mac OS/Mac OS X, Win32, Win64, Windows CE, and for several different hardware architectures. Also, a free compiler, Turbo51, is available for producing code for Intel 8051 chips.
Note that today Object Pascal is used collectively to refer to different dialects of the Pascal language with object-oriented programming extension, although these dialects are more or less compatible with CodeGear's implementation.
Contents |
Object Pascal is an extension of the Pascal programming language that was developed at Apple Computer by a team led by Larry Tesler in consultation with Niklaus Wirth, the inventor of Pascal. It is descended from an earlier object-oriented version of Pascal called Clascal, which was available on the Lisa computer.
Object Pascal was needed in order to support MacApp, an expandable Macintosh application framework that would now be called a class library. Object Pascal extensions and MacApp itself were developed by Barry Haynes, Ken Doyle, Larry Rosenstein, and tested by Dan Allen. Larry Tesler oversaw the project, which began very early in 1985 and became a product in 1986.
Apple dropped support for Object Pascal when they moved from Motorola 68K chips to IBM's PowerPC architecture in 1994.
Object Pascal extension also have been implemented in the Think Pascal IDE. The IDE includes not only the compiler, but also an editor with Syntax highlighting and checking, a very powerful debugger and a class library. Many developers preferred Think Pascal instead of MacApp because it offered a tight integration of its tools. The development stopped after the 4.01 version, because the company was bought by Symantec. The developers then left the project.
In 1986, Borland introduced similar extensions, also called Object Pascal, to the Turbo Pascal product for the Macintosh, and in 1989 for Turbo Pascal 5.5 for DOS.
When Borland refocused from MS-DOS to Windows in 1994, they created a successor to Turbo Pascal, called Delphi and introduced a new set of extensions to create what is now known as the Delphi language.
The development of Delphi started some time in 1993 and Delphi 1.0 was officially released in the US on 14 Feb 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 obviously inspired by the ISO working draft for object-oriented extensions, but many of the differences to Turbo Pascal's dialect (such as the draft's requirement that all methods be virtual) were ignored.
The Delphi language continued to evolve throughout the years to support new language concepts such as 64-bit integers and dynamic arrays.
There are many compilers that are more or less compatible with the Object Pascal language from Delphi. Many of these were created to enable the use of Object Pascal source code on different platforms, and under various licenses.
Pascal Script (formerly known as InnerFuse) is an open source Object Pascal interpreter/scripting engine written in Delphi. Supports a limited subset of Object Pascal.
program ObjectPascalExample; type THelloWorld = object procedure Put; end; var HelloWorld: THelloWorld; procedure THelloWorld.Put; begin WriteLn('Hello, World!'); end; begin New(HelloWorld); HelloWorld.Put; Dispose(HelloWorld); end.
program ObjectPascalExample; type PHelloWorld = ^THelloWorld; THelloWorld = object procedure Put; end; var HelloWorld: PHelloWorld; { this is a pointer to a THelloWorld } procedure THelloWorld.Put; begin WriteLn('Hello, World!'); end; begin New(HelloWorld); HelloWorld^.Put; Dispose(HelloWorld); end.
program ObjectPascalExample; type THelloWorld = class procedure Put; end; procedure THelloWorld.Put; begin Writeln('Hello, World!'); end; var HelloWorld: THelloWorld; begin HelloWorld := THelloWorld.Create; HelloWorld.Put; HelloWorld.Free; end.
Note that the object construct is still available in Delphi and Free Pascal (Delphi-compatible mode).
namespace ObjectPascalExample; interface type ConsoleApp = class class method Main end; THelloWorld = class method Put; end; implementation method THelloWorld.Put; begin Console.WriteLine('Hello, World!'); end; class method ConsoleApp.Main; begin var HelloWorld := new THelloWorld; HelloWorld.Put; end; end.
Many features have been introduced continuously to Object Pascal with extensions to Delphi, now also by Free Pascal. In reaction towards criticisms, Free Pascal have adopted generics, and both Delphi and Free Pascal now supports operator overloading (with different grammar, though). Delphi has also introduced many other features since version 7[1].
Although C++ and Java dominate the software industry market, Delphi has a considerable market share and strong presence[2].
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History