Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/History/zh CN

한국어 · Deutsch · English · Español · Français · Italiano · Български · Русский · 中文(中国) · 日本語

历史 (原作者: Tao Yue, 状态: 已更改)

起源

Pascal语言产生于ALGOL,一种打算用于科学计算的程序语言。一个国际委员会在苏黎世召开的会议上将ALGOL设计为一种平台无关的语言。这让他们可以非常自由地为ALGOL语言设计一些特性,但同时也使得为它编写编译器更加困难。那个年代的计算机还缺乏一些今天我们看来非常理所当然的硬件功能特性。许多平台上编译器的缺乏,以及它语言中指针和字符类型等许多基本数据类型的缺乏,导致ALGOL语言并没有被广泛地接受。科学家和工程师们都偏向于使用FORTRAN,一种在许多平台上都可以使用的语言。ALGOL语言除了偶尔用来描述算法之外,基本淡出了人们的视野。

Wirth发明Pascal语言

20世纪60年代,仍有几位计算机科学家继续扩展ALGOL语言。其中有一位就是瑞士联邦理工学院(ETH-Zurich)的Niklaus Wirth博士,他是ALGOL语言原始创建小组的成员。1971年,他发表了一份描述一种高度结构化的语言的规范,这种新语言许多方面都跟ALGOL语言非常类似。他用17世纪法国哲学家、数学家Pascal的名字为这种新语言命名,数学家Pascal建造了世界上第一台可用的机械式数字计算器。

Pascal语言是一种非常面向数据的语言,给了程序员自定义数据类型的能力。伴随这种自由而来的是严格的类型检查,这防止了数据类型的混淆。Pascal语言打算成为一种教学语言,它也确实被广泛地应用于这方面。不像FORTRAN语言,Pascal语言是流畅的,读起来非常像自然语言,它的代码很容易理解。

UCSD版本的Pascal语言

导致ALGOL语言的终结的原因之一就是为它建造一个编译器非常困难。Wirth博士避免这个问题的办法是把Pascal语言编译成一种平台无关的中间目标代码,然后让另外一个程序来把这种中间代码转换成可执行代码。

加州大学圣地亚哥分校(UCSD)的Ken Bowles教授从中抓住机会把Pascal编译器移植到当时最流行的微型计算机Apple II系统中。UCSD P-System成为一个标准,被广泛用于各个大学。这主要得益于Apple II相比于大型主机低廉的价格,而当时像FORTRAN等其他语言都只能运行在大型主机上。UCSD P-System的影响力可以从IBM的为它革命性的个人计算机做的广告中看出来,IBM宣扬说它的个人计算机支持三种操作系统:Digital Research公司的CP/M-86操作系统,Softech的UCSD P-System和微软公司的PC-DOS系统。

Pascal成为标准

到20世纪80年代为止,Pascal已经被各个大学广泛接受,有两件事让它更加流行。

第一,教育考试服务中心,一个管理美国主要大学入学考试的机构,决定在它的高中生AP考试中加入计算机科学考试。这个考试选用了Pascal语言。因此,中学生和大学生开始学习Pascal语言。Pascal语言直到1999年都是AP考试的官方语言,后来被C++语言替代,不久又被Java语言替代。

第二,一个叫Borland International的小公司发布了IBM个人计算机上的Turbo Pascal编译器。这个编译器由Anders Hejlsberg设计,他后来在微软公司领导了C#语言开发小组,并向计算机界重新引入了托管代码。

Turbo Pascal真的是革命性的。它采取了一些捷径,对标准Pascal语言做了一些修改,但这些都是小幅度的,并且这帮助它实现了它最大的优势:速度。Turbo Pascal用极快的速度编译:每分钟几千行。当时PC平台的编译器都是缓慢而且臃肿的。当Turbo Pascal产生后,令人耳目一新。不久,Turbo Pascal成为PC平台事实上的编程标准。当PC杂志发表实用程序的源代码时,它通常都是汇编代码或者Turbo Pascal代码。

同时,苹果公司推出了它的Macintosh系列计算机。由于当时Pascal语言是出类拔萃的结构化程序设计语言,苹果公司选择Pascal语言作为Mac系统的标准程序设计语言。当程序员收到Mac系统编程的API和样例代码时,它们都是用Pascal语言写成的。

扩展

