一个编译器至少需要包含如下几个部分:
词法分析器:对源代码的字符串进行扫描和分解,根据构词法将字符流转换成单词流。
语法分析器:根据文法规则把单词序列分解成各类语法单位,识别出一个一个句子。
语义分析器:根据前边产生的一个个句子,按语言的语义进行翻译,产生四元式或三元式等中间语言。
优化器:把中间代码进行转换,以产生更加高效的目标代码。
代码生成器:把中间代码转换成汇编指令或可重定位的目标代码(这时会用到连接器)。
补充概念:编译器自举。现有C编译器后有C语言,之所以可以用C语言开发C编译器、是因为之前已经存在由其他语言开发的C编译器。
更多推荐
《C编译原理》自己写C语言编译器
发布评论