编译原理第一章

上传人:jkl****17 文档编号:253279220 上传时间:2024-12-10 格式:PPT 页数:33 大小:926.50KB
收藏 版权申诉 举报 下载
编译原理第一章_第1页
第1页 / 共33页
编译原理第一章_第2页
第2页 / 共33页
编译原理第一章_第3页
第3页 / 共33页
资源描述:

《编译原理第一章》由会员分享,可在线阅读,更多相关《编译原理第一章(33页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,教学进度,计算机科学与工程系,编译原理,(Compiler Construction),主讲:方凤美,85280320-505,信息学院,505,,,09xr2011,关于编译原理课程,到底学什么?,为什么要学?,怎么学?,课程知识点前后关联很紧密,一定要紧跟进度。,课程介绍:,编译原理是计算机各专业的重要专业基础课,是一门涉及设计和构造编译程序的一般原理、基本方法和主要实现技术的课程。内容主要包括:高级语言的形式化、词法分析方法、语法分析方法、语法制导翻译技术、优化技术等。,学习指导:,少走弯路,:,学习

2、编译原理的相关建议,http:/ 徐兰芳 骆婷 编,电子工业出版社,ISBN 978-7-121-12938-4,参考教材:,1.,程序设计语言编译原理(第三版),陈火旺 等编著 国防工业出版社,2.,编译原理(,Alfred,V.Aho,等 著),李建中等译 机械工业出版社,图片,教学环节:,理论教学(上课、作业),实验(上机检查、实验报告),期末考试,成绩评定:,平时成绩:(,30%,),实验、作业、课堂提问、考勤,期末考试:(,70%,),二进制代码,汇编指令,用户,高级语言程序,计算机,编译,编写,执行,学习内容,第一章 编译概述,编译,的概念,编译过程,编译器的逻辑结构,编译器的,生

3、成,翻译程序:将一种语言程序(源)转换成另一种语言程序(目标),两者在逻辑上是等价的。,如果源语言是高级语言,目标语言是低级语言,则称为,编译程序,。,1.1,编译的基本概念,先编译,后执行,解释程序:边转换边执行,不生成目标代码,编译程序,(Compiler),目标程序,源程序,把高级语言程序翻译成等价的低级语言 程序。,编译程序,(Compiler),的功能,1.2,编译过程和编译程序的结构,编译过程一般可分为五个阶段:,一、词法分析,二、语法分析,三、语义分析与中间代码生成,四、优化,五、目标代码生成,例如,有源程序段如下:,float,r,h,s,;,s=2*3.1416*r*(,h+

4、r,);,一、词法分析:识别出源程序中的一个个单词符号,float,r,h,s,;,s=2*3.1416*r*(,h+r,);,二、语法分析:把单词符号串组合成各类语法单位,(即,s=2*3.1416*r*(,h+r,),),识别,2*3.1416*r*(,h+r,),为表达式,识别,s=2*3.1416*r*(,h+r,),为赋值语句,词法分析是线性分析,,语法分析是一种层次结构分析,赋值语句经语法分析生成语法分析树,赋值语句经语法分析生成语法分析树,赋值语句,s=2*3.1416*r*(,h+r,),的语法树,=,s,*,2,*,3.1416,r,*,r,h,+,表达式,赋值语句,表达式,

5、表达式,表达式,三、语义分析与中间代码生成:分析语法范畴的含义,并进行初步翻译(产生中间代码),中间代码:一种含义明确、便于处理的记号系统,通常独立于具体的硬件系统。与机器指令较接近,易于转换成机器指令。,中间代码可用四元式、三元式、间接三元式、逆波兰式、树形表示等,赋值语句经语义分析生成语义树,例赋值语句,s=2*3.1416*r*(,h+r,),经语义分析生成语义树如下,=,s,*,2,*,3.1416,r,*,r,h,+,生成中间代码,t1,=2*3.1416;,t2,=t1*r,;,t3,=,h,+r;,t4,=,t2*t3,;,s=t4;,四、优化:产生更高效的代码,t2,=6.28

6、32*r,;,t3,=,h,+r;,s,=,t2*t3,;,四、优化:产生更高效的代码,for (i=1;i=100;i+),M=J+10*i;,N=K+10*i;,M=J;N=K;,for (i=1;i=100;i+),M=M+10;,N=N+10;,M=J;t=K-J;,for (i=1;i=100;i+),M=M+10;,N=,t+M,;,五、生成目标代码:将中间代码变换成特定机器上的低级语言代码,mov,AX,6.28,;,mul,r,;,mov,t2,AX,;,mov,AX,h,;,add,AX,r ;,mov,t3,AX,;,mov,AX ,t2;,mul,t3,;,mov,s,A

7、X,;,t2,=6.28*r,;,t3,=,h,+r;,s,=,t2*t3,;,编译程序的逻辑结构,编译程序总框,按编译过程五阶段的任务划分模块得出编译程序总框如下图:,词法分析器,语法分析器,语义分析与中间代码产生器,优化器,目标代码生成器,表 格 管 理,出 错 处 理,源程序,单词符号,语法范畴,中间代码,中间代码,目标代码,源代码识别阶段,目标代码生成阶段,编译前端与编译后端,把编译程序划分为编译前端和编译后端,前端,后端,源程序,中间代码,目标代码,仅依赖源语言,仅依赖目标语言,除了五个功能模块,一个完整的编译程序还包括:表格管理和出错处理。,表格与表格管理,表格,记录源程序的各类信

8、息和编译各阶段的进展状况。,符号表,:记录名字及其属性。,编译各阶段都涉及到构造、查找或更新有关的表格。,符号表,名字,种类,类型,层次,偏移量,r,变量,float,1,d,h,变量,float,1,d+4,s,变量,float,1,d+8,错误的诊查处理,编译程序在各个阶段应,诊断和报告源程序中的错误,包括词法错误,语法错误,语义错误。,编译程序应,报告出错地点,并给出简明准确的提示信息。,遍:,遍(,PASS),:,对输入文件(源程序或其等价的中间形式)从头到尾扫描一遍,并完成预定处理工作的过程。,将编译程序组织成若干遍,遍,输入文件,输出文件,1.3,编译程序的生成,用机器语言或汇编语言来构造编译程序;,用高级语言来构造编译程序,编译程序,源程序,目标程序,源语言,目标语言,编译方法,构造一个编译程序必须掌握:,编译器实现语言,1.3,编译程序的生成,编译程序自动生成工具:,LEX,、,YACC,;,自编,译技术,移植生成编译器技术,并行编译技术,思考题:,1,、含有优化部分的编译程序的执行效率高。,2,、,C,语言的编译程序可以用,C,语言来编写。,已有,要求,S,T,I,C,A,A,J,A,A,C,A,A,J,A,C,J,A,A,S,T,I,已有,要求,C,A,A,C,B,B,C,B,C,C,A,A,C,B,A,C,B,C,C,B,B,2,1,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!