Pascal之父Niklaus Wirth:结构化的程序设计

51CTO开发频道年终巨献:架构师最怕程序员知道的十件事

1967年,当Pascal之父Niklaus Wirth(尼古拉斯·沃斯)编写最后一条Pascal编译器的代码后,他按照惯例为自己的这门语言取了一个数学家的名字,Pascal。这是为了纪念法国著名数学家和物理学家Blaise Pascal(布莱兹·帕斯卡)。

Pascal之父Niklaus Wirth:结构化的程序设计
 数学家和物理学家Blaise Pascal和他发明的计算机

为什么要纪念Blaise Pascal?因为他是世界上第一台计算机的创造者,你没听错,早在1641年Blaise Pascal就为做税务官的父亲制造了一台计算机,这是世界上第一台手摇计算机,可以计算六位数的加减法。其后十年里他对此继续进行改进,共造出50多台,现在还存有8台。当然,Blaise Pascal最为人所熟知的贡献还是国际压强单位的帕斯卡(Pa)和概率论。

Niklaus Wirth 1934年生于瑞士Winterthur(温特图尔),这是瑞士北部的一个小镇,群山环绕,风景优美;少年时代的Niklaus Wirth与数学家Pascal一样喜欢动手动脑,最大的爱好是组装飞机模型。1958年,Niklaus从苏黎世工学院取得学士学位后来到加拿大的莱维大学深造,之后进入美国加州大学伯克利分校获得博士学位。

Euler和PL360

上世纪六十年代初,Wirth出于一些学术考虑设计了自己的第一个编程语言Euler。自Euler开始,Wirth养成了一个习惯,将自己的学术成果或编程语言以著名数学家的名字命名,Euler就是为了纪念瑞士著名数学家Euler(欧拉)而命名。 Euler采用一种通用类型概念。在Euler中,数组(array),过程(procedure),以及转换(switch)这些量并不是通过标识符(identifier)来定义并命名的:与ALGOL相反,这几个量是和变量处于不同层级的,却与数字、布尔值常数等是同一层级。因此,在传统的数值和逻辑常量之外,Euler还添加了如下类型:

◆reference
◆label
◆symbol
◆list (array)
◆procedure
◆undefined

虽然Euler在学术上非常优秀,但在实用性上考虑并不周。无论如何,Wirth凭借Euler在编译器系统设计方面打造了很好的基础。

Pascal之父Niklaus Wirth:结构化的程序设计

接下来,沃思在斯坦福大学定义了另一种语言来描写Algol W的编译器,由此催生了新的语言PL360。PL360是作为辅助工具开发的,却出人意料地在许多地方获得应用。Algol W及PL360的成功奠定了Niklaus Wirth作为程序设计语言专家的地位。

Pascal语言

成名后的Wirth拒绝了斯坦福大学的挽留,于1967年回到瑞士,先在苏黎世大学任职,第二年转到母校苏黎世工学院。当时,计算机软件课程的教学基本通过数学模型、PL360或Basic进行。Wirth认为,这些编程语言无法满足程序设计思维的传递,他计划再开发一个更加适合教学的编程语言。

Niklaus Wirth很快实践了这个想法,不考虑商业用户,单纯面向计算机专业的学生。他在CDC6000上成功设计了一门编程教学语言,他用法国数学家Blaise Pascal命名它。Pascal严格的结构化形式、丰富完备的数据类型、高运行效率和较强的查错能力,大受学生欢迎;由于其适合于由微处理器组成的计算机系统,不久就广泛流传开来。

Pascal之父Niklaus Wirth:结构化的程序设计

Pascal语言可以被方便地用于描述各种算法与数据结构。尤其是对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一,在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。在C语言问世以前,Pascal成为最受欢迎的编程语言之一。

意外收获

相关推荐