毫不过份地说,Pascal是Algol语言家族中几十年技术进化中,最为成功的继承人。1968年,Algol组织的早期成员之一,被奉为软件圭臬的“程序=算法+数据结构”的提出者,瑞士苏黎士理工学院(the Swiss Federal Institute of Technology, ETH-Zurich)的尼古拉斯-沃斯(Niklaus Wirth)教授开始着手开发一个演化版的Algol,他决定简化和剔除原Algol一些晦涩难用的功能,并增加自定义数据类型的能力,以弥补已有简单数据类型的不足。另外,可以支持动态数组、使用保留关键字等等。 到1970年,这个语言的第一个实现已经在CDC 6000上完成开发。
1971年, Wirth教授通过多途径发表了一种高级结构化语言的规范说明,人们惊奇地发现,这种语言酷似Algol而又青出于蓝,条件判断语句“Case”和返回值参数传递的语法与Algol同出一辙,但记录结构却与 Cobol和PL/1有三分神似,还似乎有意借鉴了Fortran在某些特性上的得失,读起来如同自然语言,写起来也很容易上手,通过严格的类型检查,可以确保数据类型不会在声明与使用时发生误差,整体上具有清晰明快而完整一致的语法风格。这位光复Algol的王位继承人,最终以17世纪的法国伟大的数学家和哲学家布莱斯.帕斯卡(Blaise Pascal)命名。
Wirth教授可能也没想到,这个本计划只被用于大学教授数据结构的小资语言,自此名声鹊起,成就了后三十年的一代传奇,也为他后来(1984年)赢得图灵奖(Turing Prize)的至高荣誉埋下了伏笔。而赫赫有名的C语言直到1972才在Unix的开发过程中无心插柳应运而生。显然,这两者最初瞄准的是不同的方向:C是Dennis Ritchie用Assembly写累了Unix而找到的取巧途径,意在用高级语言的表达驾驭系统底层的桀骜马车;而Pascal,从诞生的那一天起,就是为营造一个有秩序的、易维持的应用计算新世界。甚至于出现了C构建的Unix、Linux和Windows,Pascal(准确的说是Wirth教授和Apple共同开发的Object Pascal)造就Lisa和Macintosh的有趣现象(注:目前的Mac OS X 已改用源于FreeBSD的Darwin 内核操作系统,某种意义上也折射着Pascal的没落),谁又能料想,三十年后两大王朝的子孙却在Microsoft新贵.NET的麾下拱手称臣,讲起了殊途同归的Common Language呢?
本文原创作者:火鸟李国平,网上转载请注明出处
本文参考:
taoyue.com: Learn Pascal tutorial - History
http://www.taoyue.com/tutorials/pascal/history.html
A Brief History of Pascal
http://burks.bton.ac.uk/burks/language/oberon/obhist/history.htm
historic documents in computer science and engineering