[拼音]:chengxu sheji yuyan
[外文]:programming language
用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有三个方面的因素,即语法、语义和语用。语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者。语用表示程序与使用者的关系。
语言的好坏不仅影响到程序使用是否方便,而且涉及到程序人员所写程序的质量。
基本成分语言的种类千差万别。但是,一般说来,基本成分不外四种。
(1)数据成分:用以描述程序中所涉及的数据;
(2)运算成分:用以描述程序中所包含的运算;
(3)控制成分:用以表达程序中的控制构造;
(4)传输成分:用以表达程序中数据的传输。
分类按语言级别,有低级语言和高级语言之分。低级语言包括字位码、机器语言和汇编语言。它的特点是与特定的机器有关,功效高,但使用复杂、繁琐、费时、易出差错。其中,字位码是计算机唯一可直接理解的语言,但由于它是一连串的字位,复杂、繁琐、冗长,几乎无人直接使用。机器语言是表示成数码形式的机器基本指令集,或者是 *** 作码经过符号化的基本指令集。汇编语言是机器语言中地址部分符号化的结果,或进一步包括宏构造。
高级语言的表示方法要比低级语言更接近于待解问题的表示方法,其特点是在一定程序上与具体机器无关,易学、易用、易维护。当高级语言程序翻译成相应的低级语言程序时,一般说来,一个高级语言程序单位要对应多条机器指令,相应的编译程序所产生的目标程序往往功效较低。
按照用户要求,有过程式语言和非过程式语言之分。过程式语言的主要特征是,用户可以指明一列可顺序执行的运算,以表示相应的计算过程。例如,FORTRAN,COBOL,ALGOL60等都是过程式语言。非过程式语言的含义是相对的,凡是用户无法指明表示计算过程的一列可顺序执行的运算的语言,都是非过程式语言。著名的例子是表格的生成程序(RPG)。它实质上不是语言,使用者只须指明输入和预期的输出,无须指明为了得到输出所需的过程。
按照应用范围,有通用语言和专用语言之分。目标非单一的语言,称为通用语言,例如 FORTRAN、COBOL、ALGOL60 等都是通用语言。目标单一的语言称为专用语言,如APT等。
按照使用方式,有交互式语言和非交互式语言之分。具有反映人-机交互作用的语言成分的称为交互式语言,如BASIC语言就是交互式语言。语言成分不反映人-机交互作用的称非交互式语言,如FORTRAN、COBOL、ALGOL60、PASCAL等都是非交互式语言。
按照成分性质,有顺序语言、并发语言和分布语言之分。只含顺序成分的语言称为顺序语言,如 FORTRAN、COBOL 等都属顺序语言。含有并发成分的语言称为并发语言,如并发PASCAL、MODULA和ADA等都属并发语言。考虑到分布计算要求的语言称为分布语言,如MODULA*便属分布语言。
传统的程序设计语言大都以·诺伊曼式的计算机为设计背景,因而又称为诺伊曼式语言。J.巴克斯于1977年提出的函数式语言,则以非诺伊曼式的计算机为设计背景,因而又称为非诺伊曼式语言。
主要语言举例(1)APT(Automatically Program-med Tools)──自动数控程序:第一个专用语言,用于数控机床加工,1956。
(2)FORTRAN(FORmula TRANslation)──公式翻译程序设计语言:第一个广泛使用的高级语言,为广大科学和工程技术人员使用计算机创造了条件,1956。
(3)FLOW-MATIC:第一个适用于商用数据处理的语言,其语法与英语语法类似,1956。
(4)IPL-V(Information Processing Language V)──信息处理语言-V:第一个表处理语言,可看成是一种适用于表处理的假想计算机上的汇编语言,1958。
(5)COMIT(COmpiler Massachusetts Institute of Technology)──马萨诸塞州理工学院编译程序:第一个现实的串处理和模式匹配语言,1957。
(6)COBOL(COmmon Business Oriented Lan-guage)──面向商业的通用语言:使用最广泛的商用语言,1960。
(7)ALGOL60(ALGOrithmic Language 60)──算法语言60:程序设计语言由技艺转向科学的重要标志,其特点是局部性、动态性、递归性和严谨性,1960。
(8)LISP(LISt Processing)──表处理语言:引进函数式程序设计概念和表处理设施,在人工智能的领域内广泛使用,1960。
(9)JOVIAL(Jules Own Version of IAL)──国际算法语言的朱尔斯文本:第一个具有处理科学计算、输入-输出逻辑信息、数据存储和处理等综合功能的语言。多数JOVIAL编译程序都是用JOVIAL书写的,1960。
(10) GPSS(General-Purpose Systems Simulator)──通用系统模拟语言:第一个使模拟成为实用工具的语言,1961。
JOSS(Johnniac Open-Shop System)──琼尼阿克开放系统:第一个交互式语言,它有很多方言,曾使分时成为实用,1964。
FORMAC (FORmula MAnipulation Compiler)──公式处理编译程序:第一个广泛用于需要形式代数处理的数学问题领域内的语言,1964。
SIMULA (SIMUlation LAnguage)──模拟语言:主要用于模拟的语言,是ALGOL60的扩充,1966。SIMULA67是1967年SIMULA的改进。其中引进的“类”概念,是现代程序设计语言中“模块”概念的先声。
APL/360 (A Programming Language)──程序设计语言360:一种提供很多高级运算符的语言,可使程序人员写出甚为紧凑的程序,特别是涉及到矩阵计算的程序,1967。
PASCAL(Philips Automatic Sequence CAL-culator)──菲利浦自动顺序计算机语言:在ALGOL60的基础上发展起来的重要语言,其最大特点是简明性与结构化,1971。
PROLOG(PROgramming in LOGic):一种处理逻辑问题的语言。它已广泛用于关系数据库、数理逻辑、抽象问题求解、自然语言理解等多种领域,1973。
ADA:一种现代模块化语言,属于ALGOL-PASCAL语言族,但有较大变动。其主要特征是强类型化和模块化,便于实现个别编译,提供类属设施,提供异常处理,适于嵌入式应用,1979。
除了上面列举的语言外,还有一些较为通用的语言,特别是BASIC、PL/1、SNOBOL、ALGOL68等。BASIC虽然简单易学,使用广泛,但其中没有什么新概念,而且并不是第一个交互式语言。PL/1的设计思想来源于JOVIAL,其功能来源于FORTRAN、COBOL、ALGOL60,具有中断表处理等设施。SNOBOL是一种好的语言,对COMIT中若干概念做了明显的改进。ALGOL68在语言成分和描述方法方面虽有所创新,但应用尚不广泛。
发展趋势程序设计语言是软件的重要方面。它的发展趋势是模块化、简明性和形式化。
(1)模块化:不仅语言具有模块成分,程序由模块组成,而且语言本身的结构也是模块化的。
(2)简明性:涉及的基本概念不多,成分简单,结构清晰,易学易用。
(3)形式化:发展合适的形式体系,以描述语言的语法、语义、语用。
- 参考书目
- 徐家福:《系统程序设计语言》,科学出版社,北京,1983。J.E.Sammet, Programming Languages:History and Fundamentals,Prentice Hall, Englewood Cliffs,New Jersey,1969.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)