- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理ppt课件
编译原理 尹剑飞 科技楼1406 yjfbase@编译原理和技术的重要性 设计和开发编译器的原理和技术将会在一个计算机工作者的职业生涯中被多次使用。--- Compilers: Principles, Techniques, and Tools 编译器的构造综合了计算机科学的各个方面:计算机理论、程序设计、软件工程,是理论应用于实践的成功典范。-- Engineering A Compiler 编译原理和技术的重要性 自计算机科学诞生以来,语言处理器的工程化就一直在推动,随着相关理论的开发不断改进。-- Programming Language Processors in Java - COMPILERS AND INTERPRETERS 相对其它技术而言,编译器技术是一种内功修炼,因为任何计算机问题都可以化为语言翻译问题 -- some one 第一章 编译器介绍 1.1 编译器概貌 1.2 源程序分析 1.3 编译器的阶段 1.4 编译器的同胞 1.5 阶段的组合 1.6 编译器构造工具 1.1 编译器概貌 1.1 编译器概貌 分析 ( Analysis ) 综合 ( Synthesis ) 1.1 编译器概貌 1.1.3 语法树例子 1.1 编译器概貌 很多软件(不一定是编译器)执行类似的“分析” 结构编辑器,如:HTML editor 格式化(美化)打印,如:自动排版系统 静态检查,如:语法检查器 解释器,如:表达式计算器,SQL检查解释器,java … 1.1 编译器概貌 1.2 源程序 “分析” 分析包括三个阶段 词法分析(线性分析):字符-词(Token) 语法分析(层次分析):词-句 语义分析:句-正确(有意义)的句子 1.2 源程序 “分析” 输入字符串:‘p’ ‘o’ ‘s’ ‘i’ ‘t’ ‘i’ ‘o’ ‘n’ ‘ ‘ ‘=‘ ‘ ‘ ‘ ‘ ‘i’ ‘n’ ‘i’ ‘t’ ‘i’ ‘a’ ‘l’ ‘ ‘ ‘+’ ‘r’ ‘a’ ‘t’ ‘e’ ‘*’ ‘6’ ‘0’,得到下述词(Token): 标识符:position, initial, rate 赋值运算符:= 加法运算符:+ 乘法运算符:* 数:60 1.2 源程序 “分析” 1.2 源程序 “分析” 程序的层次结构通常由递归规则定义: 规则1:任何标识符是表达式 规则2:任何数是表达式 给定表达式1和表达式2,则下述也是表达式 规则3:表达式1 + 表达式2 规则4:表达式1 * 表达式2 规则5:(表达式1 ) 1.2 源程序 “分析” 线性 VS 层次 非递归定义 VS 递归定义 三型文法 VS 二型文法 (more on later…) 1.2 源程序 “分析” 检查是否存在语义错误,获取类型信息。 类型检查 1.3 编译器的阶段 1.3 编译器的阶段 符号表,记录符号与其关联的属性,如类型、作用域,对于过程名符号,有其参数个数和类型、传值还是传引用、返回类型。 符号在词法分析阶段进入符号表,而与其关联的属性要在后继阶段补充。 float position, initial, rate; 1.3 编译器的阶段 在遇到错误时,应尽可能继续执行相应阶段。 词法分析:不成词的余留串,如3int 语义分析:语法结构良好,但语义错误,如加两个标识符,类型分别为数组和过程。 1.3 编译器的阶段 中间代码可看作是一种抽象机上的程序,如GCC产生的中间代码,Java Byte代码。 重要特性:容易从语义分析阶段产生,容易翻译到目标代码。 中间代码有多种形式。 三地址码,最多三个操作数 流控和过程调用 (more on later…) 1.3 编译器的阶段 (more on later…) 1.4 编译器的同胞 预处理器 宏扩展 文件包含 语法糖衣 汇编器 装载和联结器 OS 外部引用 1.5 阶段的组合 前端:主要依赖源程序,独立于目标机器,词法分析、创建符号表、语法分析、语义分析、中间代码生成,可能有优化器的参与。 后端:代码优化、代码生成 1.6 编译器构造工具 解析产生器 扫描产生器 语义导向的翻译引擎 自动代码生成器。 数据流引擎 Chaper2.1 一个简单的一遍编译器 文法基础 提纲 本章为后继章节,特别是编译器前端(词法分析、语法分析、中间代码生成)提供一个实践的铺垫。 通过设计与开发一个简单的一遍编译器,展示了编译器前端构造的基本技术。 该一遍编译器为将中缀表达式语句编译成后缀表达式语句。 该例子还不够完善,希望同学们努力读懂并完善之。 编译器前端结构 文法Grammar 我们采用文法来描述语言的句子结构 在得到某语言的文法基础上,我们可判定一个句子是否属于该语言 判定一个句
您可能关注的文档
- 第四章管理决策.ppt
- 第四章绘制类命令.ppt
- 第四章温度测量热电阻非接触新.ppt
- 第四章结构表征1和2.ppt
- 第四章细胞膜与细胞表面第3版.ppt
- 第四章网络层.ppt
- 第四章营业税法.ppt
- 第四章芳香烃.ppt
- 第四章货币资金与应收项目.ppt
- 第四章资本和剩余价值.ppt
- 3-植物妈妈有办法二年级上册语文-部编版.pptx
- 等差数列与一次函数-2024-2025学年高中数学选择性必修第一册(湘教版)同步课件.pptx
- 第22讲-人体的内环境及其稳态-备战2023年高考生物一轮复习全考点精讲课堂(新教材).pptx
- 13.1.2-线段的垂直平分线的性质(1)-2024-2025学年第一学期数学人教八年级(上册)课件.pptx
- 2026年湖南省地震局事业单位招聘3人考试参考题库附答案解析.docx
- 2025四川成都市邛崃市大学生乡村医生专项招聘事业单位人员1人考试备考题库及答案解析.docx
- 2025下半年新疆维吾尔自治区地质局招聘事业单位人员151人考试备考题库及答案解析.docx
- 打造多端多模态最优效果的百炼共建大模型生态繁荣.pptx
- T_CES 167-2022 电化学储能电站调度控制系统技术要求.docx
- 2024-2025学年江苏省宿迁市宿豫区七年级(下)期末英语试卷(含详细答案解析).docx
最近下载
- 苏教版四年级下册数学第九单元《整理与复习》全单元教学课件.pptx VIP
- 河北《绿色建筑使用说明书示范文本》.doc
- 【初中地理】河流与湖泊 第二课时 长江 课件-2025-2026学年八年级地理上学期(人教版2024).pptx VIP
- 消防验收会议纪要模板.docx VIP
- 李惠军:单元整体通观与教学评深度融合.pptx VIP
- INOVANCE汇川-MD520系列通用变频器调试手册-中文.PDF
- 2025版GOLD慢性阻塞性肺疾病诊疗指南.docx VIP
- 西北大学 普通化学 chapter 04 化学反应速率与化学动力学的初步概念.ppt VIP
- 慢性阻塞性肺疾病诊断标准.pptx VIP
- 配电箱巡视检查记录.doc VIP
原创力文档


文档评论(0)