Object Pascal Article Index for
Object
Website Links For
Object
 

Information About

Object Pascal




Object Pascal was a creation of Niklaus Wirth and Larry Tesler . It was created at Apple Computer in early 1985 through their collaboration. It added object-oriented extensions to the existing Pascal Programming Language .

Object Pascal was needed in order to allow the creation of MacApp , an expandable Macintosh application framework that would now be called a class library. Object Pascal extensions and MacApp itself were done by Barry Hanes , Ken Doyle , Larry Rosenstein , and tested by Dan Allen . Larry Tesler oversaw the project which began in very early 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.


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. It featured an incompatible syntax using the keyword class instead of 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.


THE OPEN SOURCE COMPILERS APPLE SUPPORT


At the moment (2005) both Free Pascal (FPC) and GNU Pascal (GPC) are adding Mac Pascal compatibility. FPC allows mingling of objects in Delphi mode and Apple Pascal mode to a certain extent. (IOW combining of classic and Borland style Object Pascal)


OBJECT PASCAL COMPILERS


Besides the already mentioned Delphi , Free Pascal (FPC) and GPC, there are some other compilers, mostly Delphi clones that implement parts of
Object Pascal, either Apple or Borland dialect:

  • Virtual Pascal(Delphi dialect) A basic TP and Delphi 2 compatible compiler. Supports OS/2, Windows, Dos and a bit of Linux. The compiler is currently not developed anymore.

  • Chrome Programming Language . Chrome is an Object Pascal plug-in compiler for Visual Studio and as a native .NET/Mono command-line compiler. Target .NET and Mono platforms. Newest of the compiler options.



HELLO WORLD EXAMPLE


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.


Turbo Pascal's Object Pascal

program ObjectPascalExample;

type
PHelloWorld = ^THelloWorld;
THelloWorld = object
procedure Put;
end;

var
HelloWorld: PHelloWorld;

procedure THelloWorld.Put;
begin
WriteLn('Hello, World!');
end;

begin
New(HelloWorld);
HelloWorld^.Put;
Dispose(HelloWorld);
end.


Delphi'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.


Chrome's Object Pascal

-> Chrome Programming Language

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.


EXTERNAL LINKS

Delphi's Object Pascal Language guide:


Free Pascal Object Pascal reference guide:



GNU Pascal(GPC) information