《计算机科学概论》第13版#6章--程序设计语言

84 阅读3分钟

第 6 章 程序设计语言

// 主要讲了程序设计语言的类型,高级语言编译成可被执行的二进制文件的过程。

了解程序设计语言之间的共性和个性

章节概要

  1. 汇编语言
  2. 程序设计范型
  3. 语言翻译

汇编语言

机器语言&汇编语言

我们根据指令集编写的语言称为机器语言,这些指令集书面形式上一般采用十六进制来表示。

由于直接写指令,并不方便书写和阅读,所以开发了这些指令的助记符,比如 0x4056 表示为 MOV R5 R6

由这些助记符构成的原语系统,我们称为汇编语言,只需要使用汇编器,把汇编语言翻译为机器语言就可以执行了。

汇编语言的局限性

由于不同机器的寄存器配置和指令集存在差别,而汇编语言本质上就是指令和寄存器的组合,所以当汇编语言编写的程序换到不同的机器上时,可能会需要修改程序才能运行,做不到机器无关。

第三代程序设计语言

汇编语言被称为第二代程序设计语言。

第三代程序设计语言,原语级别更高,而且是机器无关的。

第三代程序设计语言使用翻译器把高级原语翻译成机器语言,这种翻译器一般称为编译器

程序设计范型

程序设计范型指的就是程序设计语言构建问题解决方案的方法。

常见的程序设计范型有: 函数式范型、面向对象范型、命令式范型、说明性范型。

语言翻译

将一种语言转换为另一种语言的过程称为翻译。

语言的翻译过程有三个步骤:词法分析、语法分析、代码生成。

词法分析

词法分析主要是通过词法分析器来完成,所实现的功能就是,把一个语句中的字符逐个识别,把所属的一个单词或一个数字等识别为一个单元,比如 186 和 while 都应该识别为一个单元,同时更重要的是要标记这些单元是不是数值、运算符、哪个保留子等类型。

语法分析:

语法分析是借助于语法分析器,将词法分析得到的单元组合成语句,这个过程就是构建语法分析树的过程。

生成代码:

代码生成是借助于代码生成器来完成的,目的是构造机器指令(或其他语言指令),来实现这个语法分析树。我们最后得到的机器指令(其他语言)就是目标程序。

词法分析、语法分析、代码生成不是按照严格顺序执行的,而是三种操作交织在一起,互相交互完成翻译过程的。