编译原理题练习题测试题
1、编译程序分为哪几个逻辑阶段,各阶段的主要功能是什么?
2、考虑文法
S(L) | a
LL, S | S
(1)给出(a,(a, a))的最右推导。
(2)给出(a,(a, a))的语法分析树。
(3)该文法描述的是什么语言?
3、(20分)下面的文法描述命题演算公式
S S and S | S or S | not S | p | q |(S)
(1)它是二义的吗?
(2)如果是二义的,用某个句型的两个不同的最左推导来说明。
(3)如果是二义的,将其改为无二义的,其优先级从高到低依次是not, and, 和 or。
4、写出字母表 = {a, b}上表达下述语言的正规式。
(1)L = {w | w中a的个数是偶数}
(2)L = {w | w的最后两个字母是aa或bb}
5、(1) 把下面的NFA确定化。
(2) 将确定后的DFA化简。
6、构造一个DFA,它接受 = {0, 1}上能被5整除的二进制数。
7、叙述正规式 (00 | 11) ( (01 | 10) (00 | 11) (01 | 10) (00 | 11) ) 描述的语言。
8、为正规式(a | b) a (a | b) (a | b)构造NFA。
1、考虑文法 S -> A|SA A -> a|b|c|d|…|x|y|z
(1)给出name的最右推导(不可跳步);
(2)给出name的语法分析树(只要最终结果);
(3)给出该文法描述的语言(写出分析步骤)。
2、写出下图识别的单词符号的集合,并给出等价的正规式。
3、分析下图:
(1)写出下图能够识别的两个字符串。
(2)下图是DFA吗?如果不是,将下图确定化(写出详细步骤)。
4、下面的文法是否有二义性?如果有证明其二义性。
S -> S and S | S or S | not S | p | q |(S)
5、对于文法G:
S1A|0B|ε
A0S|1AA
B1S|0BB
(1)请写出两个文法G的句子。
(2)请写出两个文法G的句型。
(3)请写出001B的最左推导,并画出对应的语法分析树。
6、有文法G: SaB | bB, Ba | b, 写出它所能确定的语言(写出分析步骤)。
7、(1)什么是编译程序。
(2)编译程序主要分为哪几个逻辑阶段、并描述各阶段的功能。
8、有如下的状态转换图,与之等价的正规式为___________。(写出分析步骤)
9、考虑文法
S aSa|aBb
B x
给出aaaxbaa的最左推导(不可跳步),并给出其语法分析树
10、考虑如下文法
SaSb | A AbAc | c
abccb是该文法的一个句型吗?如果是,请证明。
11、文法共分为四类,即0型文法、1型文法、2型文法和3型文法。
(1)请写出这四类文法的相互关系。
(2)为每一类文法举一个例子,并写出为什么举该例。
12、已知不确定有限自动机如下图,写出其对应的正规式,(写出分析步骤)。
13、分析下图,把你分析得到的结论写出来。
14、设有字母表Σ={0,1},举三个例子写出属于Σ*的字符串。
15、 写出与正规式(a|b)*等价的正规式。
16、 一个确定有限自动机M是一个五元式 M = (S, ∑, δ, s0, F),其中,S表示________,∑表示________,δ表示________,s0表示________,F表示________。
17、(1)请写出字母表{a,b}上识别以两个a开头、两个b结尾的字符串的正规式。
(2)将上述正规式转化为NFA(写出详细步骤)
(3)将上述NFA确定化为DFA(写出详细步骤)
(4)将上述DFA化简(写出详细步骤)
(5)根据化简后的DFA写出识别“字母表{a,b}上识别以两个a开头、两个b结尾的字符串”的词法分析器伪代码。
(6)对于步骤(5)对应的词法分析器,若输出aabbabbcba,则输出结果应该是什么?
18、就下面文法
S A | SA
A 0 | 1
会推导出0、1构成的串。想办法打印0和1的串的值(如推导出110,则打印出的值为6,如果推导出010,则打印出的值为2)。
19、设文法G(S):
S→(L)|a S|a
L→L,S|S
(1)根据第四章,给出左递归和回溯的定义;
(2)消除本文法的左递归和回溯。
20、谈谈你对词法分析器的看法(5分)。
第四章
练习1:构造下面文法的LL(1)分析表。
D TL T int | real
L id R R , id R |
练习2:证明练习1中的文法是否为LL(1)的。
练习3:利用练习1的分析表,给出分析器接受int id, id的分析步骤
第五章
练习4: 文法G:
EE + T | T TT * F | F F(E) | i
(1) 证明 E + T * F 是它的一个句型。
(2) 写出 E + T * F 的所有短语、直接短语和句柄。
练习5: 文法G
Sa | ∧|(T) TT,S | S
(1) 计算其firstVT和 lastVT
(2) 得出其优先关系表,该文法是否算符优先文法。
(3) 计算该文法的优先函数。
(4) 给出 ( a, ( a , a)) 的分析步骤,思路见课件。
练习6:证明下面的文法
S S A | A A a
(1)给出其项目集规范簇
(2)构造其识别活前缀的DFA
(3)画出SLR(1)分析表,该文法是否为SLR(1)文法。
(4)构造带搜索符的识别活前缀的DFA
(5)画出LR(1)分析表,该文法是否为LR(1)文法。
练习7:对于文法G: S→aS |bS | A,A→aB,B→a|b , 与该文法等价的正规式是________。
练习8:可以进行无回溯的自上而下分析的文法是________。
其他章节
练习9:程序的文法如下:
S(L) | a L L, S | S
写出语法制导定义,它输出括号嵌套的最大深度。
练习10:表达式(┐a∨b)∧(c∨d)的逆波兰表示为( )。1、写出下图识别的单词符号的集合,并给出等价的正规式。
2、分析下图:
(1)写出下图能够识别的两个字符串。
(2)下图是DFA吗?如果不是,将下图确定化(写出详细步骤)。
3、有文法G: SaB | bB, Ba | b, 写出它所能确定的语言(写出分析步骤)。
4、考虑文法
S aSa|aBb
B x
给出aaaxbaa的最左推导(不可跳步),并给出其语法分析树。
5、考虑如下文法
SaSb | A AbAc | c
abccb是该文法的一个句型吗?如果是,请证明。
6、已知不确定有限自动机如下图,写出其对应的正规式,(写出分析步骤)。
7、设有字母表Σ={0,1},举三个例子写出属于Σ*的字符串。
8、 一个确定有限自动机M是一个五元式 M = (S, ∑, δ, s0, F),其中,S表示________,∑表示________,δ表示________,s0表示________,F表示________。
9、设文法G(S):
S→(L)|aS|a
L→L,S|S
(1)根据第四章,给出左递归和回溯的定义;
(2)消除本文法的左递归和回溯。
10、文法G:
E L . L | L L LB | B B 0 | 1
(1)给出非终结符的first集和follow集。
(2) 证明该文法是否为LL(1)文法。
(3) 若文法G是LL(1)文法,给出11.1的自上而下分析过程;若不是LL(1)文法,则将其转化为LL(1)文法。
11、文法G:
E aTd | ε T Eb | a
(1) 证明该文法是SLR(1)文法。
(2) 给出该文法的SLR(1)分析表。
(3) 给出 aaadbd 的规范归约分析步骤。
12、程序的文法如下:
P D
D D ; D | id : T | proc id ; D ; S
写一个语法制导定义,打印该程序一共声明了多少个id。
13、程序的文法如下:
S(L) | a L L, S | S
写出语法制导定义,它输出括号嵌套的最大深度。
14、下面的文法
BB10 B B11 B 1
(1) 写个翻译方案计算0和1的串的值(解释为二进制的正整数)。
(2) 取消左递归,重写该翻译方案。
15、给出文法,由开始符号S产生一个二进制数,计算该二进制数的值。如101.101, 其值为5.625
SL.L | L LLB | B B 0 | 1
16、将下面的语句翻译成四元式序列。请填写(1)-(10)这十个空。
while A<C∧B<D do
if A=1 then C:=C+l
else while A≤ D do
A:=A+2;
翻译成四元式如下:
100 (j<,A,C,(1))
101(j,,,(2))
102 (j<,B,D,(3))
103 (j,,,(4))
104 (j=,A,1,(5))
105 (j,,,(6))
106 (+,C,1,C)
107 (j,,,(7)_________)
108 (j≤,A,D,(8)______)
109 (j,,112)
110 (+,A,2,A)
111 (j,,,(9))
112(j,,,(10))
17、设文法G(S):
S→(T)|a
T→T+S|S
计算FIRSTVT和LASTVT;
FIRSTVT(S)={a,(} FIRSTVT(T)=(1) ________
LASTVT(S)=(2) ________ LASTVT(T)=(3) ________
编译原理题练习题测试题相关推荐
- 计算机应用技术编译原理考试题,《编译原理》练习题库含答案(大学期末复习资料).doc...
<编译原理>练习测试题库 一.填空 1.若源程序是用高级语言编写的,目标程序是______,则其翻译程序称为编译程序.2.词法分析和语法分析本质上都是对源程序的______进行分析.3.如 ...
- 编译原理练习题(第二章)
编译原理练习题 写一个文法,使其语言是奇数的集合,且每个奇数不以0开头. 下面文法生成的语言是什么?G1:S->AB A->aA| e B->bc|bBc G[S]为:S->a ...
- 编译原理练习题(第三章)
编译原理练习题(第三章) 一. 二. 三. 四.
- 编译原理-学习指导与典型题解析
<编译原理-学习指导与典型题解析>这本书的pdf版本 是刘春林版本,应该是和陈火旺的是配套的,出版社一样 点击下载
- 【编译原理】期末 龙书概念梳理+做题方法(混子保过指南+学霸提分秘籍)
编译原理期末总结 龙书概念梳理+做题方法 目录 编译原理期末总结 龙书概念梳理+做题方法 编译概述 1 编译过程 2 编译&解释 3 GCC的处理过程 词法分析 1 词法分析的任务 2 词法分 ...
- 小证明题 编译原理--题目原型:
编译原理-->题目原型: 1,证明:即时通讯 用下面文法生成的所有二进制串的值都能被3整除(提示:对语法分析树的节点使用数学归纳法). num -> 11 | 1001 | num ...
- 编译原理第四章练习题
目录 编译原理第四章作业 课本习题 补充习题 编译原理第四章作业 自己写的不包对,有错请指正 BY hllinyu 2023年3月31日 课本习题 编译原理 第三版 王生原- 清华大学出版社 的那本 ...
- 《编译原理》复习第1章~第5章
前言 练习题来自超星<吉林大学编译原理>课程的章节测验和作业,全文仅为自己学习使用,如果有错,欢迎指正. 课时安排(课程重点) 2.4-2.7:正则式描述单词和确定有限自动机(DFA)部分 ...
- 学习编译原理对下面这段java跳不出死循环大概能有较好的解释吧
java 线程问题? public class ThreadTest {public static void main(String[] args){System.out.println(" ...
最新文章
- cocos2d-x实例学习之常用类及其概要作用
- solr创建core
- IE下checkbox或radio隐藏bug
- (解题报告)L1-032 Left-pad (20分)——15行代码AC
- android 16 登陆,那些年我们一起养过的电子鸡登陆Android平台
- oracle 导入导出指定表
- 大工19春《计算机组成原理》,大工19春《计算机组成原理》在线作业3.doc
- 如果现在单位让你内退,拿基本工资,不用上班,你是否愿意?
- lintcode :reverse integer 颠倒整数
- paip.XXListener is already configured监听器已经被配置的解决
- 数据挖掘关联规则挖掘之FpGrowth算法
- Ubuntu 中文字体美化方案大全 (3): 使用Windows XP字体
- eps图片太大压缩小
- 华为云人脸识别服务 FRS 之初体验
- Spring Boot 框架学习笔记(五)( SpringSecurity安全框架 )
- 沐风老师ATilesPro for 3dMax屋顶设计插件使用教程
- Photoshop CS6软件
- 丁腈橡胶自然老化时间_丁腈橡胶老化与防护的探究
- Linux下动态链接库的查找问题
- 【Linux云计算架构:第三阶段-Linux高级运维架构】第13章——redis
热门文章
- 分布式系统原理 之3 Lease机制
- linux 安装tomcat遇到的问题
- vue_组件_监听组件事件
- 【加权并查集】bzoj 4602 齿轮
- 解题报告——2017年C/C++ A组第五题 字母组串(递归)
- 虚拟Web主机(基于域名配置,基于ip地址,基于端口)
- python ascii转utf8_ascii 转换为 utf-8
- python爬虫之美剧排行榜爬取(加浏览器伪装,代理,异常处理)
- STM32 CAN错误管理
- vba quit此文件正由另一个应用程序或用户使用_VBA|如何添加外部对象库(或控件)引用来扩展VBA功能...