| 显示联大系统信阳师范编译原理所有答案 |
|
[计算题,2.5分] 设某语言的for语句的形式为 for i:=E(1) TO E(2) do S 其语义解释为 i:=E(1); LIMIT:=E(2); again:if i<=LIMIT then BEGIN S; i:=i+1;
|
答案是:产生式
|
|
[计算题,2.5分] 试为表达式w+(a+b)*(c+d|(e-10)+8)写出相应的逆波兰表示
|
答案是:wab+cde10-|+8*+
|
|
[计算题,2.5分] 构造正规式1(0 |1)*101的DFA
|
答案是:DFA
|
|
[计算题,2.5分] While a>0 ∨ b<0 do Begin X:=X+1; if a>0 then a:=a-1 else b:=b+1 End; 翻译成四元式序列
|
答案是:控制结构|其它
|
|
[计算题,2.5分] 把下面的语句翻译成四元式序列。 (只给出最后结果,设LABEL当前值为100) while A
|
答案是:四元式序列
|
|
[计算题,2.5分] 对以下基本块 T1:=2 T2:=A-B T3:=A+B T4:=T2*T3 T5:=3*T1 T6:=A-B L:=A+B T7:=T6*L T8:=T5*4 M:=T8+T7 L:=M 假设只有L在基本块出口之后还
|
答案是:四元式
|
|
[计算题,2.5分] 已知文法G(S): S→a|∧|(T) T→T,S|S 给出句型((T,S),a)的短语、直接短语、句柄
|
答案是:短语|直接短语|句柄
|
|
[计算题,2.5分] 给定文法 G[S] : S → Aa|dAb|Bb|dBa A → c B → c 构造文法 G[S] 的 LR ( 1 )分析表
|
答案是:分析表
|
|
[计算题,2.5分] 设文法G(S): S→(L)|a S|a L→L,S|S 计算每个非终结符的FIRST和FOLLOW;
|
答案是:FIRST|FOLLOW
|
|
[填空题,10分] 逆波兰式 ab+c+ d*e- 所表达的表达式为()
|
答案是:(a+b+c)*d-e
|
|
[填空题,10分] 语法分析器的输入是(),其输出是()
|
答案是:单词符号串|语法单位
|
|
简单子树
|
答案是:只有上下两代的子树
|
|
子树
|
答案是:语法树中任一结点连同所用分支组成的部分
|
|
语法树
|
答案是:推导的图形表示
|
|
句柄
|
答案是:一个句型的最左直接短语
|
|
[简答题,10分] 试为表达式 w+(a+b)*(c+d|(e-10)+8) 写出相应的逆波兰表示
|
答案是:w a b + c d e 10 - | + 8 + * +
|
|
[简答题,10分] 考虑文法 G[S]: S → (T) | a+S | a T → T,S | S 消除文法的左递归
|
答案是:消除文法G[S]的左递归: S→(T) | a+S | a T→ST′ T′→,ST′| ε
|
|
[简答题,10分] 简要说明语义分析的基本功能
|
答案是:语义分析的基本功能包括: 确定类型、类型检查、语义处理和某些静态语义检 查
|
|
[填空题,10分] 语法分析是依据语言的()规则进行的,中间代码产生是依据语言的()规 进行的
|
答案是:语法|语义
|
|
[填空题,10分] 从功能上说,程序语言的语句大体可分为()语句和()语句两大类
|
答案是:执行性|说明性
|
|
广义推导
|
答案是:经0步到多步推导出结果
|
|
直接推导
|
答案是:在推导过程中只使用了一个产生式
|
|
文法
|
答案是:是规则的非空有穷集合
|
|
句子
|
答案是:均对应与字母表中的符号串
|
|
[简答题,10分] 设文法 G ( S ): S→S + aF|aF| + aF F→*aF|*a (1)消除左递归和回溯; (2)构造相应的 FIRST 和 Follow 集合
|
答案是:1) S->aFS'|+aFS' S'->+aFS'|ε F->*aF' F'->F|ε (2) FIRST(S)={a,+} FOLLOW(S)={#} FIRST(S')={+,ε } FOLLOW(S')={#} FIRST(F)={*} FOLLoW(F)=(+,#} FIRST(F')={*,ε} FOLLOW(+,#}
|
|
[简答题,10分] 写一个文法使其语言为偶数集,且每个偶数不以0开头
|
答案是:文法G(S): S→AB|B|A0 A→AD|C B→2|4|6|8 C→1|3|5|7|9|B D→0|C
|
|
[简答题,10分] 写出表达式(a+b)|(a-b-(a+b*c)的四元序列
|
答案是:四元式: ①(+,a,b,T1) ②(-,a,b,T2) ③(|,T1,T2,T3) ④(*,b,c,T4) ⑤(+,a,T4,T5) ⑥(-,T3,T5,T6)
|
|
[填空题,10分] 一个典型的编译程序中,不仅包括(),(),(), 代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理
|
答案是:词法分析|语法分析|中间代码生成
|
|
[填空题,10分] 对于文法的每个产生式都配备了一组属性的计算规则,称为()
|
答案是:语义规则
|
|
[填空题,10分] 一个句型中的最左简单短语称为该句型的()
|
答案是:句柄
|
|
形式语言
|
答案是:字母表上所有的字符按照某种规则所组成的集合
|
|
后缀
|
答案是:指从开头删除
|
|
前缀
|
答案是:指从末尾删除0个或多个符号后得到的符号串
|
|
符号串
|
答案是:符号的有穷序列
|
|
[简答题,10分] 102: t3:=5+t2 (2)100: j:=1 101: if j>10 goto NEXT 102: i:=j+j 103: a[i]:=0 2. 设基本块p由如下语句构成: T 0 : =3.14; T 1 :
|
答案是:三元式: ①(+,a,b) ②(-,a,b) ③(|,①,②) ④(*,b,c) ⑤(+,a,④) ⑥(-,③,⑤)
|
|
[简答题,10分] 写出下列表达式的三地址形式的中间表示。 (1) 5+6 *(a + b); (2)for j:=1 to 10 do a[j + j]:=0
|
答案是:(1)100: t1:=a+b 101: t2:=6*t1 102: t3:=5+t2 (2)100: j:=1 101: if j>10 goto NEXT 102: i:=j+j 103: a[i]:=0
|
|
[简答题,10分] 已知文法G(E) E→T|E+T T→F|T *F F→(E)|i (1)给出句型(T *F+i)的最右推导; (2)给出句型(T *F+i)的短语、素短语
|
答案是:(1) 最右推导: E->T->F->(E)->(E+T)->(E+F)->(E+i) ->(T+i)->(T*F+i) (2) 短语:(T*F+i),T*F+i,T*F,i 素短语:T*F,i
|
|
[填空题,10分] 在使用高级语言编程时,首先可通过编译程序发现源程序的全部()错误和 ()的部分错误
|
答案是:语法|语义
|
|
[填空题,10分] 常用的参数传递方式有(),传值和传名
|
答案是:传地址
|
|
[填空题,10分] 自底向上的语法分析方法的基本思想是:从输入串入手,利用文法的产生式一步一步地 向上进行() ,力求归约到文法的()
|
答案是:直接归约|开始符号
|
|
字符
|
答案是:字母表中的元素称为符号,或称为字符。可以是字母、数字和其他符号
|
|
字母表
|
答案是:是元素的非空有穷集合
|
|
标识符
|
答案是:以字母打头的字母数字串
|
|
形式化的方法
|
答案是:用一整套带有严格规定的符号体系来描述问题的方法
|
|
[简答题,10分] 设文法G(S): S→(L)|a S|a L→L,S|S (1) 消除左递归和回溯; (2) 计算每个非终结符的FIRST和FOLLOW
|
答案是:(1) S→(L)|aS' S'→S|ε L→SL' L'→SL'|ε (2) FIRST)S)={(,a} FOLLOW(S)={#,,,)} FIRST(S')={,a,ε} FOLLOW(S')={#,,,)} FIRST(L)={(,a} FOLLOW(L)={ )} FIRST(L')={,,ε} FOLLOW(L'〕={ )}
|
|
[简答题,10分] 写一个文法,使其语言是奇数集,且每个奇数不以0开头
|
答案是:文法G(N): N→AB|B A→AC|D B→1|3|5|7|9 D→B|2|4|6|8 C→0|D
|
|
[简答题,10分] 按所涉及的程序范围可分为哪几级优化?
|
答案是:三种级别:局部优化、循环优化、全局优化
|
|
[填空题,10分] 自顶向下的语法分析方法的基本思想是:从文法的()开始,根据给定的输 入串并按照文法的产生式一步一步的向下进行(),试图推导出文法的(),使之与给定的输入串()
|
答案是:开始符号|直接推导|句子|匹配
|
|
[填空题,10分] 递归下降法不允许任一非终极符是直接()递归的
|
答案是:左
|
|
[填空题,10分] 设 G 是一个给定的文法,S 是文法的开始符号,如果 S->x( 其中 x∈VT*), 则称 x 是文 法的一个()
|
答案是:句子
|
|
词法分析器
|
答案是:编译程序中完成词法分析任务的程序段,称为词法分析器。词法分析器负责对源程序进行扫描,从中识别出一个个的单词符号,因此,词法分析器又称为扫描器。
|
|
状态转换图
|
答案是:状态转换图是一个有向图,仅包含有限个结点,每个结点表示一个状态,其中有一个初始结点,至少有一个终态结点,节点间弧的标记可以是输入字符或字符类
|
|
预处理
|
答案是:预处理包括删除无用的空格、跳格、回车和换行等编辑性字符,以及注解部分
|
|
扫描器
|
答案是:此法分析程序负责对源程序进行扫描,从中识别出一个个的单词符号,因此,词法分析程序又称为扫描器
|
|
[简答题,10分] 何谓优化?
|
答案是:优化:对程序进行各种等价变换,使得从变换后的程序出发,能产生更有效的目标代码
|
|
[简答题,10分] 简述 DFA 与 NFA 有何区别
|
答案是:DFA与NFA的区别表现为两个方面:一是NFA可以若干个开始状态,而DFA仅只一个 开始状态。 另一方面,DFA的映象M是从K×Σ到K,而NFA的映象M是从K×Σ到K的 子集, 即映象M将产生一个状态集合(可能为空集),而不是单个状态
|
|
[简答题,10分] 已知文法 G[S] 为: S→dAB A→aA|a B→Bb|ε G[S] 产生的语言是什么?
|
答案是:G[S]产生的语言是L(G[S])={danbm│n≥1,m≥0}
|
|
[填空题,10分] 语法分析最常用的两类方法是()和()分析法
|
答案是:自上而下|自下而上
|
|
[填空题,10分] 产生式是用于定义()的一种书写规则
|
答案是:语法成分
|
|
[填空题,10分] 对编译程序而言,输入数据是(), 输出结果是()_
|
答案是:源程序|目标程序
|
|
目前为:
2/4
页
首页 上页 下页 尾页
|