




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一门自定义编程语言的设计及其编译器的实现,什么是编译器?,机器语言:直接用计算机能够识别的二进制代码指令来编写程序的语言。由二进制的指令代码组成。1 + 3 表示为 10000001 00000001 00000011,高级语言:使用人类可以轻易读懂便于书写的语言来编写程序的语言。由二进制的指令代码组成。1 + 3 可以表示为 :int a = 1, b = 3; a = a + b;,为什么做编译器?,怎么实现编译器?,词法分析,词法分析后返回:单词类型单词值 保留字 int标识符(变量名) a界符 ;标识符(变量名) a算符(赋值) =标识符(变量名) a 算符(加) +整数 2界符 ;,如一个C源程序片断: int a; a = a + 2;,语法分析,比如我程序里的赋值语句的规则 :“=” =“+” =“*” =“(”“)” = = =,消除左递归的文法ETEE+TE|TFTT*FT|F(E)|i,根据定义的文法生成的语法树,赋值语句,标识符,表达式,表达式,+,表达式,表达式,标识符,整数,标识符,=,表达式,*,语义分析,修改后: Program p() int rate = 1; int initial =1; int position =1 ; position = initial+rate * 60,例:function p()char rate = p;boolean initial = true; position = initial + rate * 60 /* error */ /* error */ /* warning */;,中间代码生成,如:position:initialrate60 生成四元式序列:(inttoreal 60 t1 ) ( id3 t1 t2) ( id2 t2 t3) (: t3 id1),运算符,运算对象1,运算对象2,结果,id1,id2,id3,t1,t2,t3是临时变量,四元式的形式为: (算符,运算对象1,运算对象2,结果),代码优化,目标代码生成,(*id360.0t1)(+id2t1id1),MOVid3,R2MUL#60.0,R2MOVid2,R1ADD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采访广告公司心得体会模版
- 病毒性胃肠炎的临床护理
- 住宅-生活用房
- 世界旅游形象大使长三角特别赛区
- 幼儿园语言教育与活动设计 课件 第四章 幼儿园语言教育活动与其他教育活动的交叉与融合
- 疮疡日常护理
- 运营能力规划
- 作业治疗器材
- 高中语文教师教育教学工作总结模版
- 牛羊产后护理
- 凉水井煤矿矿山地质环境与土地复垦方案
- 思明区公开招聘非在编聘用人员报名表
- 新概念英语第二册单词表默写纸
- 联合办公协议书范本
- 质量部运行卓越绩效体系
- 利妥昔单抗用药注意事项课件
- 中医培训课件:《穴位埋线减肥》
- 管理能力测试题大全
- 2023年公需科目:《“十四五”数字经济发展规划》解读等考试题
- 产品出厂检验报告
- 湖北十堰燃气爆炸事故案例
评论
0/150
提交评论