从Turbo Pascal的1.0版本到7.0版本,Borland公司继续扩展这门语言。原始Pascal语言被批评的地方之一就是它缺乏对模块的单独编译能力。Wirth博士甚至设计了一门新的程序设计语言,Modula-2,来解决这个问题。Borland公司通过Pascal语言的单元功能来给它加入模块。

到7.0版本为止,已经添加了许多特性。其中之一就是DPMI(DOS保护模式接口),一种在保护模式下运行DOS程序的方式,使得速度进一步增加,并且突破了DOS下的640K内存访问屏障。Turbo Vision,一个基于文本的窗口系统,允许程序员快速创建漂亮的界面。当5.5版本中加入了苹果公司的面对对象Pascal语言扩展,Pascal甚至变成了面对对象的语言。当Windows 3.0操作系统面世的时候,Borland公司创建了Windows平台的Turbo Pascal,将Pascal语言的快速和简单引入了图形化用户界面中。看上去Pascal语言的未来是相当稳定的。

世界变了

然而,事实并不是这个样子的。20世纪70年代,美国电话电报公司(AT&T)贝尔实验室的Dennis Ritchie和Brain Kernighan创造了C程序设计语言。然后Ritchie又和Ken Thompson设计了UNIX操作系统。当时,AT&T公司在美国电话服务领域拥有政府批准的垄断权。作为垄断的后果,它的电话事业受到管制,并且被禁止涉足计算机事业。AT&T公司在研究操作系统上看不到市场,就免费把UNIX操作系统连同源代码一起送给了一些大学。因此,一整代的计算机科学学生在他们的大学计算机语言和操作系统课程中学习C语言。慢慢地,C语言毫无疑问开始渗透入了计算机程序设计领域。

当90年代各大公司转投其他编程语言时,Pascal语言遭受了一次重大的打击。例如微软公司致力于VB和C语言,而苹果公司把它的API从Pascal语言迁移到C语言,后来又迁移到Objective C。虽然缺乏操作系统厂商的支持,Pascal语言仍然通过Delphi和Free Pascal保留了一大批追随者。

学习Pascal语言的好处

尽管已经失去了它先前的统治地位,Pascal仍然非常有用,它的优势之一就是它有非常清晰的语法,它用普通单词,例如begin和end,来表达概念,使得它的代码更容易阅读和维护。

另外一个原因:高速度和小尺寸。Pascal编译器是极其快速的,连Delphi和Free Pascal也不例外。同样尺寸的源程序,Pascal程序员只需要等一分钟就能编译好,C程序员却可能要等上好几个小时。除此之外,从Delphi IDE和Lazarus IDE来看,Pascal的IDE在生产能力方面仍然是世界领先的。

同时,Pascal一直深受许多大学亲睐。此外,Pascal语言非常适合编程教学,而且一直如此。学生很难写错程序。在教学简单的面对过程编程时,Pascal仍然是一个好的选择。在美国之外,Pascal已经在教育方面使用了更长的时间,并且一直是国际信息学竞赛的官方语言。在许多技术性职业中,一点基本的编程背景是很有用的,而Pascal比C/C++更容易学习。

如今Pascal通过Delphi,Free Pascal和lazarus在市场上保持着一个小生态环境。许多小规模免费软件,共享软件,开源软件和商业软件都是用Pascal/Delphi写的。所以享受学习它吧!它是一种很好的计算机编程入门。它不像C语言那么危险,不像C++那样令人迷惑,也不像Java那样慢。

上一页 目录 下一页

From the Free Pascal wiki, page "Basic Pascal Tutorial/History/zh CN", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 1, last changed by WikiArchive .

Edited on wiki.freepascal.org by 4 people, 2013–2022

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
MemoTranslating the English page into simplified Chinese, the "next" is linked to a simplified Chinese page which is about to be translated.
FTurtle
TrevTrev moved page Object Pascal History/zh CN to Pascal History/zh CN: Original name was misleading; not object Pascal (minor)
TrevUpdated for name change from Object Pascal to Basic Pascal;
Kai BurghardtKai Burghardt moved page Pascal History/zh CN to Basic Pascal Tutorial/History/zh CN: tidy up main name space: create subpage hierarchy for basic Pascal tutorial [cf. [[Special: PermaLink/149778#Cl... (minor)
Kai Burghardtbypass redirects [cf. discussion]
Kai Burghardtbypass [previously missed] redirect [cf. discussion]
Kai Burghardtbypass language bar/categorization template redirect [cf. discussion] (minor)

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.