编译原理10
编译原理课后题
第二章
6、令文法G6为:N → D|ND
D → 0|1|2|3|4|5|6|7|8|9
(1)G6 的语言L(G6)是什么?
(2)给出句子0127、34和568的最左推导和最右推导。
解答:
思路:由N → D|ND可得出如下推导N=>ND=>NDD=>…=>Dn(n>=1) 可以看出,N最终可以推导出1个或多个(也可以是无穷)D,而D → 0|1|2|3|4|5|6|7|8|9可知,每个D为0~9中的任一个数字,所以,N 最终推导出的就是由0~9这10个数字组成的字符串。
(1)G6 的语言L(G6)是由0~9这10个数字组成的字符串,或{0,1,…,9}+。
(2)句子0127、34和568的最左推导分别为:
N=>ND=>NDD=>NDDD=>DDDD=>0DDD=>01DD=>012D=>0127
N=>ND=>DD=>3D=>34
N=>ND=>NDD=>DDD=>5DD=>56D=>568
句子0127、34和568的最右推导分别为:
N=>ND=>N7=>ND7=>N27=>ND27=>N127=>D127=>0127
N=>ND=>N4=>D4=>34
N=>ND=>N8=>ND8=>N68=>D68=>568
7、写一个文法,使其语言是奇数集,且每个基数不以0开头。
解答:G(S):S → CD|D D→1|3|5|7|9
C → CB|A A→2|4|6|8|D
B → A|0
或:
G(S):S →MWN|N N →1|3|5|7|9 M →1|2|3|4|5|6|7|8|9
W → WV|ε V → M|0
8、令文法为 :
E→T|E+T|E-T
T→F|T*F|T/F
编译原理复习题及答案
编译原理复习题及答案
一、 选择题
1. 一个正规语言只能对应( B )
A 一个正规文法 B 一个最小有限状态自动机
2. 文法G[A]:A→ε A→aB B→Ab B→a是( A )
A 正规文法 B 二型文法
3. 下面说法正确的是( A )
A 一个SLR(1)文法一定也是LALR(1)文法
B 一个LR(1)文法一定也是LALR(1)文法
4. 一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的( A )
A 必要条件 B 充分必要条件
5. 下面说法正确的是( B )
A 一个正规式只能对应一个确定的有限状态自动机
B 一个正规语言可能对应多个正规文法
6. 算符优先分析与规范归约相比的优点是( A )
A 归约速度快 B 对文法限制少
7. 一个LR(1)文法合并同心集后若不是LALR(1)文法( B )
A 则可能存在移进/归约冲突
B 则可能存在归约/归约冲突
C 则可能存在移进/归约冲突和归约/归约冲突
8. 下面说法正确的是( A )
A Lex是一个词法分析器的生成器 B Yacc是一个语法分析器
9. 下面说法正确的是( A )
A 一个正规文法也一定是二型文法
B 一个二型文法也一定能有一个等价的正规文法
10. 编译原理是对(C)。
A、机器语言的执行 B、汇编语言的翻译
C、高级语言的翻译 D、高级语言程序的解释执行
11. (A)是一种典型的解释型语言。 A.BASIC B.C C.FORTRAN D.PASCAL
12. 把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。
A. 编译器 B. 汇编器 C. 解释器 D. 预处理器
13. 用高级语言编写的程序经编译后产生的程序叫(B)
A.源程序 B.目标程序 C.连接程序 D.解释程序
14. (C)不是编译程序的组成部分。
编译原理
编译原理
第一章:
1.编译程序是现代计算机系统的基本组成部分之一
2.一个计算机系统中通常配置多个高级语言的编译程序
3.在一个计算机系统中可为某些高级语言配置多个不同性能的编译程序
4.编译程序是一种语言翻译程序,其功能是把一种语言编写的程序翻译成另一种语言的等价程序
5.被编译的程序称为源程序,编译后的等价程序称为目标程序
6.编译程序的任务就是将源语言程序翻译成等价的目标语言程序
7.通常将编译过程分为六个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。
8.词法分析的主要任务是从左至右扫描字符序列,并按照此法规则识别出一个个的单词
9.单词是指逻辑上紧密相连的一组字符,这些字符具有集体含义。
10.计算机语言中,单词的种类通常有保留字、标识符、数、算符、界符等
11.语法分析的主要任务是:按照语言的语法规则,把词法分析所得的单词序列分解成各类语法成分。
12.词法分析和语法分析都是对源程序进行结构分析,但二者是有区别的。
13.语义分析的主要功能是审查源程序有无语义错误,伪代码生成阶段收集类型信息。
14.中间代码生成阶段的主要任务是,把源程序转换成一种中间代码
15.中间代码是一种结构简单、含义明确的记号系统
16.中间代码可以设计成多种形式,其设计原则有两点:一是容易生成,二是容易转换成目标代码
17.代码优化的主要任务是对中间代码进行改造,使生成的目标代码更为高效
18.目标代码生成阶段的任务是把中间代码转换成特定机器上的绝对指令代码或者可重定位的指令代码或者汇编指令代码
19.在编译过程的每个阶段中都含有出错处理和表格管理的工作
20.编译程序的结构可以按功能分为八个模块,即词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序和目标代码生成程序,此外还有与上述每个阶段都有关系的出错处理程序和表格管理程序。
《编译原理》习题及答案
第一章
1、将编译程序分成若干个“遍”是为了 。
b.使程序的结构更加清晰
2、构造编译程序应掌握 。
a.源程序 b.目标语言
c.编译方法
3、变量应当 。
c.既持有左值又持有右值
4、编译程序绝大多数时间花在 上。
d.管理表格
5、 不可能是目标代码。
d.中间代码
6、使用 可以定义一个程序的意义。
a.语义规则
7、词法分析器的输入是 。
b.源程序
8、中间代码生成时所遵循的是- 。
c.语义规则
9、编译程序是对 。
d.高级语言的翻译
10、语法分析应遵循 。
c.构词规则
二、多项选择题
1、编译程序各阶段的工作都涉及到 。
b.表格管理 c.出错处理
2、编译程序工作时,通常有 阶段。
a.词法分析 b.语法分析 c.中间代码生成 e.目标代码生成
三、填空题
1、解释程序和编译程序的区别在 于是否生成目标程序 。
2、编译过程通常可分为5个阶段,分别是 词法分析 、语法分析中间代码生成 、代码优化和目标代码生成。 3、编译程序工作过程中,第一段输入是 源程序 ,最后阶段的输出为 标代码生成 程序。
4、编译程序是指将 源程序 程序翻译成 目标语言 程序的程序。
一、单项选择题
1、文法G:S→xSx|y所识别的语言是 。
a. xyx b. (xyx)* c. xnyxn(n≥0) d. x*yx*
2、文法G描述的语言L(G)是指 。
a. L(G)={α|S+ ⇒α , α∈VT*} b. L(G)={α|S*⇒α, α∈VT*}
编译原理-试题及参考答案(魏国利)
1 / 9 试题(共10道)
1.设={0,1}上的正规集S由倒数第二个字符为1的所有字符串组成,请给出该字集对应的正规式,并构造一个识别该正规集的DFA。
2.已知文法G[S’] :S’ →S
S→rD
D→D,i
D→i
(1)构造G[S’]的识别活前缀的有穷自动机DFA。
(2)该文法是LR(0)文法吗?为什么?
3.已知文法G[S’] :S’ →S (1)
S→AAA (2)
A→1A (3)
A→0 (4)
(1)构造G[S’]的识别活前缀的有穷自动机DFA。
(2)构造相应的LR(0)分析表。
4.构造一个DFA,它接受={a,b}上所有包含ab的字符串。
5. 构造正规式 (0|1)*00 相应的DFA并进行化简。
6. 构造以下正规式相应的NFA,再确定化
10(1|0)*11
7. 设有语言 L={ α | α∈ {0,1} + ,且α不以 0 开头,但以 00 结尾 } 。
(1)试写出描述 L 的正规表达式;
(2)构造识别 L 的 DFA (要求给出详细过程,并画出构造过程中的
NDFA 、 DFA 的状态转换图,以及 DFA 的形式化描述 ) 。
8.已知 NFA=({x,y,z},{0,1},M,{x},{z}),其中:M(x,0)={z},M(y,0)={x,y},,M(z,0)={x,z},M(x,1)={x},M(y,1)=φ,M(z,1)={y},构造相应的
DFA。
9. 给出下述文法所对应的正规式:
《编译原理》(陈火旺版)课后作业参考答案ch6-10
1 第6章 属性文法和语法制导翻译
7. 下列文法由开始符号S产生一个二进制数,令综合属性val给出该数的值:
试设计求S.val的属性文法,其中,已知B的综合属性c, 给出由B产生的二进位的结果值。例如,输入101.101时,S.val=5.625,其中第一个二进位的值是4,最后一个二进位的值是0.125。
【答案】
产生式 语义规则
S→L1. L2 { S.val := L1.val + L2.val*2-L2.length }
S→L { S.val:= L.val }
L→L1B { L.val:=L1.val*2+B.val;
L. length:= L1.length +1 }
L→B { L.val:=B.val;
L. length:= 1 }
B→0 { B.val:= 0 }
B→1 { B.val:=1 }
11. 设下列文法生成变量的类型说明:
(1) 构造一下翻译模式,把每个标识符的类型存入符号表;参考例6.2。
【答案】
产生式 语义规则
L→ id L1 { S.val := L1.val + L2.val*2-L2.length }
L→, id L1 { S.val:= L.val }
L→ :T { L.val:=L1.val*2+B.val;
L. length:= L1.length +1 }
T→ integer { L.val:=B.val;
L. length:= 1 }
T→ real { B.val:= 0 }
S→L.L∣L
L→LB∣B
B→0∣1
L→ id L
L→, id L∣:T
T→ integer∣real 2 第7章 语义分析和中间代码产生
1. 给出下面表达式的逆波兰表示(后缀式):
【答案】
原式 后缀式
(1) a*(-b+c) ab-c+*
(2) a+b*(c+d/e) abcde/+*+
(3) –a+b*(-c+d) a-bc-d+*+
编译原理2010-2011试卷---A(答案)
第 1 页 共 7 页 华东交通大学2010—2011学年第二学期考试卷
试卷编号: ( A
)卷
编译原理(E) 课程 课程类别:必修课
闭卷(√)、开卷(
)(仅限带教材):
考试日期:2011.6.14
题号
一 二 三 四 五 六 七 八 九 十 总分 累分人签名 题分
100
得分
考生注意事项:1、本试卷共 7 页,总分 100 分,考试时间 120 分钟。
2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
一、简答题 (每题 5 分,共 20 分)
1. 简述编译程序与解释程序的主要差异?
【答】 编译程序产生中间代码,且效率高; 解释程序不产生中间代码,且效率低。
2. 文法的二义性与语言的二义性是两个相同的概念吗?请说明理由。
【答】这两个概念是不相同的。文法的二义性指的是文法所描述的语言中至少存在一个句子,而该句子对应两棵不同的语法树(或最左(右)推导);而语言的二义性是指描述该语言的全部文法都是二义性的。 由于描述同一个语言的文法可以有多个,一个二义性文法也可能找到一个等价的无二义性文法,所以一个文法是二义性的,其描述的语言不一定就是二义性的。
3. 简述在句型分析中的自上而下与自下而上两类分析方法的主要差异?
【答】自上而下的分析方法是从文法的开始符号出发,反复使用推导技术,试图把要分析的句型推导出来;自下而上的分析方法是从要分析的句型出发,反复使用归约技术,试图最终归约出文法的开始符号。
得分 评阅人
承诺:我将严格遵守考场纪律,知道考试违纪、作弊的严重性,还知道请他人代考或代他人考者将被开除学籍和因作弊受到记过及以上处分将不授予学士学位,愿承担由此引起的一切后果。
专业 班级 学号 学生签名:
编译原理复习资料
编译原理 学习与作业
制作人:李明新 共30页第1页 13-3-29
第一章 引论
一、填空问题
①由于计算机只能认识机器语言,所以需要翻译程序将高级语言翻译成计算机可以识
别的机器语言。
②编译程序的工作过程一般主要划分为词法分析,语法分析,中间代码生成,代码优化,目标代码生成等几个基本阶段,同时还会伴有表格处理和出错处理。
③如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两个阶段:编译阶段和运行阶段。如果编译程序生成的目标程序是汇编语言的程序,则源程序的执行分为三个阶段:编译阶段,汇编阶段和运行阶段。
二、判断问题
①高级语言程序必须经过编译程序的翻译才被计算机识别和执行。( 错 )
答:对高级语言的翻译,还有解释程序。
②编译程序的输入是高级语言,输出是机器语言程序。(错)
答:输出还有汇编语言程序。
③具有优化功能的编译程序的工作效率高。(错)
答:优化是编译程序的的一部分,优化的目的,是提高目标程序的质量和运行效率。
④有的编译程序可以没有目标代码生成部分。(错)
答:编译程序必须生成目标代码,所以目标代码生成部分是不可缺少的。
第二章 高级语言及其语法描述
一、判断题
1、正规文法一定不是二义性的。(错)
答:文法的二义性问题是不可避免和不可判定的,正规文法也可能存在二义性的问题。
2、文法的二义性和语言的二义性是两个不同的概念。(对)
答:可能有两个不同的文法G和G`,其中G是二义性的,但是却有L(G)= L(G`)。
3、一个句型对应的一棵语法树,包括了该句型的所有推导。(错)
编译原理试题及答案
-----WORD格式--可编辑--专业资料-----
--完整版学习资料分享----
参考答案
一、单项选择题(共10小题,每小题2分,共20分)
1.语言是
A.句子的集合 B.产生式的集合
C.符号串的集合 D.句型的集合
2.编译程序前三个阶段完成的工作是
A.词法分析、语法分析和代码优化
B.代码生成、代码优化和词法分析
C.词法分析、语法分析、语义分析和中间代码生成
D.词法分析、语法分析和代码优化
3.一个句型中称为句柄的是该句型的最左
A.非终结符号 B.短语 C.句子 D.直接短语
4.下推自动机识别的语言是
A.0型语言 B.1型语言
C.2型语言 D.3型语言
5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即
A. 字符 B.单词 C.句子 D.句型
6.对应Chomsky四种文法的四种语言之间的关系是
A.L0L1L2L3 B.L3L2L1L0
C.L3=L2L1L0 D.L0L1L2=L3
7.词法分析的任务是
A.识别单词 B.分析句子的含义
C.识别句子 D.生成目标代码
8.常用的中间代码形式不含
A.三元式 B.四元式 C.逆波兰式 D.语法树
9. 代码优化的目的是
A.节省时间 B.节省空间
C.节省时间和空间 D.把编译程序进行等价交换
《编译原理》考试试题及答案(汇总)
《编译原理》考试试题及答案(汇总)
一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)
1.编译程序是对高级语言程序的解释执行。(× )
2.一个有限状态自动机中,有且仅有一个唯一的终态。(×)
3.一个算符优先文法可能不存在算符优先函数与之对应。 (√ )
4.语法分析时必须先消除文法中的左递归 。 (×)
5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。 (√)
6.逆波兰表示法表示表达式时无须使用括号。 (√ )
7.静态数组的存储空间可以在编译时确定。 (×)
8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。 (×)
9.两个正规集相等的必要条件是他们对应的正规式等价。 (× )
10.一个语义子程序描述了一个文法所对应的翻译工作。 (×)
二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)
1.词法分析器的输出结果是_____。
A.( ) 单词的种别编码 B.( ) 单词在符号表中的位置
C.( ) 单词的种别编码和自身值 D.( ) 单词自身值
2. 正规式 M 1 和 M 2 等价是指_____。
A.( ) M1和M2的状态数相等 B.( ) M1和M2的有向边条数相等
C.( ) M1和M2所识别的语言集相等 D.( ) M1和M2状态数和有向边条数相等 3. 文法G:S→xSx|y所识别的语言是_____。
A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx*
4.如果文法G是无二义的,则它的任何句子α_____。
A.( )最左推导和最右推导对应的语法树必定相同
B.( ) 最左推导和最右推导对应的语法树可能不同
