编译原理实验c语言cfg文法,河北工业大学编译原理期末复习.docx

河北工业大学编译原理期末复习.docx

考试题型填空 24简答 4*416解答 4*156Chapter 1 重要概念1.什么编译程序P3答编译程序的主要功能是把用高级语言编写的源程序翻译为等价的目标程序。2.编译程序的工作过程(6 个阶段)P41、词法分析程序 2、语法分析程序 3、语义分析程序 4、中间代码生成5、代码优化程序 6、目标代码生成(不做优化是 4 个阶段,5、6 不要)3.编译程序的逻辑结构P4 图 1-2 编译程序的逻辑结构4.执行高级语言编写的程序(编译执行、解释执行)1)按编译方式在计算机上执行用高级语言编写的程序,一般须经过两个阶段。第一个阶段称为编译阶段,其任务是由编译程序将源程序编译为目标程序,若目标程序不是机器代码,而是汇编语言程序,则尚需汇编程序再行汇编为机器代码程序;第二阶段称为运行阶段,其任务是在目标计算机上执行编译阶段所得到的目标程序。2)用高级语言编写的程序也可以通过解释程序来执行。解释程序也以源程序作为它的输入,它与编译程序的主要区别是在解释程序的执行过程中不产生目标程序,而是解释执行源程序本身。缺点这种边翻译边执行的方式工作效率很低,但由于解释程序的结构比编译程序简单,且占用内存较少,在执行过程中也易于在源程序一级对程序进行修改,因此一些规模较小的语言,如 BASIC,也常采用此种方式。5.P11 第一段编译程序的各部分之间的关系,是指他们之间的逻辑关系,而不一定是执行时间上的先后顺序,事实上,可按不同的执行流程来组织上述各部分的工作,这在很大程度上依赖与编译过程中对源程序扫描的遍数,以及如何划分各遍扫描所进行的工作。此处所说的“遍” ,是指对源程序或其内部表示从头到尾扫视一次,并进行有关的加工处理工作。(执行过程单遍扫描、多遍扫描(大多数) )Chapter 2 前后文无关文法和语言1.文法和语言的形式定义产生语言就是制定出有限个规则(文法) ,借助于它们,就能产生出此语言的全部句子。2.文法规则四要素文法 四要素(VN,VT,S,P) 。1产生语言的规则中的一系列需定义的语法范畴的名字称为非终结符号大写字母,其集合记为 VN2规则中不需进一步定义的基本符号称为终结符号,其集合记为 VT 3非终结符中最终需定义的那个为推导句子开始的语法范畴,称其为开始符号或识别符号,记作 S4每一规则是用 或 - 连接起来的有序对,也称为产生式,用 P 表示.3.句型的分析是指构造一种算法,用以判断所给符号串是否为某一文法的句型或句子 。分两类方法自顶向下分析从开始符推导出句子或句型自底向上分析从句子或句型归约出开始符4.短语和句柄语法树的应用语法分析(自顶向下分析,自底向上分析)用语法树进行句型分析用语法树自顶向下进行推导,-最右推导用语法树自底向上进行归约。最左规约5.文法和语言的 Chomsky 分类1)0 型文法或短语结构文法PSG2)1 型文法或前后文有关文法CSG3)2 型文法或前后文无关文法CFG.4)3 型文法或正规文法。 (左线性文法右线性文法)编译过程的词法分析使用正规文法(3 型文法)描述单词结构;语法分析采用前后文无关文法(2 型文法)描述语句结构课堂练习1)Chomsky 定义的四种形式语言文法分别为 0 型文法,1 型文法,2 型文法 ,3 型文法,其中 3 型文法用于描述词法,2 型文法用于描述语法。2)递归文法产生的语言语句集合是无限集合。3)规范推导是最右推导,规范归约是最左归约。定义每种语言的文法都是不 (不| )唯一的。文法的化简与改造主要包括无用符号和无用产生式的删除 ,产生式的消除 ,单产生式的消除几项内容。大题1)画出句子的语法树,找出所有的短语,直接短语和句柄(运算符最低原则)Chapter3 词法分析及词法分析程序1)了解 6 种定义,特点正规文法、状态转换图、有限自动机 FA(NFA、DFA) 、状态转换矩阵、正规表达式、正规集大题正规式状态图(NFA)确定化最小化顺序或,连接,闭包()状态转换图的五要素1)有限非空状态集 K2)有限输入字母表3)状态之间的映射关系 f4)初态 S0K5)终态集 ZK ()1.确定的有限自动机(DFA)若 FA 在每个状态,对输入符号的下一状态是唯一的,称此种 FA 为确定的有限自动机 DFA2.非确定的有限自动机(NFA)若 FA 在某个状态,对输入符号的下一状态不是唯一的,而是状态集的一个子集,称此种FA 为非确定的有限自动机 NFA。(3)正规式中用到符号* 闭包 最优 (优先顺序可用括号加以改变) 连接(不引起混乱可略去) 次之| 或 最后正规式将文法的终结符号用以上三种运算符连接起来组成的正规文法的表达式,是另一种用于描述正规文法的直观表示。正规集正规式所描述的字符串的集合。(4)词法分析方法(正规文法、状态转换图、状态转换矩阵)(5)单词描述(正规文法、状态转换图、有限自动机 FA(NFA、DFA) 、状态转换矩阵、正规表达式、正规集)课堂练习1.单词的编译器内部表示为二元式(class , value)2.单词的描述形式有许多种,包括文法形式正规文法,图示方式状态转换图,便于计算机存储的状态转换矩阵,自动机又分为 NFA,DFA 两种,正规表达式和正规集最便于体现单词的结构3.Bell 实验室 M.Lesk 等人用 C 语言研制的一个词法分析程序的自动生成工具叫 LEX4.判断(对)所有带有 的自动机都是非确定的自动机Chapter 4 语法分析和语法分析程序1.语法分析方法自顶向下分析法如递归下降法,LL(1)等(最左推导)自底向上分析法如算符优先法(分析表达式常用) ,LR 等(最右规约)大题 LR、SLR1(1)LL(1)-预测分析法(LL(1)分析法最左推导LL(1)分析表)1 编写文法,消除二义性;2 消除左递归、提取左因子;3 求 FIRST 集和 FOLLOW 集FIRST 可以推出的开头的终结符号或 FOLLOWA在所有句型中可能直接跟在 A 之后的终结符号4)检查是不是 LL1 文法(若不是 LL1,说明文法的复杂性超过自顶向下方法的分析能力 )5) 按照 LL1 文法构造预测分析表6) 实现预测分析器(2)算符优先分析法构造算符优先矩阵分析句子广义运算符 文法的终结符号广义运算对象 非终结符(3)LR(0)分析法A.引入 S-S 拓广文法B.构造识别所有规范句型全部的活前缀的 DFAC.构造 LR()分析表 产生式编号D.分析句子(4)SLR1分析表课堂练习1、LL(1)分析器由 缓冲区 , 分析栈 , 分析表 ,控制程序 四部分组成。2、语法分析的方法主要分为 自顶向下 和 自底向上 两大类,前者又包括 LL1分析法和递归下降法两种具体方法,后者又包括 LR 分析法和算符优先分析法两种具体方法3、判断( 错)1、自顶向下语法分析采用规范推导。 (最左)( 对)2、所有左递归文法均无法直接用 LL(1)分析方法进行语法分析。( 错)3、所有的自底向上语法分析,每步分析都是找出当前句型的句柄进行归约。 (算符优先矩阵最左素短语)( 对)4、一个文法如果是 LR(0)文法,则必定是 LR(1)文法。 (更多的文法适应() )Chapter 5 语法制导翻译及中间代码生成1语法制导翻译在一遍扫描中,由语法分析引导,既完成语法分析任务,又完成语义分析和中间代码生成方面的工作。实现方法对文法中的每一产生式,都附加一“语义动作”或“语义子程序” ,且在语法分析过程中,每当用一产生式进行推导或归约时,语法分析程序除执行相应的语法分析动作之外,同时调用相应的语义子程序。2属性文法一种附带有语义属性的前后文无关文法。3中间代码介于源程序与目标程序之间的代码形式,形式简单、含义明确、结构清晰、易于优化4四元式(操作符,第一操作数,第二操作数,结果)大题1.算术表达式2.布尔表达式改进记值3.程序流程控制语句的翻译(序列、条件分支、while 循环)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值