- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
;
?编译器的结构
?编译过程
?语言特征;
?一个编译器就是一个程序,读入以某一种语言 (源语言)编写的程序,并把该程序翻译成为一个等价的、用另一种语言(目标语言)编写的程序。;
?编译器vs.解释器
?编译器的结构
?编译的构造工具;
编译器简介;
目标程序;
直接利用用户提供的输入,执行源程序中指定的操作。
不生成目标程序,而是根据源程序的语义直接运行。 边解释,边执行,错误诊断效果好。;
?Java结合了两者:
O先编译成字节码,再由Java虚拟机解释执行
O即时编译(Just-in-timecompiling);;
?编译器vs.解释器
?编译器的结构
?编译的构造工具;
?分析部分(Analysis)
O源程序-语法结构-中间表示
O搜集源程序中的相关信息,放入符号表
O分析、定位程序中可能存在的错误信息(语法、语义错误)
O又称编译器的前端(frontend),是与机器无关的部分
?综合部分(Synthesis)
O根据符号表和中间表示构造目标程序
O又称编译器的后端(backend),是与机器相关的部分;
?每个步骤把源程序的一种表示方式转换成另一种表示方式。
?实践中,某些中间表示不需要明确的构造出来。
?符号表可由各个步骤
使用;
O类型
O作用域
O过程名字的参数数量、参数类型等等;
?词法分析:Thislineisalongersentence.
?语法分析:;
?词法分析/扫描(lexicalanalysis,scanning)
O读入源程序的字符流,输出有意义的词素(lexeme)
O基于词素,产生词法单元:token-name,attribute-value
Otoken-name由语法分析步骤使用
Oattribute-value指向相应的符号表条目,由语义分析/代码生成步骤使用
?例子
Oposition=initial+rate*60
Oid,1=,id,2+,id,3*,number,4;
?词法分析后,需要得到词素序列的语法结构
?语法分析/解析(syntaxanalysis/parsing)
O根据各个词法单元的第一个分量来创建树形中间表示形式。通常是语法树(syntaxtree)。
O指出了词法单元流的语法结构。;
?得到语义(meaning),对于编译器来说比较难
?语义分析(semanticanalysis)
O使用语法树和符号表中的信息,检查源程序是否满足语言定义的语义约束。
O同时收集类型信息,用于代码生成。;
?根据语义分析的输出,生成类机器语言的中间表示
?三地址代码:
O每个指令最多包含三个运算分量
Ot1=inttofloat(60);t2=id3*t1;t3=id2+t2;;
21;
?把中间表示形式映射到目标语言
O寄存器的分配;
?趟:以文件为输入输出单位的编译过程的个数,每趟可由一个或若干个步骤构成
?“步骤”是逻辑组织方式
?“趟”和具体的实现相关
O参考LLVM实现中的Pass;
?编译器vs.解释器
?编译器的结构
?编译的构造工具;
?语法分析器的生成器:yacc/bison
O根据一个程序设计语言的语法描述自动生成语法分析器
?扫描器的生成器:lex/flex
O根据一个语言的词法单元的正则表达式描述生成词法分析器
?语法制导的翻译引擎
O生成一组用于遍历分析树并
您可能关注的文档
- 安全生产智能化保障技术(第2版)课件:现代智能技术.pptx
- 安全生产智能化保障技术(第2版)课件:智能专家系统.pptx
- 安全生产智能化保障技术(第2版)绪论.pptx
- 爆破工程(第3版)课件:爆破安全要求.pptx
- 爆破工程(第3版)课件:爆炸及其爆破的基本知识.pptx
- 爆破工程(第3版)课件:爆炸器材与爆破方法.pptx
- 爆破工程(第3版)课件:地下工程掘进爆破.pptx
- 爆破工程(第3版)课件:构 (建) 筑物拆除爆破与特种爆破.pptx
- 爆破工程(第3版)课件:露天爆破技术 .pptx
- 爆破工程(第3版)课件:露天爆破技术.pptx
- 五位一体教案教学教案设计.docx
- 思修与法基-教学教案分享.pptx
- 大学军事之《中国国防》题库分享.docx
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章-中国特色社会主义理论体系的形成发展.pdf
- 思修与法基 教学全案分享.docx
- 大学军事之《军事思想》题库分享.docx
- 《经济思想史》全套课件-国家级精品课程教案课件讲义分享.pdf
- 厦门大学国际金融全套资料(国家级精品课程)--全套课件.pdf
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章-中国特色社会主义理论体系的形成发展.docx
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章中国特色社会主义理论体系的形成发展分享.pdf
最近下载
- 机械设计基础(第七版)杨可桢课后习题答案详解.pdf
- 2025云南省高等职业技术教育招生考试计算机信息类(技能考核)试题(C1).doc VIP
- NBT 32045-2018 国家行业标准.pdf
- 小学生《书法》课三年级下册全册教学设计教案.pdf VIP
- 2025云南省高等职业技术教育招生考试计算机信息类(技能考核)试题(C5).doc VIP
- 2025年长沙电力职业技术学院单招职业倾向性测试题库(夺冠系列).docx VIP
- 2025年湖南环境生物职业技术学院单招职业适应性测试题库最新.docx VIP
- 多轮问答数据生成方法、装置、设备与存储介质.pdf VIP
- PPAP手册第四版.doc VIP
- 2025年长沙电力职业技术学院单招职业适应性测试题库完整版.docx VIP
文档评论(0)