第2章 程序设计语言基础
大纲要求:
汇编、编译、解释系统的基础知识和基本工作原理。
程序设计语言的基本成分——数据、运算、控制和传输以及过程(函数)调用。
各类程序设计语言的主要特点和适用情况。
2.1 程序设计基础知识
2.1.1 考点辅导
2.1.1.1 程序设计语言的基本概念
1.低级语言和高级语言
1)低级语言
通常称机器语言和汇编语言为低级语言。机器语言是指用0、1字符串组成的机器指令序列,是最基本的计算机语言;汇编语言是指用符号表示指令的语言。
2)高级语言
高级语言是从人类的逻辑思维角度出发、面向各类应用的程序语言,抽象程度大大提高,需要经过编译成特定机器上的目标代码才能执行。这类语言与人们使用的自然语言比较接近,大大提高了程序设计的效率。
2.编译程序和解释程序
尽管人们可以借助高级语言和计算机进行交互,但是计算机仍然只能理解和执行由0、1序列构成的机器语言,因此高级程序语言需要翻译,担任这一任务的程序称为语言处理程序。用某种高级语言或汇编语言编写的程序称为源程序,源程序不能直接在计算机上执行。如果源程序是使用汇编语言编写的,则需要一个称为汇编程序的翻译程序将其翻译成目标程序后才能执行。如果源程序是使用某种高级语言编写的,则需要相应的解释程序或编译程序对其进行翻译,然后才能在机器上执行。
解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再执行;而编译程序(编译器)则是将源程序翻译成目标语言程序,然后在计算机上执行目标程序。
3.程序设计语言的定义
下面介绍关于程序设计语言的定义。
(1)语法。由程序设计语言的基本符号组成程序中的各个语法成分(包括程序)的一组规则,其中由基本符号构成的符号(单词)书写规则称为词法规则,由符号(单词)构成语法成分的规则称为语法规则。程序语言的语法可通过形式语言进行描述。
(2)语义。程序语言中按语法规则构成的各个语法成分的含义,可分为静态语义和动态语义。
(3)语用。表示构成语言的各个记号和使用者的关系,涉及符号的来源、使用和影响。
(4)语境。理解和实现程序设计语言的环境,包括编译环境和运行环境。
4.程序设计语言的分类
1)命令式程序设计语言
命令式程序设计语言是基于动作的语言,在这种语言中,计算被看作动作的序列。命令式语言族开始于FORTRAN、PASCAL和C语言,体现了命令式程序设计的关键思想。
2)面向对象的程序设计语言
(1)对象。对象是指人们要进行研究的任何事物,它具有状态和操作。面向对象的语言把状态和操作封装于对象实体之中,并提供一种访问机制。用户只能通过向允许公开的操作提出要求,才能查询和修改对象的状态。
(2)类。类是面向对象语言必须提供的、由用户定义的数据类型,它将具有相同状态、操作和访问机制的多个对象抽象成一个对象类。在定义类以后,属于这种类的一个对象被称为类实例或类对象。
(3)继承。继承是面向对象语言的另一个基本要素。继承实现了一般与特殊的关系,解决了软件的可重用性和可扩充性的问题。
3)函数式程序设计语言
函数式程序设计语言是一类以-演算为基础的语言。该语言的代表是LISP语言,其中大量使用了递归。
函数是一种对应规则(映射),它是定义域中的每个元素和值域中唯一的元素相对应。函数可以看成一种程序,其输入就是定义在左边括号中的变量,可以将输入组合起来产生一个规则,组合过程中也可以使用其他函数或函数本身。这种用函数和表达式建立程序的方法就是函数式程序设计。函数型程序设计语言的优点之一就是表达式中出现的任何函数都可以用其他函数来代替,只要这些函数调用产生相同的值。
4)逻辑型程序设计语言
逻辑型程序设计语言是一类以形式逻辑为基础的语言。该语言的代表是建立在关系理论和一阶谓词理论基础上的Prolog语言。Prolog语言具有很强的推理功能,适用于书写自动定理证明、专家系统以及自然语言理解等问题的程序。