山大编译原理整理
(完整)编译原理复习整理(重点含答案),推荐文档

1、给出下面语言的相应文法。
L1={a n b n c i|n≥1,i≥0}从n,i的不同取值来把L1分成两部分:前半部分是anbn:A→aAb|ab后半部分是ci:B→Bc|ε所以整个文法G1[S]可以写为:G1(S):S→AB ;A→aAb|ab ;B→cB|ε3、构造一个DFA,它接受 ={a,b}上所有包含ab的字符串。
(要求:先将正规式转化为NFA,再将NFA确定化,最小化)4、对下面的文法G:E →TE’ E’→+E|ε T →FT’ T’→T|εF →PF’ F’ →*F’|ε P →(E)|a|b|∧(1)证明这个文法是LL(1)的。
(2)构造它的预测分析表。
(1)FIRST(E)={(,a,b,^}FIRST(E')={+,ε}FIRST(T)={(,a,b,^}FIRST(T')={(,a,b,^,ε} FIRST(F)={(,a,b,^}FIRST(F')={*,ε}FIRST(P)={(,a,b,^}FOLLOW(E)={#,)}FOLLOW(E')={#,)}FOLLOW(T)={+,),#}FOLLOW(T')={+,),#}FOLLOW(F)={(,a,b,^,+,),#} FOLLOW(F')={(,a,b,^,+,),#}FOLLOW(P)={*,(,a,b,^,+,),#} (2)考虑下列产生式:'→+'→'→'→E E T T F F P E a b ||*|()|^||εεεFIRST(+E)∩FIRST(ε)={+}∩{ε}=φ FIRST(+E)∩FOLLOW(E')={+}∩{#,)}=φ FIRST(T)∩FIRST(ε)={(,a,b,^}∩{ε}=φ FIRST(T)∩FOLLOW(T')={(,a,b,^}∩{+,),#}=φ FIRST(*F')∩FIRST(ε)={*}∩{ε}=φFIRST(*F')∩FOLLOW(F')={*}∩{(,a,b,^,+,),#}=φ FIRST((E))∩FIRST(a) ∩FIRST(b) ∩FIRST(^)=φ 所以,该文法式LL(1)文法. (3)+ * ( ) a b ^ # EE TE →'E TE →' E TE →' E TE →'E' '→+E E'→E ε'→E εTT F T →' T F T →' T F T →' T F T →' T' '→T ε'→T T '→T ε '→T T '→T T '→T T '→T εFF P F →'F P F →' F P F →' F P F →'F' '→F ε '→'F F * '→F ε '→F ε '→F ε '→F ε '→F ε '→F εPP E →() P a → P b → P →^5、考虑文法: S →AS|b A →SA|a (1)列出这个文法的所有LR(0) 项目。
山大编译原理整理

第一大题小题概念题,下面会零散分布第二大题正规集、正规式、NFA、DFA、3型文法(正规式跟正规集是一样的,更好描述,更精确)这五个点是等价的,要求可以互相转换(老师原话:最讨厌的是给正规集,构造正规式或者文法自动机到文法的转换,自己可以看一下)考试要求的是最基本的转换:给正规式,构造它对应的DFA(三个步骤,一个步骤5分)1、先把正规式变化为NFA(规则是死的,有三种规则拆弧或增加弧或增加节点,把字拆的越来越短,最后满足一条弧上要么是一个字符或者是一个空字)(见PPT的3.7 3.8节)2、用子集构造法( -closure)确定化为DFA确定化是对NFA的状态重新组合3、化简词法分析和语法分析都用到的理论基础是形式语言与自动机词法分析用到是自动机(自动机的模型很棒,处理离散问题的一个经典的数学模型,例如电梯控制,密码破译等等)语法分析是重点(两部分)文法的概念:文法是对语言语法结构的一种形式化描述,通过文法的话非常精确。
(什么是文法?)(这是老师口述,建议可以再自查校对一下)乔姆斯基定义了四种类型的文法:PPT的chapter4-1语法分析P700型文法 1型文法2型文法(上下文无关文法)3型文法(正规文法)其中,V T:终结符号,是小写符号的集合,例{a,b}V N:非终结符号,是大写符号的集合,例{A,B}S:开始符号P:产生式例:文法G:S→P|aPPbP→ba|bQaQ→abV T:{a,b} V n:{S,P,Q} 开始符号:S 产生式:以上三行几个简单的定义:句子:文法的语言:给出一个文法,说出这个文法的语言是什么例1:例2:G:S→P|aPPbP→ba|bQaQ→ab求语言,L(G)此处为正规式的表述:(ba+|aba(ba)+b)求语言一般用语言描述就好,参见例1例3例3:例4:语言:{a m b n|m,n>=1}集合元素是什么?答:以a开头以b结尾的ab串(只写是ab串是不得分的){a n b n| n>=1}给一个语言,把文法描述出来(太难,掌握2型的就好,目测不考)文法的二义性如果问如何证明文法是二义的,参见课本第二章的第九题,文法的改写很重要!通过文法的改写:1 消除了二义性2 消除了左递归3 消除了回溯写文法的题会有语法分析方法两类四种:两类是推导和规约这两种方法的特点:自上而下有四个问题:①回溯问题②虚假匹配问题③不能左递归④错误匹配不准确自下而上只有一个问题:确定这个句子里哪个串是可规约串必须掌握两种方法:第三大题给一个文法,构造一个LL(1)分析表(实际上是构造它的预测分析方法)两种类型的题型:1 给一个文法,问:它是LL(1)文法么这个问题可以直接判定它是或者不是(有左递归就不是LL(1))2 给一个文法,构造它的LL(1)分析表,判断是不是LL(1)文法这个问题里面可能含有左递归,那第一步需要消除左递归,第二步要消除回溯,然后要求两个集合,FIRST和FOLLOW这两个集合然后构造表,如果里面有冲突的话,就不是,如果没有冲突的话,就是LL(1)文法记住一个定理,递归下降子程序(不考)递归下降方法的特点:自然,容易写要求写编译程序的语言是支持递归的代码长第四大题规约算符优先方法(了解)LR方法:LR(0)SLR(1)二义文法的应用这三个选一个(我猜是后两个选一个)LR方法转换为:给一个文法,构造识别这个文法活前缀的下垂自动机(核心问题)直接话项目集组,看看里面有没有冲突没有冲突就是LR(0),有冲突看看能不能依靠FOLLOW集去解决,FOLLOW集解决解决不掉就用规范LR(1)文法有二义性时,用硬规定的方式消除掉二义性遇到这种题,把冲突消除的时候,要说明用什么规则消除的,要不然扣分语义分析:(小题)知道什么是属性文法什么是语法制导翻译中间代码生成:小题:什么是中间代码?为什么引用中间代码?尤其注意有四种常见的中间代码形式,会用它表示例:给一个中缀形式,表示成后缀形式,三元式,四元式,间接三元式第五大题大题:给一个句子,要求语法制导翻译成中间代码仅写中间代码的话,不得分(一般采用四元式,看四元式生成的个数对不对)把语法分析生成过程一步步写出来,尽可能简写,或者画出来语法分析树1 把中间代码四元式单独写成一个表2 一定要把语法制导的过程写出来尽可能简练3 遗留问题符号表管理不考出错管理概念性知道:1 编译程序能够发现几种类型的错误语法错误(包括语法错误和词法错误)和语义错误(只能发现部分的)2 错误处理方法有几种方式:一个矫正,另一个是局部化优化:重要思想:流图概念性知道:有三种层次的优化:局部优化,循环优化和全局优化局部优化的算法要求掌握 dag 借助无环路有向图实现了局部优化循环优化:代码外提,强度削弱,改变控制变量全局优化基本的目标代码生成算法,必须掌握最后一个大题dag图实现局部优化,优化以后反写得到中间代码,再到目标代码生成目标代码生成:待用信息、活跃信息要求一下生成过程中,两个数组R-value和A-value要描述一下生成较优的目标代码的话需要注意dag反写时的次序运行时:内存分配方案有两种,一个静态一个动态,有什么特点,看一下,动态分配又叫栈式活动记录看一下形参实参的四种方式是什么意思。
编译原理知识点总结

编译原理知识点总结编译原理是计算机科学中的一个重要领域,它研究的是将高级程序语言转化为可执行目标代码的原理和方法。
在软件开发过程中,编译器起着至关重要的作用,因此了解编译原理的知识点对于理解和优化程序的性能至关重要。
1. 词法分析:词法分析是编译器的第一步,它将源代码划分为一个个的词法单元,如关键字、标识符、运算符等。
词法分析器通过正则表达式和有限自动机来实现,可以有效地将源代码转化为词法单元流。
2. 语法分析:语法分析是编译器的第二步,它通过语法规则将词法单元流转化为抽象语法树(AST)。
语法分析器使用上下文无关文法来描述语言的语法结构,并通过LL(1)分析、LR(1)分析等算法来构建抽象语法树。
3. 语义分析:语义分析是编译器的第三步,它对抽象语法树进行语义检查和类型推断。
语义分析器会检查变量的作用域、类型是否匹配等语义错误,并生成中间代码或目标代码。
4. 中间代码生成:中间代码生成是编译器的一项重要任务,它将抽象语法树转化为中间表示形式,如三地址码、四地址码等。
中间代码是一种抽象的低级语言,便于后续的优化和目标代码生成。
5. 代码优化:代码优化是编译器的关键环节,它通过对中间代码进行分析和优化,提高程序的执行效率和资源利用率。
常见的代码优化技术包括常量折叠、循环优化、函数内联等。
6. 目标代码生成:目标代码生成是编译器的最后一步,它将中间代码转化为目标机器代码。
目标代码生成器根据目标机器的特性和指令集,生成可执行的目标代码。
7. 符号表管理:符号表是编译器中用于管理变量、函数等符号信息的数据结构。
符号表包含了符号的名称、类型、作用域等信息,编译器在词法分析、语法分析和语义分析阶段使用符号表进行符号的查找和管理。
8. 错误处理:错误处理是编译器中一个重要的组成部分,它负责检测和报告源代码中的错误。
编译器需要能够准确地定位错误的位置,并给出有意义的错误信息,帮助程序员快速定位和修复错误。
编译原理涉及的知识点非常广泛,上述仅是其中的一部分。
(山商)编译原理(复习版)

编译原理复习指南前四章占70分,后三章占30分。
【新复习范围如下】第二章:2.3, 2.13, 2.14第三章:3.2,3.3,3.10,3.16第四章:4.3,4.10,4.13第五章:5.4,5.6第六章:6.3, 6.10, 6.11第七章:7.1, 7.2第二章2.3 叙述由下列正规式描述的语言。
(1)0(0|1)*0(2)((ε|0)1*)*(3)(0|1)*0(0|1)(0|1)(4)0*10*10*10*(5)(00|11)*((01|10)(00|11)*(01|10)(00|11)*)*解:其中一种表述(这里说的01串包括ε)(1)0(0|1)*0 以0开头和结尾的长度至少是2的01串(2)((ε|0)1*)* 所有的01串(3)(0|1)*0(0|1)(0|1) 倒数第三位是0的01串(4)0*10*10*10* 含有3个1的01串(5)(00|11)*((01|10)(00|11)*(01|10)(00|11)*)* 含有偶数个0和偶数个1的01串2.13构造表示0,1个数都是偶数的01字符串的DFA。
2.14构造DFA,识别{0,1}上能被5整除的二进制数。
解:已读过尚未读已读部分的值某时刻 101 0111000 5读进0 1010 111000 5 ⨯ 2 = 10读进1 10101 11000 10 ⨯ 2 + 1= 21读进2 101011 1000 21 ⨯ 2 + 1= 43读进3 1010111 000 43 ⨯ 2 + 1= 875个状态即可,分别代表已读部分的值除以5的余数第三章3.2考虑文法S->aSbS|bSaS|ε(a) 为句子abab构造两个不同的最左推导,以说明此文法二义。
(b) 为abab构造对应的最右推导。
(c) 为abab构造对应的分析树。
(d) 这个文法产生的语言是什么?解:(a) 最左推导:(1) S=>aSbS=>abS=>abaSbS=>ababS=>abab(2) S=>aSbS=>abSaSbS=>abaSbS=>ababS=>abab(b)最右推导:(1) S=>aSbS=>aSbaSbS =>aSbaSb=>aSbab =>abab(2) S=>aSbS=>aSb=>abSaSb=>abSab =>abab(c) 描述的语言是:a,b数目相等的串3.3下面的二义文法描述命题演算公式的语法,为它写一个等价的非二义文法。
编译原理知识点汇总

编译原理的复习提纲1.编译原理=形式语言+编译技术2.汇编程序:把汇编语言程序翻译成等价的机器语言程序3.编译程序:把高级语言程序翻译成等价的低级语言程序4.解释执行方式:解释程序,逐个语句地模拟执行翻译执行方式:翻译程序,把程序设计语言程序翻译成等价的目标程序5.计算机程序的编译过程类似,一般分为五个阶段:词法分析、语法分析、语义分析及中间代码生成、代码优化、目标代码生成词法分析的任务:扫描源程序的字符串,识别出的最小的语法单位(标识符或无正负号数等)语法分析是:在词法分析的基础上的,语法分析不考虑语义。
语法分析读入词法分析程序识别出的符号,根据给定的语法规则,识别出各个语法结构。
语义分析的任务是检查程序语义的正确性,解释程序结构的含义,语义分析包括检查变量是否有定义,变量在使用前是否具有值,数值是否溢出等。
语法分析完成之后,编译程序通常就依据语言的语义规则,利用语法制导技术把源程序翻译成某种中间代码。
所谓中间代码是一种定义明确、便于处理、独立于计算机硬件的记号系统,可以认为是一种抽象机的程序代码优化的主要任务是对前一阶段产生的中间代码进行等价变换,以便产生速度快、空间小的目标代码编译的最后一个阶段是目标代码生成,其主要任务是把中间代码翻译成特定的机器指令或汇编程序编译程序结构包括五个基本功能模块和两个辅助模块6.编译划分成前端和后端。
编译前端的工作包括词法分析、语法分析、语义分析。
编译前端只依赖于源程序,独立于目标计算机。
前端进行分析编译后端的工作主要是目标代码的生成和优化后端进行综合。
独立于源程序,完全依赖于目标机器和中间代码。
把编译程序分为前端和后端的优点是:可以优化配置不同的编译程序组合,实现编译重用,保持语言与机器的独立性。
7.汇编器把汇编语言代码翻译成一个特定的机器指令序列第二章1.符号,字母表,符号串,符号串的长度计算P18,子符号串的含义,符号串的简单运算XY,X n,2.符号串集合的概念,符号串集合的乘积运算,方幂运算,闭包与正闭包的概念P19,P20 A0 ={ε}3.重写规则,简称规则。
山东大学编译原理Compiler-lab

• Source Language – A subset of C • Target Language – Assembler • Performance Criteria – Compiler speed – Code quality – Error diagnostics – Portability • Re-target-ability (for a new target language) • Re-host-ability (run on a new machine) – Maintainability
A Programming Project
• Suggested exercises – Write the semantic actions(Required) • Do semantic analysis at this time. Converting integers to real numbers when necessary – Write the parser(Required) • LALR parser generator (Yacc) – Write the error-handling routines (Optional)
A Programming Project
• Suggested exercises – Design a symbol-table mechanism (Required) • Search the symbol table for a given name • Create a new entry for that name if none is present • Delete from the symbol table all names local to a given function
重要专题梳理山东省考研计算机学科复习资料编译原理难点解析

重要专题梳理山东省考研计算机学科复习资料编译原理难点解析重要专题梳理—山东省考研计算机学科复习资料编译原理难点解析编译原理作为计算机学科中的重要专题,不仅在山东省考研中占据较大的比重,也是计算机相关专业的核心知识。
本文将针对编译原理的难点进行解析,帮助考生更好地复习备考。
一、词法分析词法分析是编译过程中的第一步,其目的是将源程序拆分成一个个的单词记号,为后续的语法分析提供基础数据。
在复习过程中,考生需要重点关注以下几个难点。
1. 正则表达式与有限自动机的转换正则表达式与有限自动机之间的转换是词法分析中的核心内容。
在复习中,考生需要了解正则表达式的基本语法,明确NFA(非确定有限自动机)与DFA(确定有限自动机)之间的转换方法。
2. 最长匹配原则最长匹配原则在词法分析中起着至关重要的作用。
面临多个正则表达式同时匹配的情况时,考生需要掌握最长匹配原则的应用,使得词法分析具有准确性和效率性。
3. 错误恢复在词法分析过程中,遇到错误是难以避免的。
考生需要了解错误恢复的策略,比如如何跳过错误的字符,恢复到正确的分析位置等。
二、语法分析语法分析是编译过程中的核心环节,其主要任务是根据词法分析得到的单词记号序列,构建语法树,进行语法分析与语义分析。
以下是语法分析中的重要难点。
1. 自顶向下分析自顶向下分析通常采用的是预测分析法,即根据产生式和输入的单词记号,预测推导出目标语言的语法结构。
在复习中,考生需要熟练掌握预测分析法,并能够应用到具体问题中。
2. 文法的消除左递归消除左递归是解决文法产生式中可能出现的左递归问题,为构建语法树提供准确简洁的规则。
考生在复习中,需要了解文法消除左递归的基本方法,并且能够针对具体的产生式进行消除操作。
3. LL(1)文法与FIRST/FOLLOW集合LL(1)文法是一种重要的上下文无关文法,能够适用于自顶向下的语法分析方法。
在复习过程中,考生需要掌握LL(1)文法的基本特点,并理解FIRST集合和FOLLOW集合的作用及求解方法。
《编译原理》重点知识总结

《编译原理》知识点总结目录第一章引论第二章高级语言及其语法描述第三章语法分析——自上而下分析第四章属性文法和语法制导翻译第五章语义分析和中间代码产生第六章优化第一章引论一.编译程序(compiler):把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序二.编译程序的工作的五个阶段:词法分析、语法分析、中间代码产生、优化、目标代码产生1.词法分析任务: 输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号。
依循的原则:构词规则描述工具:有限自动机FOR I := 1 TO 100 DO保留字标识符等符整常数保留字整常数保留字2.语法分析任务:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。
依循的原则:语法规则述工具:上下文无关文法3.语义分析与中间代码产生任务:对各类不同语法范畴按语言的语义进行初步翻译。
(变量是否定义、类型是否正确等)依循的原则:语义规则中间代码:三元式,四元式,逆波兰记号,树形结构等。
是一种独立于具体硬件的记号系统。
例:将Z:=X + 0.618 * Y 翻译成四元式为(1) * 0.618 Y T1(2) + X T1 T2(3) := T2 _ Z4. 优化任务:对于前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码。
依循的原则:程序的等价变换规则FOR K:=1 TO 100 DOBEGINM := I + 10 * K;N := J + 10 * K;END4.目标代码产生任务: 把中间代码变换成特定机器上的目标代码。
依赖于硬件系统结构和机器指令的含义目标代码三种形式:a)绝对指令代码: 可直接运行b)可重新定位指令代码: 需要连接装配c)汇编指令代码: 需要进行汇编第二章高级语言及其语法描述2.1.1语法词法规则:单词符号的形成规则。
a)单词符号是语言中具有独立意义的最基本结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一大题
小题概念题,下面会零散分布
第二大题
正规集、正规式、NFA、DFA、3型文法
(正规式跟正规集是一样的,更好描述,更精确)
这五个点是等价的,要求可以互相转换
(老师原话:最讨厌的是给正规集,构造正规式或者文法
自动机到文法的转换,自己可以看一下)
考试要求的是最基本的转换:给正规式,构造它对应的DFA
(三个步骤,一个步骤5分)
1、先把正规式变化为NFA
(规则是死的,有三种规则拆弧或增加弧或增加节点,把字拆的越来越短,最后满足一条弧上要么是一个字符或者是一个空字)
(见PPT的3.7 3.8节)
2、用子集构造法( -closure)确定化为DFA
确定化是对NFA的状态重新组合
3、化简
词法分析和语法分析都用到的理论基础是形式语言与自动机
词法分析用到是自动机(自动机的模型很棒,处理离散问题的一个经典的数学模型,例如电梯控制,密码破译等等)
语法分析是重点(两部分)
文法的概念:文法是对语言语法结构的一种形式化描述,通过文法的话非常精确。
(什么是文法?)(这是老师口述,建议可以再自查校对一下)
乔姆斯基定义了四种类型的文法:PPT的chapter4-1语法分析P70
0型文法 1型文法
2型文法(上下文无关文法)3型文法(正规文法)
其中,
V T:终结符号,是小写符号的集合,例{a,b}
V N:非终结符号,是大写符号的集合,例{A,B}
S:开始符号
P:产生式
例:
文法G:S→P|aPPb
P→ba|bQa
Q→ab
V T:{a,b} V n:{S,P,Q} 开始符号:S 产生式:以上三行几个简单的定义:
句子:
文法的语言:
给出一个文法,说出这个文法的语言是什么
例1:
例2:
G:S→P|aPPb
P→ba|bQa
Q→ab
求语言,L(G)
此处为正规式的表述:(ba+|aba(ba)+b)
求语言一般用语言描述就好,参见例1例3
例3:
例4:
语言:{a m b n|m,n>=1}
集合元素是什么?答:以a开头以b结尾的ab串(只写是ab串是不得分的){a n b n| n>=1}
给一个语言,把文法描述出来(太难,掌握2型的就好,目测不考)
文法的二义性
如果问如何证明文法是二义的,参见课本第二章的第九题,
文法的改写很重要!
通过文法的改写:
1 消除了二义性
2 消除了左递归
3 消除了回溯
写文法的题会有
语法分析方法
两类四种:两类是推导和规约
这两种方法的特点:
自上而下有四个问题:
①回溯问题②虚假匹配问题③不能左递归④错误匹配不准确
自下而上只有一个问题:确定这个句子里哪个串是可规约串
必须掌握两种方法:
第三大题
给一个文法,构造一个LL(1)分析表
(实际上是构造它的预测分析方法)
两种类型的题型:
1 给一个文法,问:它是LL(1)文法么
这个问题可以直接判定它是或者不是(有左递归就不是LL(1))
2 给一个文法,构造它的LL(1)分析表,判断是不是LL(1)文法
这个问题里面可能含有左递归,那第一步需要消除左递归,第二步要消除回溯,然后要求两个集合,FIRST和FOLLOW这两个集合
然后构造表,如果里面有冲突的话,就不是,如果没有冲突的话,就是LL(1)文法
记住一个定理,
递归下降子程序(不考)
递归下降方法的特点:
自然,容易写
要求写编译程序的语言是支持递归的
代码长
第四大题
规约
算符优先方法(了解)
LR方法:
LR(0)
SLR(1)
二义文法的应用
这三个选一个(我猜是后两个选一个)
LR方法转换为:
给一个文法,构造识别这个文法活前缀的下垂自动机(核心问题)
直接话项目集组,看看里面有没有冲突
没有冲突就是LR(0),有冲突看看能不能依靠FOLLOW集去解决,FOLLOW集解决解决不掉就用规范LR(1)
文法有二义性时,用硬规定的方式消除掉二义性
遇到这种题,把冲突消除的时候,要说明用什么规则消除的,要不然扣分
语义分析:(小题)
知道什么是属性文法
什么是语法制导翻译
中间代码生成:
小题:
什么是中间代码?
为什么引用中间代码?
尤其注意有四种常见的中间代码形式,会用它表示
例:给一个中缀形式,表示成后缀形式,三元式,四元式,间接三元式
第五大题
大题:给一个句子,要求语法制导翻译成中间代码
仅写中间代码的话,不得分
(一般采用四元式,看四元式生成的个数对不对)
把语法分析生成过程一步步写出来,尽可能简写,或者画出来语法分析树
1 把中间代码四元式单独写成一个表
2 一定要把语法制导的过程写出来尽可能简练
3 遗留问题
符号表管理不考
出错管理概念性知道:
1 编译程序能够发现几种类型的错误
语法错误(包括语法错误和词法错误)和语义错误(只能发现部分的)
2 错误处理方法有几种方式:一个矫正,另一个是局部化
优化:
重要思想:流图
概念性知道:有三种层次的优化:局部优化,循环优化和全局优化
局部优化的算法要求掌握 dag 借助无环路有向图实现了局部优化
循环优化:代码外提,强度削弱,改变控制变量
全局优化
基本的目标代码生成算法,必须掌握
最后一个大题
dag图实现局部优化,优化以后反写得到中间代码,再到目标代码生成
目标代码生成:待用信息、活跃信息要求一下
生成过程中,两个数组R-value和A-value要描述一下
生成较优的目标代码的话需要注意dag反写时的次序
运行时:内存分配方案有两种,一个静态一个动态,有什么特点,看一下,动态分配又叫栈式
活动记录
看一下形参实参的四种方式是什么意思。