4、 简述标识符的处理算法? [ 5 分 ]
答案是:A.每当进入新的局部化区时,记住本层符号表SYMBL的初始地址。 B.每当遇定义性标识符时,构造其语义字并查本层
SYMBL表,若查到同名标识符,则表示有错,否则往SYMBL表里填写标识符和语义字。 C.每当遇使用性标识符时,查整
个SYMBL表(从内向外),若查不到同名标识符,则表示有错,否则找出相应语义字并传给有关部分。 D.每当结束一个局
部化区时,删除本层SYMBL表。
3、 利用代码优化的思想(代码外提和强度削弱等),按你的想法改写下面C程序中的循环,写出优化后的C程序
[ 5 分 ]
答案是:改写后的程序: main() { int i , j , n , m , k ; int *p; int r[20][10]; p=&r[0][0]; n=0; for(i=0;i<20;i++) { k=n; n=n+10; m=0; for(j=0;j<10;j++)
{ *p=m; p++; m=m+k; } } }
2、 简述编译器的查错与改错的作用? [ 5 分 ]
答案是:查错:准确而及时地将源程序中的各种错误查找出来,并能以简明的形式向用户报告这些错误的性质及出现的具体位
置。 改错:当编译程序发现源程序中的一个错误时,适当地对源程序做一些修补工作,使编译程序不至于在一发现有
错就中止它的工作,以期在一次编译的过程中尽可能多地将源程序中的错误查找出来。
1、 简述编译程序的组成部分及各部分的主要功能? [ 5 分 ]
答案是:词法分析(将源程序扫描为单词符号串) 语法分析(将单词符号串组合成各类语法单位) 中间代码生成(对各类语法单
位按语言语义进行初步翻译) 中间代码优化(针对中间代码的效率进行优化) 目标代码生成(将中间代码转换为特定
的目标代码) 表格管理(保留编译过程中的各种信息并进行管理) 出错处理(发现并报告程序中的各种错误)
4、 直接写出表达式 X*Y+Z+X*Y 的四元式,其中X,Y,Z均为正整数。(写出两种答案) [ 10 分 ]
答案是:答案一:(*,X,Y,T1) (+,T1,Z,T2) (*,X,T,T3) (+,T2,T3,T4) 答案二:(*,X,Y,T1) (+,T1,Z,T2) (+,T2,T1,T3)
3、 已知文法G[E] 为: ①.给出句子 i/(i+i) 和 (i+i)*(i-i) 的规范推导(最右推导)过程。 ②.构造 i*i-i 和 i*i/i 的
语法树。 [ 10 分
答案是:da12021224113021
2、 试将图 的ε-自动机转换为等价的自动机,即
消去ε边: [ 10 分 ]
答案是:da1202122411293
1、 设字母表Σ={ x , y } : ①.写出正则表达式,由它所定义的集合中的每个元素都以 ‘xy’ 开头且以 ‘yx’ 结尾。 ②.写出正则表达式, 由它所定义的集合中的每个元素都含有连续两个 ‘x’ 或连续三个’y’。 [ 10 分
答案是:(1)xy(x|y)*yx|xyx (2)(x|y)*(xx|yyy)(x|y)*
5、 在简单优先分析方法中,所谓简单优先文法是指该文法的任意两条产生式没有相同的候选式,且任意两个文法符号之间至多
存在(____)种优先关系。 [ 4 分 ]
答案是:参考答案: 1
4、 将高级语言源程序翻译为低级语言程序的方法按原理可分为两类:(____)和编译。 [ 4 分 ]
答案是:参考答案: 解释
3、 如果说某个文法是二义性文法,那该文法必然存在某个(____)对应两棵不同的语法树。 [ 4 分 ]
答案是:参考答案: 句子
2、 在一个句型的语法树中,每棵(____)树的叶组成短语,每棵(____)树的叶组成简单短语,(____)树的叶组成句柄。 [ 4 分 ]
答案是:参考答案: 子树※简单子树※最左简单子树
1、 一个上下文无关文法通常可用一个四元组 G= ( VN ,VT , P , S ) 来定义,其中VN 代表(____),VT代表(____),P代表(____),S代表
(____)。 [ 4 分 ]
答案是:参考答案: 非终极符号集合※终极符号集合※产生式集合※文法开始符号
5、 自顶向下和自底向上语法分析方法各对应4种动作,下列动作中不属于自底向上语法分析方法的是:____ [ 4 分 ]
A. 失败
B. 接受
C. 移进
D. 匹配
答案是:参考答案: D
4、 在众多语法分析方法中,递归下降方法是属于下列语法分析方法中的哪一类:____ [ 4 分 ]
A. 自顶向下语法分析
B. 自底向上语法分析
C. LL语法分析
D. LR语法分析
答案是:参考答案: A
3、 由文法 编译原理所定义的语言是:____ [ 4 分 ]
A. 任意字符串
B. 标识符
C. 自然数
D. 英文单词
答案是:参考答案: B
2、 在C语言的编译器中,将赋值语句看作是下列几类中的哪一类:____ [ 4 分 ]
A. 中间代码
B. 语义单位
C. 语法单位
D. 单词符号
答案是:参考答案: C
1、 一个非确定自动机NFA可以由一个五元组A=(K ,Σ,f, S, Z)来定义,其中的S元组代表:____ [ 4 分 ]
A. 初始状态
B. 初始状态集
C. 终止状态集
D. 任一状态
答案是:参考答案: B
目前为:
1/1
页
首页 上页 下页 尾页