第 6 章 程序设计语言
// 主要讲了程序设计语言的类型,高级语言编译成可被执行的二进制文件的过程。
了解程序设计语言之间的共性和个性
章节概要
- 汇编语言
- 程序设计范型
- 语言翻译
汇编语言
机器语言&汇编语言
我们根据指令集编写的语言称为机器语言,这些指令集书面形式上一般采用十六进制来表示。
由于直接写指令,并不方便书写和阅读,所以开发了这些指令的助记符,比如 0x4056 表示为 MOV R5 R6
由这些助记符构成的原语系统,我们称为汇编语言,只需要使用汇编器,把汇编语言翻译为机器语言就可以执行了。
汇编语言的局限性
由于不同机器的寄存器配置和指令集存在差别,而汇编语言本质上就是指令和寄存器的组合,所以当汇编语言编写的程序换到不同的机器上时,可能会需要修改程序才能运行,做不到机器无关。
第三代程序设计语言
汇编语言被称为第二代程序设计语言。
第三代程序设计语言,原语级别更高,而且是机器无关的。
第三代程序设计语言使用翻译器把高级原语翻译成机器语言,这种翻译器一般称为编译器
程序设计范型
程序设计范型指的就是程序设计语言构建问题解决方案的方法。
常见的程序设计范型有: 函数式范型、面向对象范型、命令式范型、说明性范型。
语言翻译
将一种语言转换为另一种语言的过程称为翻译。
语言的翻译过程有三个步骤:词法分析、语法分析、代码生成。
词法分析
词法分析主要是通过词法分析器来完成,所实现的功能就是,把一个语句中的字符逐个识别,把所属的一个单词或一个数字等识别为一个单元,比如 186 和 while 都应该识别为一个单元,同时更重要的是要标记这些单元是不是数值、运算符、哪个保留子等类型。
语法分析:
语法分析是借助于语法分析器,将词法分析得到的单元组合成语句,这个过程就是构建语法分析树的过程。
生成代码:
代码生成是借助于代码生成器来完成的,目的是构造机器指令(或其他语言指令),来实现这个语法分析树。我们最后得到的机器指令(其他语言)就是目标程序。
词法分析、语法分析、代码生成不是按照严格顺序执行的,而是三种操作交织在一起,互相交互完成翻译过程的。