第一章 绪论
一、什么是编译
(一)计算机程序设计语言及编译
1、高级语言(类似于数学定于或自然语言的简洁形式)、汇编语言(引入助记符,依赖于特定机器、非计算机专业人员使用首先)、机器语言(可以被机器直接理解)
2、汇编语言-》机器语言(汇编),高级语言(源语言)-》汇编/机器语言(目标语言)
(二)编译器在语言处理系统的位置
1、源程序-》预处理器-》经过预处理的源程序-》编译器-》汇编语言程序-》汇编器-》可重定位的机器代码-》链接器/加载器-》目标机器代码
2、链接器的一些其他作用
二、编译系统的结构
(一)人工英汉翻译的例子
1、源语言句子-》第一步,分析源语言(语义分析)-》句子的语义(中间表示)-》第二部,生成目标语言-》目标语言句子
中间表示《-语义分析(要划分句子成分)《-语法分析(句子结构)《-词法分析(句子中单词的词性,词类)
(二)编译器的结构
1、逻辑组织方式
【分析部分/前端:与源语言相关】
字符流-》词法分析-》词法单元流-》语法分析器-》语法树-》语义分析器-》语法树-》中间代码生成器
【独立于具体的语言,桥梁作用】
-》中间表示形式-》机器无关代码优化