第一范文网 - 专业文章范例文档资料分享平台

编译原理简单复习

来源:用户分享 时间:2025/12/23 20:54:35 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

1、画出编译程序的总体结构图,简述其部分的主要功能。 [答案]

编译程序的总框图见下图。

图 编译程序的总体结构图

其中词法分析器,又称扫描器,它接受输入的源程序,对源程序进行词法分析,识别出一个个的单词符号。

语法分析器对单词符号串进行语法分析(根据语法规则进行推导或归纳),识别出程序中的各类语法单位,最终判断输入串是否构成语法上正确的“程序语句”。

语义分析及中间代码产生器,按照语义规则对语法分析器归纳出(或推导出)的语法单位进行语义分析并把它们翻译成一定形式的中间代码。

优化器对中间代码进行优化处理。其过程实际上是对中间代码进行等价替换,使程序在执行时能更快,并占用更小的空间。

目标代码生成器把中间代码翻译成目标程序。中间代码一般是一种与机器无关的表示形式,只有把它再翻译成与机器硬件相关的机器能识别的语言,即目标程序,才能在机器上运行。

表格管理模块保持一系列的表格,登记源程序的各类信息和编译各阶段的进展状况。编译程序各个阶段所产生的中间结果都记录在表格中,所需要的信息

也大多从表格中,所需要的信息也大多从表格中获取,整个编译过程都在不断地和表格打交道。

出错处理程序对出现在源程序中的错误进行处理。编译程序的各个阶段都有可能发现错误,出错处理程序要对发现的错误进行处理、记录,并反映给用户。

2.已知文法G: E->E+T|E-T|T T->T*F|T/F|F F->(E)|i

试给出下述表达式的推导及分析树

(1)i; (2)i*i+i (3)i+i*i (4)i+(i+i) [答案] (1)E=>T=>F=>i

(2)E=>E+T=>T+T=>T*F+T=>F*F+T=>i*F+T=>i*i+T=>i*i+F=>i*i+i (3)E=>E+T=>T+T=>F+T=>i+T=>i+T*F=>i+F*F=>i+i*F=>i+i*i

(4)E=>E+T=>T+T=>F+T=>i+T=>i+F=>i+(E)=>i+(E+T)=>i+(T+T)=>i+(F+T)

=>i+(i+T)=>i+(i+F)=>i+(i+i)

3. 文法G[S]为: S->Ac|aB A->ab B->bc

该文法是否为二义的?为什么? [答案] 对于串abc (1)S=>Ac=>abc (2)S=>aB=>abc

即存在两不同的最右推导 所以,该文法是二义的。 4. 令文法G[E]为:

E->E+T|E-T T->T*F|T/F|F F->(E)|I

对于它的一个句型E+T*F,指出这个句型的所有短语、直接短语、句柄和素短语。 [答案]

此句型的短语有:E+T*F,T*F, 直接短语为:T*F。 句柄为:T*F 素短语:T*F

5.已知文法G[E]: E→ET+|T T→TF* | F F→F^ | a

试证:FF^^*是文法的句型,指出该句型的短语、直接短语、句柄和素短语. [答案]

该句型对应的语法树如下:

该句型的短语有FF^^*,F,F^,F^^; 直接短语有F;F^; 句柄为F; 素短语为F^

搜索更多关于: 编译原理简单复习 的文档
编译原理简单复习.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4xeph14q9s7g2499hhug_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top