编译原理:第一章引论

编译原理:第一章引论

ID:38590315

大小:816.50 KB

页数:49页

时间:2019-06-15

编译原理:第一章引论_第1页
编译原理:第一章引论_第2页
编译原理:第一章引论_第3页
编译原理:第一章引论_第4页
编译原理:第一章引论_第5页
资源描述:

《编译原理:第一章引论》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理李宏芒Email:hongmanglee@126.com本课程的地位计算机专业的专业基础课.软件技术的基础计算机专业学生必修的一门主干课研究生入学考试的课程之一本课程的作用编译原理介绍如何将高级程序设计语言变换成计算机硬件能识别的机器语言,以便计算机进行处理。它的理论基础坚实,其形式化系统不仅应用于编译技术,而且大量应用于人工智能、多媒体技术及数据库等领域。本课程的学习任务及考核学习任务:掌握编译的理论基础和形式化系统。了解编译的全过程及具体实现方法。考核:平时:30%笔试:70%本课程的学习方法认真听课,认真理解书中的基本概念

2、、基本原理与基本算法,特别是算法的思想。弄懂书中的例题和习题。在看书时或理解例题时,一定要画出相应的细节变化过程,通过画图和细节演算加深理解。在理解的基础上记忆。理论结合实践。教材及参考书教材:《程序设计与语言编译原理(第三版)》,陈火旺主编,国防工业出版社。参考书:《编译原理(第二版)》,张素琴、吕映芝、蒋维杜、戴桂兰,清华大学出版社。《编译原理及实践》,(美)KennethC.Louden著,冯博琴,冯岚等译,机械工业出版社。《编译原理》,(美)AlfredV.AhoRaviSethiJeffreyD.Ullman著,李建中姜守旭译

3、,机械工业出版社。《编译原理学习指导及习题解析》,陈英王贵珍主编,清华大学出版社。第一章引论编译理论与方法计算机科学与技术中理论和实践相结合的最好典范ACM图灵奖,授予在计算机技术领域作出突出贡献的科学家程序设计语言、编译理论与方法约占1/3本课程介绍程序设计语言编译程序构造的基本原理和基本实现技术.源语言程序目标语言程序翻译程序翻译1.1.什么是编译程序翻译程序把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)的程序高级语言程序机器语言程序结果编译程序翻译运行1.1.什么是编译程序编译程序(compile

4、r)把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序。(如C语言、PASCAL语言等是编译程序)诊断编译程序优化编译程序交叉编译程序可变目标编译程序1.1.什么是编译程序解释程序把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。(如BASIC语言是解释程序)源程序结果解释程序解释执行国防科技大学计算机系602教研室编译程序vs.解释程序编译解释1.2.编译过程把英文翻译为中文识别出句子中的一个个单词;分析句子的语法结构;根据句子的含义进行初步翻译;对译文进行修饰;写出最后的译文

5、。词法分析语法分析中间代码产生优化目标代码产生编译程序的工作一般分为五个阶段:词法分析语法分析中间代码产生优化目标代码产生1.2.编译过程有一个C语言程序,对它进行编译Voidjisuan(){inty,c,d;floatx,a,b;x=a+b*50;y=c+)d*(x+b;}举例说明1.词法分析任务:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号。依循的原则:构词规则描述工具:正规式和有限自动机FORI:=1TO100DO保留字标识符等符整常数保留字整常数保留字词法分析举例说明基本字(保留字:组成命令的关键字,系

6、统定义好的单词):void,int,float标识符(用户定义的函数名、变量名等):jisuan,a,b,c,d,x,y整常数:50运算符:*,+,=界限符(分隔开两部分的符号):{};,()词法分析依照此法规则,识别正确的单词,并将其转换成统一规格(类号、内码),备用。转换规则包括:对基本字、运算符、界限符的转换规则(有限的、可数的),对标识符的转换规则,对常数的转换规则等。一个C语言程序,对它进行词法分析Voidjisuan(){inty,c,d;floatx,a,b;x=a+b*50;y=c+)d*(x+b;}2.语法分析任务:在

7、词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。依循的原则:语法规则描述工具:上下文无关文法Z:=X+0.618*Y算术表达式,赋值语句语法分析举例说明赋值语句的语法规则:AV=EET

8、E+TTF

9、T*FFV

10、(E)

11、CF标识符C常数C语言程序Voidjisuan(){inty,c,d;floatx,a,b;x=a+b*50;y=c+)d*(x+b;}现在我们对x=a+b*50;进行语法分析。语法分析的方法为:推导(derive)和归约(reduce),推导是指从开始符号开始推出句子,包括最左推导、最右推

12、导,归约是推导的逆过程。最左推导对应最右归约;最右推导对应最左归约最右推导:将最右边的大写字母替换(大写字母代表非终结符)。AV=EV=E+TV=E+T*FV=E+T*CV=E+T*50V=E+

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。