从问题到程序:C/C++程序设计基础
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.3 高级语言及其实现

很显然,计算机不能直接执行高级语言描述的程序。人们在定义了一个编程语言之后,还需要开发出一套处理这一语言的软件,这种软件被称作高级语言系统,也常被称为该高级语言的实现(implementation)。在研究和开发高级语言的过程中,人们也研究了各种实现技术。高级语言的基本实现技术是编译(compile)和解释(interpretation),简单介绍如下:

(1)采用编译方式实现高级语言:人们首先针对具体语言(例如FORTRAN、C或C++)开发出一个编译软件,该软件能把采用该高级语言书写的程序翻译为所用计算机的机器语言的等价程序。人们用高级语言写出程序后,只要将它送给相应的编译程序,就能得到与之对应的机器语言程序。在此之后,只要命令计算机执行这个机器语言程序,计算机就能完成所需要的工作了。

(2)采用解释方式实现高级语言:人们首先针对具体的高级语言开发出一个解释软件,这个软件的功能就是读入相应高级语言的程序,并一步步地指挥计算机按照程序的要求工作,最终完成程序所描述的计算工作。有了这种解释软件,只需要直接把写好的程序送给运行着相应解释软件的计算机,就能看到计算机执行该程序所描述的工作了。

随着计算机科学技术的发展,人们不断开发出新的程序语言,许多老的程序语言被逐渐淘汰。仍在使用的老语言也在急剧变化。以FORTRAN语言为例,它在过去60多年里经过了多次大改版,与初始的FORTRAN语言相比,其最新版本(目前是FORTRAN 2018)几乎是外观迥异了。其他有较长历史的程序语言也都如此。推动程序语言发展的因素很多,一个重要原因是人们对程序设计工作的新认识。随着程序设计的实践越来越丰富,人们对程序设计工作应该怎样做、需要什么样的结构和要素去描述程序等,不断产生新的认识。推动语言发展的另一原因是计算机应用的发展。新的应用领域也经常对描述工具提出新的要求,这些认识和要求促使人们改造已有的语言,或者提出新的语言。

目前世界上使用比较广泛的高级语言有Java、C、C++、Python、FORTRAN、Ada等,这些语言通常被认为是“常规语言”,因为它们有许多共同性质。还有一些语言比较特殊,在形式、编程方式等方面与常规语言差异显著,互相之间也常大相径庭。这些非常规语言各有各的特点或应用领域,甚至有特殊的使用人群。这类语言包括Lisp、Smalltalk、Prolog、ML等。虽然它们不如常规语言使用广泛,但也非常重要,都曾在程序语言或计算机的发展历史上发挥过(有些仍在发挥着)极其重要的作用。