- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
;为什么要学习编译原理;学习方法;;编译理论; 要求先学习以下课程
1.程序设计语言
2.算法与数据结构:栈分配、堆分配、静态分配等各种存储分配方式。线性表、二叉查找树、哈希表等多种数据结构。
3.离散数学:集合论与数理逻辑是进一步学习形式语言与自动机理论的数学基础。
最好学习过或同时学习以下课程
1.软件工程:掌握大型程序设计以及工程化的软件生产方法。
2.形式语言与自动机:相当于本课程中词法分析与语法分析的理论基础。
;第一章 引言
第二章 形式语言理论
第三章 自动机理论
第四章 词法分析
第五章 语法分析—自顶向下分析方法
第六章 语法分析—自底向上分析方法
;第一章 引言;1.1 编译程序、汇编程序、解释程序
1.2 编译过程概述
1.3 编译程序的开发;低级语言(Low level Language)
字位码、机器语言、汇编语言
特点:与特定的机器有关,功效高,???使用复杂、繁 琐、费时、易出错
高级语言
-- Fortran、Pascal、C 语言等
特点:不依赖具体机器,移植性好、对用户要求低、易使用、易维护等。;;;翻译程序(Translator)是一种程序,其输入是某种语言的一系列语句,而其输出则是另一种语言的一系列语句。;编译程序(Compiler)是一种程序。它把用高级语言写的源程序作为数据接收,经过翻译转换,产生面向机器的代码作为输出。
这当中代码还可能要由汇编程序或装配程序作进一步加工,得出目标程序,交给计算机执行。;源程序的编译和运行;工作过程;优点:
提供一种直接的交互调试能力,在执行用户程序时可以 修改用户程序。
对新的类型可动态地修改,如符号的意义。
提高良好的诊断信息
不依赖于目标机,移植性较好。
事实上,纯粹的解释程序并不多见,通常做某种程序的 结合。
;编译过程是指将高级语言程序翻译为等价的目标程序的过程。
;翻译和编译工作的比较;符号表管理;1. 词法分析;概念;示例;词法分析程序的结果-----二元式
(如:FOR K:=1 TO 100);2 语法分析;如:This line is a longer sentence;语法分析;;id1:=id2+id3*N ;进一步分析语法结构正确的程序是否符合源程序的上下文约束、运算相容性等规定。;语义分析;语义分析;语义分析(语言的规定和实现); ;;5 代码优化;代码优化;6 目标代码生成;(* , id3 60.0 t1 )
(+ , id2 t1 id1 ); 按逻辑功能不同,可将编译过程划分为五个基本阶段,与此
相对应,我们将实现整个编译过程的编译程序划分为五个
逻辑阶段(即五个逻辑子过程)。
;;1.3 编译程序的组织及开发;根据编译程序各部分功能,将编译程序分成前端和后端;.java java源程序文件;; 不同前端+同一后端 ? 同一机器生成几个语言的编译程序; 第一遍 第二遍
……
;一遍扫描即可完成整个编译工作的称为一遍扫描编译程序;应用:大部分软件工具的开发,都要使用编译技术和方法;其它应用:
文本编辑器
信息检索系统
模式识别器
排版、绘图系统;小结;1.判断下面的陈述是否正确。
(1)编译程序的五个组成部分缺一不可。?
(2)高级语言程序到低级语言程序的转换是基于语义的等价变换。
(3)含有优化部分的编译程序的执行效率高。 (4)因为编译程序和解释程序具有不同的功能,所以它们的实现技术也完全不同。
(5)编译程序和解释程序的根本区别在于解释程序对源程序并没有真正进行翻译。
(6)无论一遍扫描的编译器还是多遍扫描的编译器都要对源程序扫描一遍。;2.计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么?
3.画出编译程序的总体逻辑结构图,简述各部分的主要功能。
;;练 习
您可能关注的文档
- 第1节声音的产生和传播试题.ppt
- 第1节物质的变化试题.ppt
- 第1章__投资试题.ppt
- 第1章_物联网-《物联网基础》试题.ppt
- 第1章【】试题.ppt
- 第1章AutoCAD用户界面及基本操作试题.ppt
- 第1章GISN试题.ppt
- 第1章PROE简介试题.ppt
- 第1章单招班,计算机网络,,主编王协瑞,高等教育出版社试题.ppt
- 第1章电机的工作原理及特性试题.ppt
- 2024年广西罗城仫佬族自治县公开招聘城市协管员试题带答案详解.docx
- 2024年贵州省从江县公开招聘城市协管员试题带答案详解.docx
- 2024年贵州省岑巩县公开招聘城市协管员试题带答案详解.docx
- 2024年贵州省德江县公开招聘城市协管员试题带答案详解.docx
- 2024年贵州省关岭布依族苗族自治县公开招聘城市协管员试题带答案详解.docx
- 2024年贵州省独山县公开招聘城市协管员试题带答案详解.docx
- 2024年贵州省丹寨县公开招聘城市协管员试题带答案详解.docx
- 2024年贵州省大方县公开招聘城市协管员试题带答案详解.docx
- 2024年贵州省凤冈县公开招聘城市协管员试题带答案详解.docx
- 2024年贵州省黄平县公开招聘城市协管员试题带答案详解.docx
文档评论(0)