内容来自<<程序员的自我修养-链接,加载和库>> 非常好的书.
编译过程一般分为6个步骤:
扫描:
源代码程序被输入到扫描器(Scanner),扫描器的任务很简单,他只是进行词法分析,将源码中的字符序列分割成一系列记号;
词法分析产生的记号一般可以分为如下几类: 关键字,标识符,字面量(数字字符串等),和特殊符号(如 加号 ,减号等).在扫描器识别记号的同时,也完成了其他的工作.比如将标识符存放在符号表,将数字,字符串常量存放到文字表等,以备后面的步骤使用.(对于一些有预处理的语言,如c语言,它的宏替换和头文件包含等工作一般不归如编译器的范围,而交给一个独立的预处理器)