根据考试大纲,本章要求考生掌握以下知识点:
● 汇编、编译、解释系统的基础知识和基本工作原理;
● 程序设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用;
● 各类程序设计语言的主要特点和适用情况。
程序语言是表达编程思想、描述计算过程的规范性语言。一般来说,程序语言可以分为低级语言和高级语言两大类。低级语言通常也被称为面向机器语言。
自1946年现代电子计算机发明至今,计算机已经发展了将近60年,但是计算机依然只能理解自己的语言——机器指令。机器语言通过一系列的0、1字符表示命令和数据,难于记忆,编制出来的程序可读性很差,并且难于修改和维护。为了提高效率,人们开始用易于帮助记忆的符号来表示命令和数据,例如使用ADD表示加,SUB表示减,JMP表示跳转等,这就是汇编语言。由于使用了助记符,汇编语言相对于机器语言来说比较容易记忆,用户编制程序的效率和程序的可读性、可维护性都得到了提高。但是汇编语言和机器语言十分接近,都是低级语言,与特定的计算机系统相关。使用机器语言或汇编语言进行程序设计均需要对特定的计算机系统有较深入的了解。
到现在,高级语言已经在程序设计的所有实质性领域里取代了机器语言和汇编语言,因为高级语言为程序员提供了与自然语言更接近、更熟悉的可读的记法形式,并与特定的机器无关,解除了面向机器的低级语言对程序员抽象思想的束缚。此外,高级语言带来了更具可用性的程序库和对错误检查的帮助。高级语言中存在着许多不同的程序设计范型,包括命令式程序设计(如Pascal、C)、函数式程序设计(如Lisp)、面向对象程序设计(如C++、Java、Smalltalk)、逻辑程序设计(如Prolog),及最近出现的面向主题程序设计(如Aspect)等。
到目前为止,计算机都只能理解和执行机器语言,因此需要一种特殊的程序使计算机能够理解使用某一程序设计语言书写的程序,这种特殊的程序就是语言处理程序。语言处理程序可以分为两大类,分别是翻译程序和解释程序。
翻译程序的工作方式是把程序设计语言降低到机器水平,即把某一程序设计语言所写的程序(称为源程序)翻译成机器语言程序(称为目标程序),然后由计算机直接执行目标程序。当源程序语言为汇编语言时,翻译程序通常被称为汇编程序,当源程序语言为高级语言时,翻译程序通常被称为编译程序,图2-1(a)说明了这种方式。而解释程序的工作方式是把程序设计语言看做是解释器本身的语言。解释器的行为就像是一个能够直接运行某种程序设计语言的高级机器。解释器运行时同时取得程序和输入数据,遇到程序中的什么操作就进行相应的操作,并在需要时进行输入和输出,图2-1(b)说明了这种方式。通常来说,翻译方式的程序执行效率比解释方式的要高,而另一方面,解释方式的灵活性要比翻译方式高。
前面所说的是纯粹的翻译和解释,而事实上这两种方法是可以互相结合运用的,如Java源程序就是先通过编译程序编译为以Java虚拟机的语言——BitCode表示的程序,然后通过不同平台上的Java虚拟机解释执行的。
图2-1 编译程序的工作方式