编译原理要点整理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理要点整理

编译原理要点整理 //红色字体标注的是重点中的重点,大题的归宿 引论 翻译器,编译器的定义 编译器工作步骤和流程 编译器前端后端的概念,理解为什么要有前端后端 “遍”的概念 词法分析 词法分析器的定义 词法分析器所要完成的任务 记号,模式,词法单元概念区分 串的运算(和,连接,指数,闭包,正闭包) 正规定义 转换图(注意开始状态和结束状态以及需要将指针回退的状态) 不确定的有限自动机(NFA)定义 确定的有限自动机(DFA)定义 从正规式到NFA(明确通过正规式如何构造连接运算,和运算,闭包运算的NFA) 此方法产生的NFA的性质 从NFA到DFA(子集构造法) DFA的化简(合并不可区别状态) 从语言描述直接到DFA 了解Lex 学完本章:能语言描述改写成正规定义,能将正规定义转化为语言描述,给出一个正规式,能转换成相应的NFA,DFA并化简。 语法分析 上下文无关文法定义 区分句子和句型 最左推导 最右推导 分析树 文法二义性 消除左递归 提左因子 了解语言鸟瞰(0型文法:短语文法;1型文法:上下文有关文法;2型文法:上下文无关文法;3型文法:正规式) FIRST集合 FOLLOW集合定义及计算方法 LL(1)文法定义 了解自上而下的递归下降的预测分析 自上而下非递归的预测分析(详细明确预测分析器接受某一输入串时的具体过程,明确栈如何变化,输入输出如何变化) 预测分析表的构造 句柄的概念 自下而上的分析方法:用栈实现移近-归约分析(详细明确预测分析器接受某一输入串时的具体过程,明确栈如何变化,输入输出如何变化) LR文法和LR分析算法 构造SLR分析表(从文法构造识别活前缀的DFA(LR(0)项目集规范族),从DFA构造SLR分析表) 构造规范的LR分析表(从文法构造识别活前缀的DFA(LR(1)项目集规范族),从DFA构造规范的LR分析表) 构造LALR分析表(从文法构造识别活前缀的DFA(合并同心的LR(1)项目集),从DFA构造规范的LR分析表)(合并同心项目集可能会引起归约-归约冲突,不会引起新的移进-归约冲突) 学完本章:能计算FIRST集合和FOLLOW集合;给定一个文法,能判断是否是LL(1)文法,并为其构造分析表;能构造LR(1)文法的三种预测分析表;明确移近归约分析中的每一个步骤,明确栈如何变化。 语法制导的翻译 语法制导的定义 综合属性(S属性定义) 注释分析树(S属性定义可以自下而上的完成) 继承属性 语法树 S属性的自下而上计算(将LR分析器增加一个域来保存综合属性值)(一定要明确每一步移近-归约时属性栈如何变化) L属性定义(例:变量类型声明的语法制导定义) 翻译方案(能根据文法以及需要计算的属性写出一个翻译方案) L属性定义的自上而下的计算 L属性定义的自下而上的计算 学完本章:要能根据要求设计简单问题的语法制导定义和翻译方案。 例:为文法 S— ( L ) | a L— L , S | S 写一个语法制导定义,它输出括号的对数。 (不要求) 运行时存储空间的组织和管理 过程定义、过程调用、形式参数、实在参数、活动的生存期 名字的作用域和绑定 活动记录(运行程序时存储区布局,活动记录的一般布局) 局部数据的安排(内存对齐问题) 局部存储分配策略 全局存储分配策略(静态,栈式,堆式) 运行栈 活动树 访问链 控制链 非局部名字的访问(静态作用域,动态作用域的区别) 四种参数传递方式的区别(值调用,引用调用,复写-恢复调用,换名调用) 学完本章:能判断一个变量的作用域;熟悉静态分配与动态栈式分配的区别;明确非局部数据访问的实现方法;各种参数传递方式的区别;会处理内存对齐问题;会画活动树。 例:指出下面程序中各个变量对应的分配策略? int a; void p(int b){ int c; int *d = malloc(sizeof(int)*b); } void main(){p(3);} 中间代码生成 中间语言(能将表达式转化为后缀表示,图形表示,三地址代码形式) 区分图形表示中的语法树和有向无环图 学完本章:能将表达式转化为后缀表达式,语法树,有向无环图,三地址代码形式。 例:将表达式a := (b + c*d ) + c*d转化为后缀表达式,有向无环图,三地址代码形式 代码生成 指令的代价 学完本章:会计算指令的代价 例:指令 代价 MOV R0,R1 1 MOV R5,M 2 ADD #1, R3 2 SUB 4(R0), *12(R1) 3 高效能学习的大学习方法

文档评论(0)

ahuawendang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档