- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * 语义分析 句子的结构理解了,扑捉它的“含义” 如:杰克说杰瑞把他的作业落在了家里。 “他的”是谁的? 又:杰克说杰克把他的作业落在了家里。 几个杰克? 语义分析 杰克把她的作业落在了家里。 (杰克是男生)“杰克”和“她的”不一致。 “杰克”和“他的”才匹配 语义分析(语言的规定和实现) int arr[2], c; c = arr * 10; “中间代码”是一种含义明确、便于处理的记号系统。 如:三元式、四元式、逆波兰式。 例:四元式(运算符,第一运算量,第二运算量,结果) x:= a*b+c (*, a, b, T1) (+,T1, c, T2 ) (:=, T2 , -, x) 4 中间代码 id1:= id2 + id3 * 60 (1) (inttoreal, 60 - t1 ) (2) (* , id3 t1 t2 ) (3) (+ , id2 t2 t3 ) (4) (:= , t3 - id1 ) 5 代码优化 任务 所做转换 依据 程序等价变换规则 主要理论基础 数据流方程 中间代码 中间代码(优化后) 对于代码(主要是中间代码)进行加工变换,以期能够产生更为高效(省时间和空间)的目标代码 。 代码优化 id1:= id2 + id3 * 60 (1) (inttoreal 60 - t1 ) (2) ( * id3 t1 t2 ) (3) ( + id2 t2 t3 ) (4) ( := t3 - id1 ) 变换 ? (1) ( * id3 60.0 t1 ) ( 2)( + id2 t1 id1 ) 6 目标代码生成 任务 所做转换 依据 硬件体系结构、指令系统 中间代码 目标代码 将中间代码变换成特定机器上的低级语言代码 目标代码形式 绝对指令、可重定位指令、汇编指令 (* , id3 60.0 t1 ) (+ , id2 t1 id1 ) movf id3,R2 mulf #60.0,R2 movf id2,R1 addf R2,R1 movf R1,id1 6.目标代码生成 按逻辑功能不同,可将编译过程划分为五个基本阶段,与此 相对应,我们将实现整个编译过程的编译程序划分为五个 逻辑阶段(即五个逻辑子过程)。 目标代码 生成程序 代码优化 程序 语义分析 生成中间 代码 语法分析 程序 词法分析 程序 编译过程小结 S.P O.P 1.3 编译程序的组织及开发 编译程序是一个非常复杂的软件系统,虽然编译理 论和技术不断发展,开发周期缩短,但研制仍需大量时 间。追求目标过程自动化。 根据编译程序各部分功能,将编译程序分成前端和后端 前端:通常将与源程序有关的编译部分称为前端。 词法分析、语法分析、语义分析、中间代码生成 ---分析部分 特点:与源语言有关 后端:与目标机有关的部分称为后端。 代码优化、代码生成 ---综合部分 特点:与目标机器有关 编译程序的前端和后端 .java java源程序文件 .class 二进制字节码文件 Java虚拟机(JVM) 本地计算机系统 编译 同一前端+不同后端 ? 不同机器构成同一语言的编译程序 例如Java语言 同一前端+不同后端 ? 不同机器构成同一语言的编译程序 例如.NET框架 不同前端+同一后端 ? 同一机器生成几个语言的编译程序 例如GCC 第一遍 第二遍 …… S.P 中间形式1 S.P 中间形式2 C2 C1 S.P O.P 对源程序(包括源程序中间形式)从头到尾扫描一次,并做有关的加工处理 ,生成新的源程序中间形式或目标程序,通常称之为一遍。 遍 上一遍的结果是下一遍的输入,最后一遍生成目标程序。 一遍扫描即可
您可能关注的文档
- 第1课时三种性质的力终稿.ppt
- 第七篇护足篇_535706终稿.pptx
- 山东省潍坊市2016届高三下学期4月份高考模拟训练语文Word版含答案.doc
- 第1课时天然气的利用甲烷-1终稿.ppt
- 第七章分子重排反应终稿.pptx
- 第1课时--物质性质的基本方法-鲁科-必修一终稿.ppt
- 第七章伪指令和宏语言_目标文件连接终稿.pptx
- 山东省潍坊市2016届高三上学期期末考试数学(理)Word版含答案.doc
- 第七章纤维成型终稿.pptx
- 第1课时物质性质的基本方法终稿.ppt
- springbooot+vue基于java的房屋维修系统毕业论文.doc
- 中国消防救援学院《单片机系统实验》2023-2024学年第一学期期末试卷.doc
- 2025年溧阳纺织化学品项目申请.pptx
- 景区门票包销合同模板(3篇).docx
- 【股票技术指标学习指南】第七章第三节货币需要量的测算.doc
- 2025春 _ 人教版七年级英语下册【unit4】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit5】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit6】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit7】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit8】看音标写单词.doc
文档评论(0)