一门自定义编程语言的设计及其编译器的实现-演示文稿_第1页
一门自定义编程语言的设计及其编译器的实现-演示文稿_第2页
一门自定义编程语言的设计及其编译器的实现-演示文稿_第3页
一门自定义编程语言的设计及其编译器的实现-演示文稿_第4页
一门自定义编程语言的设计及其编译器的实现-演示文稿_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论