- 20
- 0
- 约2.29千字
- 约 5页
- 2017-01-07 发布于浙江
- 举报
2011~2012学年第1学期期末考试试卷
《编译原理答案》
一 、
3.源程序和目标程序
答:源程序是高级程序设计语言书写的程序,目标程序是低级程序设计语言(目标语言)书写的程序
4.规范推导
答:在推导的任何一步α(β,其中α、β是句型,都是对α中的最右非终结符进行替换,这种推导叫做最右推导,也叫做规范推导。
5.编译程序和解释程序
答:编译程序以一个可执行程序的描述作为输入,以另一个等价的可执行程序的描述作为输出。解释程序以一个可执行程序的描述作为输入,以执行这一可执行程序描述的结果作为输出。
二、简答题(每题5分,共20分)
1.编译程序在逻辑上由哪几部分组成?请简述每部分的功能。
答:编译程序总体框架图如下:
词法分析器,又称扫描器,输入源程序,进行词法分析,输出单词符号。
语法分析器,简称分析器,对单词符号串进行语法分析(根据语法规则进行推导或归约),识别出各类语法单位,最终判断输入串是否构成语法上正确的“程序”。
语义分析和中间代码产生器,按照语义规则对于法分析器归约出(或推导出)的语法单位进行语义分析并把它们翻译成一定形式的中加代码。
优化器,对中间代码进行优化处理
目标代码生成器,把中间代码翻译成目标程序。
表格管理:编译程序在工作过程中需要保持一系列的表格,以登记源程序的各类信息和编译各结点的进展状况。
一个编译程序不仅应能对书写正确的程序进行翻译,而且应能对出现在源程序中的错误进行恢复。如果源程序有错误,编译程序应设法发现错误,把有关错误信息报告给用户,这就是由错误处理程序完成的。
2.简述为什么自顶向下的语法分析技术不能处理具有左递归的文法。
答:在自顶向下的语法分析技术中,要解决的问题是根据当前输入符号判断将识别符号以及非终结符号替换成哪条规则的右部,若文法具有左递归,则在分析过程中,无法判断替换的规则,造成无穷递归求解过程。
3.设G=(VN,VT,P,S)是上下文无关文法,产生式集合P中任意一个产生式应具有什么样的形式?若G是正则文法呢?
答:上下文无关文法:对任一产生式α→β,都有α∈VN , β∈(VN∪VT)*
3型文法:任一产生式α→β的形式都为A→aB或A→a,其中A∈VN ,B∈VN ,a∈VT。
4.在编译器的存储组织中,活动记录是一个非常重要的数据结构,请写出一个典型的活动记录包含哪些域,以及这些域的用途是什么。(可以画图进行说明)
答:活动记录的区域如下图所示:
临时数据域:计算表达式时出现的那些值
局部数据域:保存局部于过程执行的数据
机器状态域:保存过程调用前的机器状态信息,包括程序计数器的值和寄存器的值
可选的访问链:引用存于其它活动记录中的非局部变量(静态链)
可选的控制链:用来指向调用者的活动记录(动态链)
实在参数域:用于存放调用过程提供给被调用那个过程的参数
返回值域:用于存放被调用返回给调用过程的值
三、推导题(共55分)
1.设文法G(S):S → S+aF | aF | +aF
F → *aF | *a
(1) 消除左递归和回溯; 构造相应的FIRST和FOLLOW集合; 构造预测分析表S→aFS | +aFS
S→+aFS | ε
F→*aF
F→F | ε
(2)构造FIRST集合和构造FOLLOW集合
FIRST(S)={a,+} FOLLOW(S)={#}
FIRST(S)={+,ε} FOLLOW(S)={#}
FIRST(F)={*} FOLLOW(F)={+,#}
FIRST(F)={*,ε) FOLLOW(F)={+,#}
(3)构造预测分析表(3分)
- a + * # S S→aFS S→+aFS - - S - S→+aFS - S→ε F - - F→*aF - F - F→ε F→F F→ε
2. 构造一个NFA,
(1) 接受字母表{a,b}上的正规式(a|b)*a(a|b) (a|b)描述的集合。(5分)
(2) 将(1)中的NFA转换为等价的DFA (5分)
3. 试指出,当执行上述程序时,分别采用、引用调用、时,程序执行后的输出结果i;
int b[5];
void q(int x; int y)
{
i=1;
x=x+2;
b[i]=15;
y=y+3;
b[i]=20
}
void main()
{
for (i=1; i=4; i++)
{
b[i]=i;
}
i=1;
q (b[i],b[i+1]);
for( i=1; i=4; i++)
{
printf(“%d\t”,b[i]);
}
}
答:
传值:{1, 2, 3, 4}或者{20,2,3,4}
引用:{20,
您可能关注的文档
- (辅修2011)刑法总则.ppt
- 《艾滋病的传播、诊断及职业性感染的预防》.pptx
- 《编译原理引论教学资料》Part1引论.ppt
- 《编译原理引论教学资料》Part2高级语言及其语法描述.ppt
- 《编译原理引论教学资料》Part3词法分析1.ppt
- 《编译原理引论教学资料》Part3词法分析2.ppt
- 《编译原理引论教学资料》Part3词法分析3.ppt
- 《编译原理引论教学资料》Part4自顶向下的语法分析.ppt
- 《编译原理引论教学资料》Part5自底向上的语法分析.ppt
- 《编译原理引论教学资料》Part7语义分析与中间代码生成.ppt
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
原创力文档

文档评论(0)