中国大学MOOC-编译原理课程笔记(第一讲 绪论)
中国大学MOOC-编译原理课程笔记(第一讲 绪论)
第一讲 绪论
1-1 什么是编译
1.1.1 计算机程序设计语言及编译
- 编译:将高级语言翻译成汇编语言或机器语言的过程
1.1.2 编译器在语言处理系统中的位置
- 预处理器
- 把存储在不同文件中的源程序聚合在一起
- 把被称为宏的缩写语句转换为原始语句
- 可重定位
- 在内存中存放的起始位置L不是固定的
- 起始位置+相对地址 = 绝对地址
- 加载器
- 修改可重定位地址:将修改后的指令和数据放到内存中适当的位置
- 链接器
- 将多个可重定位的机器代码文件(包括库文件)连接到一起
- 解决外部内存地址问题
1.2 编译系统的结构
- 词法分析:识别出单词的词类(介词/冠词/名词/代词)
- 语法分析:分析句子中的短语(介词短语/名词短语/动词短语)
- 语义分析:分析短语关系(状语/主语/谓语/宾语/补语)
- 语法制导翻译
1.3 词法分析概述
1.3.1 词法分析/扫描
- 词法分析的主要任务
- 从左向右逐行扫描源程序的字符,识别出各个单词,确定