[拼音]:chengxu sheji yuyan
[外文]:programming language
用于计算机程序设计的人工语言,包括机器语言、汇编语言、宏汇编语言和各种高级程序设计语言。但是一般习惯上主要指高级程序设计语言。
从机器语言到高级程序设计语言计算机在其指令控制下动作。每台计算机都配备有一套机器指令,每条指令让计算机执行一个简单的特定的动作。例如,从计算机某个存储器单元中取出一个数,或向某单元送一个数;把两个数相加、相减、相乘或相除;或使打印机开始打印等。一台计算机所有指令的集合称为指令系统。每种计算机的指令系统是不同的,指令系统又称为机器语言。要让计算机做一件事,必须把这件事分解为许多小的步骤。每一步骤由一条指令来完成。计算机按顺序执行这一系列小步骤,最后完成要做的事情。一系列的步骤写出来称为一个程序。用机器语言编写程序时,要求程序员直接使用机器代码并分配内存储器,数据也需要写成二进制定点形式或浮点形式。编写程序过程很繁琐,容易出错,程序的检查和调试也比较困难。机器语言程序直观性很差,很难读懂。此外,指令系统是针对某一台计算机的,因而机器语言没有通用性,换一台机器,所有程序都要重新编制。解决这个问题的第一步是使用汇编语言。用汇编语言写的程序称为源程序,经过汇编程序加工和翻译即变成用机器语言写的目标程序,然后再由计算机执行。汇编语言用符号表示操作码和地址码,这种符号便于记忆,因此称为记忆码。符号地址码由汇编程序自动处理,分配存储单元。汇编语言允许用户直接写十进制数,由汇编程序转换成机器内部形式。例如,计算D=A+B-25的汇编程序:
![](/d/bkimg/2022110813/chjymhfrn0v.webp)
可见,汇编语言编写的程序比机器语言程序容易阅读、检查和修改。但汇编语言仍然是面向机器的,与计算机指令一一对应,要求程序员详细了解计算机的细节。编写程序仍然是一件很烦琐的工作。后来人们又提出子程序方法。虽然用户程序各不相同,但是有些处理过程是许多程序所共同的。例如,许多用户都要求在他们的程序中解线性代数方程组。如果把求解线性代数方程组的方法编成标准子程序,把其他常用的算法也编成标准子程序,组成子程序库,供用户随时调用,用户程序中只要简单地给出几个参数即可。这样,不必每个程序员都重复同样的工作,可大大方便程序设计的工作。
高级程序设计语言50年代初期出现了 FORTRAN等一系列高级程序设计语言,大大促进了计算机的普及推广。
用高级语言写的程序也称为源程序,执行前需要由编译程序将其转换为机器语言程序,称为目标程序。用高级语言编制计算机程序可以不必了解具体机器代码的知识,程序独立于具体的机器。在一台计算机上运行的源程序不加修改或只作很少修改就可在另一台计算机上运行。高级语言的优点是:
(1)容易学习,描述同样的过程,用高级语言比机器语言或汇编语言容易得多。不过,有些功能很强的程序设计语言比汇编语言难学。
(2)高级语言程序中的错误容易检查,因而容易调试。
(3)程序容易读懂,便于交流和维护。
(4)编写程序、调试程序花费的代价小,虽然编译处理要花一定的代价,但总的解决问题的代价还是比较小的。现在已有数百种各式各样的高级程序设计语言,可分为面向过程语言、非过程语言、通用语言和专用语言。
面向过程语言用这种语言写程序时,用户需要描述解决问题的过程,即一组按顺序执行的操作。FORTR-AN,COBOL,PL/1等都属于此类。
非过程语言用户描述问题时不必指明解决问题的顺序。但这只是一个相对的概念,也就是说随着近代程序设计技术的改进,需要用户提供的描述解决问题顺序的内容越来越少,即越来越非过程化。报表语言、制定表语言、仿真语言等均属此类,如RPG、APT、GPSS、DYN-AMO等语言。
通用语言适用范围较广的一类程序设计语言。所谓通用也是相对而言的,因为没有一种高级语言是适用于一切场合的。一般说,用于科学计算、商业数据处理、字符串和表处理的高级语言适用范围较广(如BASIC,FO-RTRAN,COBOL PASCAL等)可称为通用语言。而另一些如用于仿真、图像处理、设备检测等高级语言(如APT、COGO、DYNAMO等),适用范围较窄,可称为专用语言。
专用语言满足单一目标的程序设计语言。这种语言适用于特定应用领域的用户,由于针对性强,其编译效率和目标程序执行效率也较高。
常用的程序设计语言在各类高级程序设计语言中,有几种应用非常广泛。
FORTRAN全称为Formula Translator,意即公式翻译。它是一种适用于科学计算的高级程序设计语言(见FORTRAN语言)。
COBOL全称为Common Business Oriented Lan-guage,意即通用商业语言。它是适用于数据处理的高级程序设计语言(见COBOL语言)。
BASIC全称为Beginner's All-Purpose Symbolic Instruction Code,意即初学者通用符号指令代码。这是一种简单易学,具有会话功能的,适用于科学计算、数据处理和实时处理的程序设计语言(见BASIC语言)。
PASCAL出现于1968年。它是以 ALGOL语言为基础,按照结构程序设计原则设计出来的,它的优点是小巧,简洁,结构清晰,表达能力强,实现效能高。许多高等学校选它作为程序设计课程的基本语言工具,已成为国际上广泛流行的一种程序设计语言。PASCAL既重视数据结构,又很重视程序的结构。它适用于科学计算、数据处理和描述系统软件。
C 语言70年代初期由美国贝尔实验室提出。1973年首先用于编写UNIX操作系统。C语言易读,程序效率很高,适于描述操作系统、编译程序和各种软件工具,已得到广泛的应用。
LISP语言这是一种表处理语言,是50年代末60年代初为解决人工智能问题而发展起来的一种高级程序设计语言(见LISP语言)。LISP有两个基本的数据类型:原子和表。表是递归定义的,即原子是表,两个表又可以构成一个复合表。表达形式是把两个表用括号括起来,中间用一个句号隔开。LISP语言对表规定了一套简单的运算。例如:由两个表构造一个复合表;从表中选出其第一个分量;从一个表中去掉第一个分量等。这些都是非数值处理最基本的操作。通过原子、表、表的运算和用户定义的一些LISP函数,就可以进行符号演算、公式推导、博弈以及其他非数值处理。LISP的理论基础是数理逻辑,它很简单又有很强的表达能力。