本文共 562 字,大约阅读时间需要 1 分钟。
学习视频:
mooc 编译原理(哈工大)
编译器属于系统软件
第一章 绪论
编译
编译是将高级语言翻译成汇编语言或机器语言的过程
可能编译成汇编语言,也可能编译成机器语言
编译器在语言处理系统中的位置
预处理器是把存储在不同文件中的源程序聚合在一起。把宏语句转换为原始语句
可重定位的机器代码是指在内存中存放的起始位置是不固定的
加载器修改可重定位地址,并将修改后的指令和数据放到内存中的适当位置
链接器将多个可重定位的机器代码文件(包括库文件)连接到一起,并解决外部内存地址问题
gcc/g++是预处理器、编译器、汇编器都包含了
词法分析&语法分析&语义分析
语法分析=句法分析
句子 —>词法分析—>语法分析—>语义分析
句子首先通过词法分析,确定各个单词的词性
然后进行语法分析,识别句子中的各类短语,从而获得句子的结构
然后进行语义分析,根据句子的结构,分析出各个短语在句子中充当什么成分,从而确定各个名词性成分同核心位于之间的语义关系
最后给出中间表示形式
编译器的结构
中间表示独立于具体的语言,起到中间桥梁的作用
注意这里的阶段(就是那些此法分析器,语法分析器,语义分析器、中间代码生成器等)是编译器的逻辑组织方式,在实现过程中,多个阶段可能会被组合在一起,例如可以在语法分析的同时结合语义规则直接进行语义分析
转载地址:http://zsulf.baihongyu.com/