Object Pascal

From Wikipedia, the free encyclopedia

Object Pascal is an object oriented derivative of Pascal mostly known as the primary programming language of Borland Delphi. It is also known as the Delphi programming language when describing the dialect used by Borland Delphi, and a Modern Pascal since it is not Standard Pascal.

Borland used the name "Object Pascal" for the programming language in the first versions of Borland 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.

Borland 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 X, Win32, Win64, Windows CE, and for several different hardware architectures.

Contents

[edit] Early history at Apple

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.

[edit] The Borland years

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 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. It featured an incompatible 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.

[edit] Version 3

Delphi 3.0 documentation says it works with Microsoft Windows 95, NT 3.51 (SP5+), or NT 4.0 Workstation. It came with a Delphi-edition of the InstallShield Express product. Depending on options installed, 50 to 170 MB of disk space on the developer's machine were required. Required hardware was shown as:

  • Windows 95; 80486 or better processor; 8Mb of system memory (12 recommended); VGA (640x480 pixel) or higher resolution monitor; CD-ROM drive; and a pointing device.
  • Windows NT; 80486 or better processor; 16Mb of system memory; VGA (640x480 pixel) or higher resolution monitor; CD-ROM drive; and a pointing device.

Version 3 had options for native database connectivity with Oracle, Sybase Db-Lib, Microsoft SQL Server, Informix, DB/2, and InterBase back-ends. Some packages were bundled with Borland's InterBase SQL which was supposed to run on either Windows 95 or NT. This development version of Interbase was limited to four simultaneous users.

A complete copy of Delphi 1.0 was included on the CD for those still doing 16-bit Windows 3.1 development.

[edit] Compilers

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.

  • Borland Delphi is probably the best known compiler. It targets Win16, Win32 and .NET 1.x, 2.0.
  • Borland Kylix is a Linux variant of Delphi, and only targets Intel 32-bit Linux using Qt. It's not updated anymore and starting to show its age. Modern distributions often don't work out of the box with this tool.
  • Free Pascal is a command-line compiler aimed at source compatibility with the core feature set of both the Turbo Pascal and the Delphi dialects. The current version, 2.2, is highly Delphi6/7 compatible. FPC generates code for x86, AMD64, PowerPC, SPARC and ARM processors under various operating systems, including Win32, Win64, Linux, FreeBSD, Mac OS and Mac OS X (including an Xcode integration kit). Beyond command-line usage, several development environments are available for Free Pascal, in particular the Lazarus IDE.
  • GNU Pascal (A separately distributed part of the GNU Compiler Collection) While formally not aimed at the Borland dialects of Pascal, it does contain a Borland Pascal compatibility mode, and is very slowly incorporating a few Delphi language features. It is not suitable for recompiling large bodies of Delphi code directly, but is noteworthy as having prolific support for operating systems and hardware architectures.
  • Virtual Pascal is a x86 32-bit Turbo Pascal and Delphi compatible compiler aimed mainly at OS/2 and Windows, though it developed a DOS+ Extender and an experimental Linux cross-compiler too. The compiler is stuck at about the level of Delphi V2, the site has been down for nearly one and a half year now, and development of Virtual Pascal has stopped. Nevertheless, of the free alternatives, it is still the one with the best polished IDE and debugger, though Free Pascal is catching up.
  • Oxygene (formerly known as Chrome) is an Object Pascal compiler from RemObjects Software that integrates into Visual Studio. It is also available as free command-line compiler that runs native on .NET/Mono. It targets the .NET and Mono platforms.

[edit] Interpreters

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.

[edit] Example "hello world" programs

[edit] Apple's 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.

[edit] Turbo Pascal's Object Pascal

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.

[edit] Delphi And Free Pascal's Object Pascal

program ObjectPascalExample;

   type
      THelloWorld = class
         procedure Put;
      end;

   var
      HelloWorld: THelloWorld;
procedure THelloWorld.Put; begin WriteLn('Hello, World!'); end; begin HelloWorld := THelloWorld.Create; HelloWorld.Put; HelloWorld.Free; end.

However, the above syntax/notation is not required - it is optional to use objects, as seen in the below hello world alternative:

program Example;
begin
   WriteLn('Hello World');
end.

[edit] Oxygene Object Pascal

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.

[edit] Object Pascal in the software market

Although C++, .NET and Java dominate the software industry market, Delphi has a considerable market share and strong presence [1].

[edit] See also

[edit] External links

[edit] References

  1. ^ TIOBE index. TIOBE Software. Retrieved on 2008-04-25.

[edit] CodeGear

[edit] RemObjects Software

[edit] Introduction to Object Pascal

[edit] Delphi communities

[edit] Delphi's Object Pascal Language guide

[edit] Free Pascal Object Pascal reference guide

[edit] Tools For Object Pascal

[edit] GNU Pascal

[edit] paxCompiler