- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例1.1 某C语言源程序中书写了语句: abc def=23*y; 函数调用: x=sqrt(-100); 请问报错各将发生在编译的什么阶段? A. 词法分析 B. 语法分析 C. 语义分析 D. 编译过程不报错 例1.2 如果在C语言的源程序中,语句括号使用中缺少了一个“{”,由此引起编译过程中报错,问在编译的什么部分查出的错误?为什么? * * * * * * * * * * * * * * * * * * 第*页 (4) 常数表(literal table) 常数表的功能是存放在程序中用到的常量和字符串,因此快速插入和查找在常数表中也十分重要。但是,在其中却无需删除,这是因为它的数据全程应用于程序而且常量或字符串在该表中只出现一次。 (5) 中间代码(intermediate code) 根据中间代码的类型(例如四元式代码)和优化的类型,该代码可以是文本串的数组、临时文本文件或是结构的连接列表。对于进行复杂优化的编译器,应特别注意选择允许简单重组的表示。 第*页 (6) 目标代码(intermediate code) 存放最终生成的目标代码,该代码最终是文本形式的文件。 (7) 临时文件(temporary file) 计算机过去一直未能在编译时将整个程序保留在存储器中。这一问题已经通过使用临时文件来保存翻译时中间步骤的结果或通过“匆忙地”编译(也就是只保留源程序早期部分的足够信息用以处理翻译)解决了。 第*页 1.3 编译程序的设计 构造编译程序要掌握的内容 源语言:理解其结构和含义; 目标语言:必须清楚硬件的系统结构和指令的格式等; 编译方法。 第*页 1.3 编译程序的构造 一般实现编译程序的方法 1. 直接用机器语言编写编译程序 2. 用汇编语言编写编译程序 注:编译程序核心部分常用汇编语言编写。 3. 用高级语言编写编译程序 注:这是普遍采用的方法。 4. 自编译 5. 用编译工具自动生成:LEX(词法分析)与YACC(用于自动产生LALR分析表) 6. 移植(同种语言的编译程序在不同类型的机器之间移植) 第*页 本书构成及编译程序框架 章节 第3章 第4章、第5章 第7章 第6章、第8章 第*页 1.4 编译技术的发展及应用 1954年至1957年间,FORTRAN语言及其编译器的开发。花了18个人年。 几乎与此同时,Noam Chomsky开始研究语言文法(grammar,结构规则)的难易程度以及识别它们所需的算法来为语言分类。 在6 0年代和7 0年代进行的分析问题(parsing problem,用于限定上下文无关语言的识别的有效算法)的研究。 有穷自动机(finite automata)和正规式(regular expression) 的研究与乔姆斯基的研究几乎同时开始,引出了表示程序设计语言的单词的符号方式。 接着又深化了生成有效的目标代码的方法,这就是最初的编译器,实际上应称作代码改进技术(code improvement technique)。 当分析问题变得好懂起来时,人们就在开发程序上花费了很大的功夫来研究这一部分的编译器的自动构造。Lex与Yacc。 在70年代后期和80年代早期,大量的项目都关注于编译器其他部分的生成自动化,这其中就包括了代码生成。这些尝试并未取得多少成功。 第*页 1.4.1 编译技术最近的发展 与复杂的程序设计语言的发展结合在一起。如用于函数语言编译的Hindley-Milner类型检查的统一算法。 编译器已成为基于窗口的交互开发环境(IDE)的一部分,IDE的标准并没有多少,但已对标准的窗口环境进行了开发。近年来对此进行了大量研究,但是基本的编译器设计近20年来没有多大的改变,现在正迅速地成为计算机科学课程中的中心一环。 由多处理机的发展以及对并行处理的要求,最近的研究方向是并行编译。 随着嵌入式应用的迅速增长,推动了交叉编译技术的发展;对系统芯片设计方法和关键EDA技术的研究,也带动了专用语言VHDL等及其编译技术的不断深化。 第*页 1.4.2 为什么要学习编译原理及其构造技术 有助于深刻理解和正确使用程序设计语言; 有助于加深对整个计算机系统的理解; 编译技术可以用于其它软件的设计开发; 编译技术的地位变得越来越重要。 结论:是一门重要的专业基础课程。 掌握最基本的形式语言理论; 编译原理和编译程序的设计开发方法和技能; 为承担有一定规模和复杂度的实际软件课题奠定基础。 第*页 1.4.3 编译技
您可能关注的文档
- 2015届高考化学第一轮课堂知识点复习课件47研究.ppt
- 2015届九年级化学总复习教材知识梳理课件:第五单元化学方程式(共75张)研究.ppt
- 2015届中考常用仪器及基本实验操作复习课件研究.ppt
- 2015考研计算机统考组成原理部分研究.ppt
- 2015年地平线-副本研究.ppt
- 2015年高中物理5.3电感和电容对交变电流的影响课件新人教版选修3-2电感和电容对交变电流的影响研究.ppt
- 2015年浙江省高考一轮复习物理电场专题复习研究.ppt
- 2015年中考物理冲刺复习第九章压强(重难点突破+剖析实验)课件研究.ppt
- 2015钱塘湖春行研究.ppt
- 2015新苏教版五年级数学上册认识负数研究.ppt
最近下载
- 肝癌教学演示课件.pptx VIP
- 4.《水利工程设计变更管理暂行办法》(水规计〔2012〕93号).pdf VIP
- 2银保监会银行业金融机构监管数据标准化规范(2021版)数据结构一览表.xls VIP
- 课件:第一章 导论(《现代社会福利思想》课程).pdf VIP
- 地产返租协议书范本.docx VIP
- CJJT 281-2018桥梁悬臂浇筑施工技术标准.doc VIP
- 2025年中级(四级)设备点检员职业技能鉴定《理论知识》真题卷(后附答案及解析).docx VIP
- 中医治未病技术操作规范(穴位贴敷) .pdf VIP
- 《生态环境:保护》课件.ppt VIP
- Simcenter 3D电子行业推广策略.pptx VIP
文档评论(0)