高级语言

来自计算思维百科
跳转至: 导航搜索

高级语言是一种用接近自然语言和数学语言的语法、符号描述基本操作的程序设计语言

概念

为了进一步提高程序设计生产率,提高程序的可读性,从根本上改变语言体系,使计算机语言更接近于自然语言,并力求使语言脱离具体机器,达到程序可移植的目的,20世纪50年代末终于创造出独立于机型的、接近于自然语言的、容易学习使用的高级语言。高级语言是一种用接近自然语言和数学语言的语法、符号描述基本操作的程序设计语言,它符合人们叙述问题的习惯,因此简单易学。一条高级语言程序往往相当于很多条汇编语言程序。需要注意的是,高级语言是一类语言的统称,而并不是特指某一种具体的语言,人们设计了很多种高级语言。不同的高级语言可能在语法、功能和适用范围等方面有很大的不同,如目前流行的BASIC、C++、Java等。

用高级语言编写的程序称为高级语言源程序,同汇编语言一样,高级语言源程序也不能被计算机直接识别,必须使用专门的翻译程序将其翻译成用二进制代码表示的目标程序后才能被计算机所识别。每种高级语言都有自己的翻译程序,互相不能代替。

这种“翻译”通常有两种方式,10.即解释(Interpretation编译(Compilation

解释方式

运行高级语言程序的时候,解释程序(Interpreter进行逐句翻译,计算机逐句执行,并不产生目标程序,整个过程类似于“同声传译”。程序执行时,解释程序随同源程序一起参加运行,如图1所示。

10.1.3.png

图1 解释程序的作用

解释方式执行速度慢,但可以进行人机对话,对初学者来说非常方便。例如,早期的BASCI语言多数采用解释方式。

编译方式

编译方式的翻译工作由编译程序(Compiler来完成。编译程序对源程序进行编译处理后,产生一个与源程序等价的目标程序,因为在目标程序中还可能要用到一些计算机内部现有的程序(即内部函数或内部过程)或其他现有的程序(即外部函数或外部过程)等,所有这些程序还没有连接成一个整体,因此这时产生的目标程序还无法运行,需要使用连接程序将目标程序与其他程序段组装在一起,才能形成一个完整的可执行程序存放在计算机内。以后每次运行的是可执行文件,而不是高级程序语言的源文件,整个过程类似于“书面翻译”。编译方式如图2所示。

10.1.4.png

图2 编译程序的作用

解释是在程序运行的时候进行的,会影响程序的运行速度,但不会产生额外的文件,而编译是在程序运行前进行的,程序运行速度不受影响,但会产生额外的可执行文件,而且源程序如果有改动的话,要重新进行编译得到新的可执行文件。包括C、PASCAL、FORTRAN、COBOL等在内的大多数高级语言都采用编译方式,而BASIC语言则采用解释方式为主。

分类

高级语言与自然语言更接近,而脱离了具体的指令系统,便于程序员掌握和使用。通过在不同型号的计算机系统中采用相应的翻译程序,高级语言的通用性更强,兼容性更好,便于移植。如果把翻译程序和汇编语言虚拟机看作一个虚拟整体的话,这个虚拟机是可以直接运行高级语言程序的,因此也把这个虚拟整体称作“高级语言虚拟机”。

数目繁多的高级程序设计语言可以按照其设计理念、组织原理或范型(Paradigm分为几个大类:命令式程序设计语言(Imperative Programminglanguage)、函数式程序设计语言(Functional Programming Language)和逻辑程序设计语言(Logical Programming Language)。其中命令式程序设计语言又可以分为构化程序设计语言(Structured Programming Language)和面向对象程序设计语言(Object-Oriented Programming Language)。

另外,面向不同应用领域的程序设计语言之间往往也会有很大的差距。在本章的后面几节我们也将按照用途的不同对高级程序设计语言进行介绍,包括面向数据库应用的SQL语言和面向web应用的各种程序设计语言等。