- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                大学,本科,专科,硕士,笔记,课件,期中试卷答案,期末试卷答案,教材答案,知识点,经济法,材料科学基础,材料力学,电路,电子技术基础,高频电子线路,宏观经济学,模拟电路基础,模拟电子技术,数字电路,数字电子技术,数字信号处理,通信原理,信号与系统,化工原理,机械设计基础,机械原理,机械制图,微机原理与接口技术,C++程序设计,JAVA技术与应用,MATLAB基础与应用,计算机网络,计算机组成原理,软件工程数据结构,工程力学,工程热力学,结构力学,力学,流体力学,水力学,工程测量,工程经济学,工程
                    典型的编译程序具有7个逻辑部分 语义分析及生成中间代码程序 代码生成程序 代码优化程序 语法分析程序 词法分析程序 错 误 处 理 符 号 表 管 理 1.4  编译阶段的组合 编译阶段也常常划分为两大步骤,分析步骤和综合步骤  分析步骤是指对源程序的分析  -线性分析(词法分析或扫描)  -层次分析(语法分析)  -语义分析  综合步骤是指后端的工作,为目标程序的生成而进行的综合      常常把编译的过程分为前端(front end)和后端(back end),前端的工作主要依赖于源语言而与目标机无关, 后端工作依赖于目标机而一般不依赖源语言.通常前端包括词法分析、语法分析、语义分析和中间代码生成这些阶段,某些优化工作, 即中间代码优化也可在前端做,也包括与前端每个阶段相关的出错处理工作和符号表管理等工作。后端工作包括目标代码生成和目标代码优化,以及相关出错处理和符号表操作。 若按照这种组合方式实现编译程序,可以设想:某一编译程序的前端加上相应不同的后端则可以为不同的机器构成同一个源语言的编译程序。也可以设想:不同语言编译的前端生成同一种中间语言,再使用一个共同的后端,则可为同一机器生成几个语言的编译程序。 一个编译过程可由一遍、两遍或多遍完成。 遍(趟)从头到尾扫描源程序(各种形式)一遍(pass)。   例如一遍可以只完成词法分析工作;一遍完成词法分析和语法分析工作;甚至一遍完成整个编译工作。   在实际的编译系统的设计中,编译的几个阶段的工作究竟应该怎样组合,即编译程序究竟分成几遍,参考的因素主要是源语言和机器(目标机)的特征。 比如源语言的结构直接影响编译的遍的划分;像PL/1或ALGOL 68 那样的语言,允许名字的说明出现在名字的使用之后,那么在看到名字之前是不便为包含该名字的表达式生成代码的,这种语言的编译程序至少分成两遍才容易生成代码。 另外机器的情况,即编译程序工作的环境也影响编译程序的遍数的划分。遍数多一点,整个编译程序的逻辑结构可能清晰些,但遍数多即意味着增加读写中间文件的次数,势必消耗较多时间,一般会比一遍的编译要慢。   高级语言解释系统(interpreter)   为了实现在一个计算机上运行高级语言的程序,主要有两个途径:第一个途径是把该程序翻译为这个计算机的指令代码序列,这就是我们已经描述的编译过程。第二个途径是编写一个程序,它解释所遇到的高级语言程序中的语句并且完成这些语句的动作,这样的程序就叫解释程序。    高级语言解释系统(interpreter) 功能       让计算机执行高级语言(basic,lisp,prolog) 与编译程序的不同     1)不生成目标代码                             2)能支持交互环境                                      源   程  序                                                                                                                     初始数据                                                                               解释程序 计算结果                 解释系统 直接对源程序中的语句进行分析,执行其隐含的操作。 如:… …         b := 2       ;         a :=  b+2  ;           编译程序        write    a   ;          … …   解释程序直接将4的值输出(显示)  Int 2 St b Ld b add  2 St a 生成代码 1.5 编译技术和软件工具(P7-8) 第1章  小结 内容 1 什么是编译程序 2 编译过程和编译程序的结构 3 为什么要学习编译程序 本章没有难以理解的内容,重点对编译程序的功能和结构做一综述,要说难点的话可能是:了解编译程序各个成分在编译阶段的逻辑关系以及他们怎样作为一个整体完成编译任务的。     * 第2章  代码生成   代码生成:   中间代码作为输入            特定机器的机器 语言或汇                                                     编语言作为输出, 这样的转换程序称为代码生成器,  中国地质大学《编译原理》 * 如果用‘op’表示运算符,用‘M’表示内存单元,用变量名表示该变量所在的单元,‘C’表示常量,‘*’表示间址方式存取,指令形式表(P278 表1
                您可能关注的文档
- 中国地质大学(武汉)《编译原理》课件-第7章LR分析法.ppt
- 中国地质大学(武汉)《编译原理》课件-第8章语法制导翻译和中间代码生成.ppt
- 中国农业大学《编译原理》课件-第1-2章引论.ppt
- 中国农业大学《编译原理》课件-第4章词法分析.ppt
- 中国农业大学《编译原理》课件-第5章自顶向下语法分析方法.ppt
- 中国农业大学《编译原理》课件-第9-10章符号表.ppt
- 中国农业大学《编译原理》课件-第11章代码优化.ppt
- 中央财经大学《编译原理》课件-第4章自顶向下的语法分析.ppt
- 中央财经大学《编译原理》课件-第5章 自底向上的语法分析.ppt
- 中央财经大学《编译原理》课件-第7章 语义分析和中间代码生成.ppt
 原创力文档
原创力文档 
                        

文档评论(0)