Object Pascal 是经典编程语言 Pascal 的一个扩展版本,引入了面向对象编程(OOP)的关键特性,如类与方法。这一革新性发展是在 Pascal 的创始人 Niklaus Wirth 的协商下,由 Larry Tesler 带领的团队在苹果公司完成的。
起源
Object Pascal 的前身可以追溯到名为 Clascal 的语言。Clascal 是苹果公司个人办公系统(POS)部门——后来分别更名为 Lisa 部门和 32 位系统部门——在 1983 年开发的一种面向对象的编程语言及其配套编译器。Clascal 主要用于为 Lisa Office System 编写应用程序,后者是当时苹果 Lisa 计算机的操作环境。
Lisa 计算机
发展历程
自二十世纪七十年代起,Pascal 成为了编程界的主流语言之一,其高质量的实现遍布众多小型计算机和微型计算机平台。UCSD Pascal 系统以其跨平台特性尤为突出,苹果公司便基于此获得了授权,并将其应用于 Apple II 和 Apple III 的 Apple Pascal 系统。
随着 Apple Lisa 项目的启动,Pascal 再次被选为新平台的主要编程语言,不过这一次是以编译器的形式而非解释器来实现。这一转变标志着 Pascal 在苹果产品中的重要地位。
Object Pascal 的设计旨在支持 MacApp,这是一个可扩展的应用程序框架,后来发展成为了类库。这一项目在 1985 年初启动,并于次年正式推出,其主要开发者包括 Barry Haynes、Ken Doyle 和 Larry Rosenstein。
值得一提的是,尽管 Clascal 未能持续发展,但 Object Pascal 却因其强大的功能成为 Borland 公司 Delphi 开发平台的核心语言,并在软件开发领域占据了重要的一席之地。
开发工具的发展
尽管苹果提供了自己的 Object Pascal 实现,但 Think Pascal 集成开发环境(IDE)因其更快的编译 - 链接 - 调试周期和更好的工具集成而受到许多开发者的青睐。然而,随着时间推移,苹果在 1994 年向 PowerPC 架构迁移时,逐步停止了对 Object Pascal 的支持。
即便如此,Metrowerks 的 CodeWarrior 仍然为 Macintosh 平台提供了 Object Pascal 的支持,使得开发人员能够继续使用这一语言进行开发,即使在苹果官方支持结束后仍能保持一定的延续性。
Borland, Inprise, CodeGear, and Embarcadero
1986年,Borland为Macintosh的Turbo Pascal产品引入了类似的面向对象扩展,命名为Object Pascal,并在1989年为DOS平台的Turbo Pascal 5.5也加入了这一扩展。随着1994年Borland将重心从DOS转向Windows,他们推出了Turbo Pascal的继承者——Delphi,这是一款集成了新面向对象特性的语言。
Delphi 1.0集成开发环境
Delphi的开发始于1993年,并于1995年2月14日在美国正式发布。尽管原有的使用Turbo Pascal对象模型编写的代码依然可以被编译,但Delphi引入了一套全新的语法体系,包括使用class
关键字替代object
、Create
构造函数及虚拟Destroy
析构函数,并且不再需要调用New
和Dispose
过程。这些变化受到了ISO面向对象扩展草案的启发,但同时保留了Turbo Pascal方言中的许多特性,如并非所有方法都必须是虚拟的。
随着时间的推移,Delphi语言不断进化,逐渐支持了动态数组、泛型以及匿名方法等多种现代编程结构,使其在软件开发领域保持着强大的竞争力。
Embarcadero Technologies 于 2008 年收购了 Delphi,销售 Delphi集成开发环境 (IDE),该环境将 Object Pascal 的 Delphi 方言编译到 Windows 和 macOS、iOS、Android 和 Web。
Delphi 12 集成开发环境
“Hello World” 程序示例
Apple version 苹果版
program ObjectPascalExample;
type
THelloWorld = object
procedure Put;
end;
var
HelloWorld: THelloWorld;
procedure THelloWorld.Put;
begin
ShowMessage('Hello, World!');
end;
begin
New(HelloWorld);
HelloWorld.Put;
Dispose(HelloWorld);
end.
Delphi 和 Free Pascal 版本
program ObjectPascalExample;
type
THelloWorld = class
procedure Put;
end;
procedure THelloWorld.Put;
begin
Writeln('Hello, World!');
end;
var
HelloWorld: THelloWorld; { this is an implicit pointer }
begin
HelloWorld := THelloWorld.Create;
{ constructor returns a pointer to an object of type THelloWorld }
HelloWorld.Put;
HelloWorld.Free;
{ this line deallocates the THelloWorld object pointed to by HelloWorld }
end.
Object Pascal 的持续进化
Object Pascal 作为一种编程语言,在其发展历程中不断吸收新特性,尤其是在 Delphi 和 Free Pascal 这两个主要实现中。面对来自社区的声音,尤其是关于语言现代化的需求,Free Pascal 团队选择了一条与 Delphi 语法保持一致的道路,尤其是在启用了 Delphi 兼容模式的情况下。这意味着,不仅在语法层面实现了互操作性,而且两者都开始支持诸如运算符重载等功能——尽管在实施范围上有所不同,Delphi 在这方面显得更为保守,而 Free Pascal 则走得更远。
自 Delphi 7 版本以来,该环境迎来了多项更新,其中包括对泛型的支持等重要特性。值得注意的是,尽管 Free Pascal 在追求与 Delphi 的兼容性方面做出了努力,但它并未止步于此。相反,Free Pascal 继续在其体系内探索并集成了一系列创新功能,这些功能往往超越了 Delphi 的边界,展现了其作为一个开源项目的灵活性与前瞻性。
这种双重发展的策略不仅丰富了 Object Pascal 生态系统,也使其成为了连接传统开发实践与现代编程趋势之间的桥梁。
标签:编程语言,Delphi,Object,HelloWorld,Pascal,THelloWorld,Free From: https://blog.csdn.net/2404_87526689/article/details/142897067