Object Pascal
|
Contents |
Early History at Apple
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 were 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 renamed Turbo Pascal to Delphi and introduced a new set of extensions which were called Object Pascal but featured an incompatible syntax using the keyword class
instead of object
, the Create constructor and 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.
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.