关于作者

 一个毕业于北京大学数学力学系,在中国科学院计算所、计算中心和网络中心工作过,在澳大利亚科工组织DMS、香港浸会学院数学系和中国21世纪议程管理中心等处工作过,多次获国家和中科院科技奖并享受政府特殊津贴的退休老头。现在在【中国科普博览】网“科学新语林”栏目里开设一个《数学与计算机》的个人专栏,愿和爱好数学与计算机的各界网友和青少年朋友,谈谈对数学与计算机的看法、想法。

通用编译语言Pascal

张建中
2014年06月17日
8.?通用编译语言Pascal
图片1
Pascal语言是一种计算机通用的高级程序设计语言,由瑞士联邦技术学院尼克劳斯 维尔特(Niklaus?Wirth)教授于六十年代末设计并创立,以纪念十七世纪法国著名哲学家和数学家Blaise?Pascal,现已成为广泛使用的编程语言之一。维尔特一生还写作了大量有关程序设计、算法和数据结构的著作,因此,他获得了1984度的“图灵奖
Pascal语言主要特点有:结构化形式严格;数据类型丰富完备;运行效率高;查错能力强;语言语法严谨,层次分明,程序易写,具有很强的可读性。Pascal是最早出现的结构化编程语言,适于描述数值和非数值的问题。
Pascal语言问世以来的四十余年间,先后产生了适合于不同机型的各类版本,其中影响最大的莫过于Turbo?Pascal系列软件。它是由美国Borland公司设计、研制的一种适用于微机的Pascal编译系统。该编译系统由1983推出的1.0版本发展到1992年推出的7.0版本,版本不断更新,功能更趋完善。Turbo?Pascal语言是编译型程序语言,它提供了一个集成环境的工作系统,集编辑、编译、运行、调试等多功能于一体。
在高级语言发展的过程中,Pascal语言是一个重要的里程碑,是第一个系统地体现结构化程序设计概念的语言。结构化程序设计主要由三种基本结构(顺序结构、选择结构、循环结构)组成,后来有人把函数和过程作为第四种基本结构。这四种结构对外看都只有一个入口和一个出口,结构清晰,避免了由GOTO语句所引起的混乱。另外,在程序设计方法方面,Pascal语言主张采用自顶向下,逐步求精的方法。即将一个大的复杂问题,划分成若干小的易解决的问题。每个小问题,又可划分成一些更小的、更易解决的问题。这样,只要把每个小问题都解决了,整个大问题也就解决了。这种方法也为多人合作编程提供了方便。
在中国信息学奥林匹克竞赛中,比较常用的Pascal编程工具是Turbo?Pascal这也是世界上使用人数最多的Pascal编程工具——它拥有编译速度快的先进编译器和功能强大而又简便易用的集成开发环境。Turbo?Pascal系列软件作为开发系统软件与实施科学计算和教学的有力工具,发挥着越来越大的作用:IOI(国际奥林匹克信息学竞赛)Pascal语言作为三种程序设计语言之一,NOI(全国奥林匹克信息学竞赛)Pascal语言和C语言、C++语言作为竞赛使用的程序设计语言,在大学中,Pascal语言也常常被用作学习数据结构与算法的教学语言。
Pascal语言有5个主要版本,分别是Unextended?PascalExtended?PascalObject-Oriented?Extensions?to?PascalBorland?PascalDelphi?Object?Pascal。其中,Unextended?PascalExtended?PascalObject-Oriented?Extensions?to?Pascal是由Pascal标准委员会所创立和维护的,Unextended?Pascal类似于瑞士的Niklaus?Wirth教授和K.Jensen1974年联名发表的Pascal用户手册和报告,而Extended?Pascal在其基础上进行了扩展,加入了许多新的特性,它们都属于正式的Pascal语言标准;Object-Oriented?Extensions?to?Pascal是由Pascal标准委员会发表的一份技术报告,它在Extended?Pascal的基础上增加了一些用以支持面向对象程序设计的特性,但它属于非正式的标准。
Borland?PascalDelphi?Object?Pascal是由Borland公司专门为其开发的编译工具设计的Pascal语言,前者是用于DOSTurbo?Pascal系列和Windows?3.xTurbo?Pascal?for?Windows的传统高级语言,后者是用于WindowsDelphiLinuxKylix面向对象程序设计语言,它们都不是正式的Pascal标准,但具有专利性。由于Turbo?Pascal系列和Delphi功能强大并且广为流行,Borland?PascalDelphi?Object?Pascal已自成为一种标准,并为许多人所熟悉。
传统Pascal语言的标准库中缺乏对网络编程的支持,并且仅通过自带的graph单元难以实现较好的图形界面(GUI),这些问题大多需要嵌入汇编语言代码才能得到解决,这就导致传统Pascal语言缺乏与机器语言的接口。作为一个面向过程的编程语言,和90年代兴起的面向对象的语言相比,传统Pascal语言不利于大型软件的开发。
随着Turbo?Pascal逐渐被淘汰,NOI和IOI已经指定Free?Pascal为比赛使用的Pascal编程工具。Free?Pascal?是32/64的Pascal编程工具,属于自由软件,可用于各种操作系统。根据编译选项的不同,它可以选择使用Turbo?Pascal兼容语法、Delphi语法或者其它语法编写程序。由于它拥有32/64位的编译器,而且一直在更新、发展,因此它的功能比Borland?Pascal更加强大,还拥有许多现代程序设计的特征。
从使用者的角度来看,Pascal语言有以下几个主要的特点:
⒈?结构化????Pascal语言可以方便地写出结构化程序。这就保证了程序的正确性和易读性。在结构化这一点上,Pascal语言比其它算法语言更好一些。
⒉?数据类型丰富????Pascal语言提供了整数型、实数型、字符型、布尔型、枚举型、子界型以及由以上类型构成的数组类型、集合类型、记录类型和文件类型。此外,还提供了许多其它语言中没有的指针类型。丰富的数据结构和结构化性质,使Pascal语言可以方便地被用来描述复杂的算法。
⒊?适用性好????Pascal语言既适用于数值运算,也适用于非数值运算。有些语言只适用于数值计算,有些语言则适用于商业数据处理和管理领域。Pascal语言的功能较强,能广泛应用于各种领域。
⒋?书写较自由????不像有些算法语言对程序的书写格式有严格的规定,Pascal语言允许一行写多个语句,一个语句也可以分写在多行上,这样就使Pascal程序能够写得象诗歌格式一样优美,便于阅读。但值得注意的是,Pascal语言一行不可超过257字符。
基于以上特点,许多学校选择Pascal语言作为程序设计课程的一种主要语言。它能让学生受到严格而良好的程序设计的基本训练,还可以培养学生结构化程序设计的风格。