东南大学编译原理试卷

合集下载

东南大学编译原理1999年考研真题

东南大学编译原理1999年考研真题

99年编悔原理一.已知疋规文法中的左线件文法Gt: STSaLSbLc试枸诜无E产生式的等价佑纯性艾法・井构造相应的确定有限自动机dm 耐I]状态I 换图叩可.二、已知正规文法G2:X->0Y| IZ|OY->OX| IY|IZ-> IX⑴该文法产生的语宫恳什么•讷用正规式我示(2)枸造最简的确定有限自动机M比并画出状态转换图三、已知上下文无关文法G3: E9ET+ITTTT和」FFTE|i(1)消除文法左递归,并给;II改写后文法产生式(2)给出文法「鹤话的个非终结符的first TH follow集,并山此判師它見否1丄⑴文法四、已知表达式(已拓广)G4: ETEE->E i-E|i(!)试构进文法G4的LR(I)项『1集观范换(2)若忖咖从右结合率.WfftJh LR 5)折农五、已知文法G5:Z->bMbM-^(Ma) | a(1)试枸造算符优先分折我(2)若某相邻的终结符讣间廉亦a<=b曲伸关系,那么在进行外符优先分忻倣规约动作时,在寻找栈顶的素短语符号冷时翌杳吾它与哪个产生式右部符号小匹配.例如栈顶申・・.・aAba, (a b JffiT V T, A J®于(VN5)・ a<*b, aw V* )为已知可规约•而现右产生式X J aAba.M取素短语冰ba进行规约:苦只有产生武YT Aba.W么就取Aba进行规约.试按此规定的体法给:IH5^b((na)a)b//的%符优先分折过阳.沢、初译成中间代码I、将如下程作段酬邙成麻紛匕JiWL维数细po卯1屮・设讪血为1t:=!6;b:«20;while tob doelseb:«b -t;2、译布尔茨达式成四元式JT 列,并猜出待烦頁假傩序号.(a>b 卜 1) and not (c-»2<d) or f(x)注:f(x)为布尔函数七.有一个如下计算mF 的C 语宫程存,试给出运行时誥个栈式数据结构•数抵区的活 动记录结枸如右用.(数抿区从k 单元开始缩址•除返回他址不轨外.其余都耍橫.)八、乜知如下程序段a:«l;while a<=IO dobeginif aob then A(a, bJc^AJa, b] » 2;a:=a+1end; 1、 按语法和导生成四元式中间代码序列2、 将中何代码序迥划倔水块.画川程用流图,并J&tBM 环结点集3、 执行循环中代码外捉、啸度减弱优化和基木块内侧除公共了茨达武优化,泉后画;||包含 优化后的中何代码的稈序流图・注:数细按行疗放,侮个下标变駅占一字編址,甘地址为叙kkA int m;«n)int n;(int c;if(n= =0) c=m; elsec= f(n-l)*2; rettim(c))tnaii1()(int n°2;m=5;函妆返回值 局部变別区 主用用m 亦的数抿区函数数用区。

编译原理期末考试试题及答案

编译原理期末考试试题及答案

编译原理期末考试试题及答案一、选择题(每题2分,共20分)1. 编译器的前端主要负责以下哪项工作?A. 代码优化B. 目标代码生成C. 词法分析和语法分析D. 运行时支持2. 词法分析器的主要任务是什么?A. 识别语法结构B. 识别词法单元C. 构建语法树D. 代码优化3. 语法分析中,使用哪种方法可以避免回溯?A. 递归下降分析B. LR分析C. LL分析D. 自顶向下分析4. 下列哪个选项不是中间代码的形式?A. 三地址代码B. 四元组C. 抽象语法树D. 汇编语言5. 代码优化的目标不包括以下哪项?A. 提高代码执行速度B. 减少程序占用的内存C. 增加程序的可读性D. 减少程序的执行时间二、简答题(每题10分,共30分)1. 简述编译器的主要组成部分及其功能。

2. 解释什么是语法制导翻译,并举例说明其在编译过程中的应用。

3. 描述静态作用域规则和动态作用域规则的区别。

三、计算题(每题15分,共30分)1. 给定一个简单的算术表达式 `3 + (4 * 5) - 2`,请使用逆波兰表示法表示,并说明其转换过程。

2. 假设有一个简单的文法如下:```S -> A BA -> a A | εB -> b B | ε```请写出使用该文法生成字符串 "ab" 的所有派生树。

四、论述题(每题20分,共20分)1. 论述编译器中代码优化的重要性,并举例说明常见的优化技术。

参考答案一、选择题1. C2. B3. B4. D5. C二、简答题1. 编译器的主要组成部分包括前端、中端和后端。

前端负责词法分析和语法分析,中端进行语义分析和中间代码生成,后端则负责代码优化和目标代码生成。

2. 语法制导翻译是一种基于文法规则的翻译技术,它将源程序的语法结构映射到相应的语义操作上。

例如,在编译过程中,语法制导翻译可以用于将源代码中的条件语句转换为中间代码中的跳转指令。

3. 静态作用域规则是指变量的作用域在编译时确定,而动态作用域规则是指变量的作用域在运行时确定。

完整word版,编译原理试卷及答案,推荐文档

完整word版,编译原理试卷及答案,推荐文档

东 北 大 学秦 皇 岛 分 校课程名称: 编译原理 试卷: (B )答案 考试形式: 闭卷授课专业: 计算机科学与技术 考试日期: 年 月 日 试卷:共 2 页 题号 一 二 三 四 总分得分 阅卷人一、填空题(每空2分,共30分)1、编译程序的整个过程可以从逻辑上划分为词法分析、 语法分析 、语义分析、中间代码生成、 代码优化 和目标代码生成等几个阶段,另外还有两个重要的工 作是 理 和出错处理。

表格管2、规范规约中的可归约串是 句柄 ,算符优先分析中的可归约串是 最左素短语 。

3、语法分析方法主要可分为 自顶向下 和 自底向上 两大类。

4、LR (0)文法的项目集中不会出现 移进-归约 冲突和 归约-归约 冲突。

5、数据空间的动态存储分配方式可分为 栈式 和 堆式 两种。

6、编译程序是指能将 源语言 程序翻译成 目标语言 程序的程序。

7、确定有穷自动机DFA 是 NFA 的一个特例。

8、表达式 (a+b)*c 的逆波兰表示为 ab+c* 。

二、选择题(每题2分,共20分)1、LR 语法分析栈中存放的状态是识别 B 的DFA 状态。

A 、前缀B 、可归前缀C 、项目D 、句柄 2、 D 不可能是目标代码。

A 、汇编指令代码B 、可重定位指令代码C 、绝对机器指令代码D 、中间代码 3、一个控制流程图就是具有 C 的有向图A 、唯一入口结点B 、唯一出口结点C 、唯一首结点D 、唯一尾结点 4、设有文法G[S]:S →b|bBB →bS ,则该文法所描述的语言是C 。

A 、L (G )={b i |i ≥0}B 、L (G )={b 2i |i ≥0}C 、L (G )={b 2i+1|i ≥0}D 、L (G )={b 2i+1|i ≥1}5、把汇编语言程序翻译成机器可执行的目标程序的工作是由 B 完成的。

A 、编译器B 、汇编器C 、解释器D 、预处理器 6、在目标代码生成阶段,符号表用于 D 。

编译原理期末试题(8套含答案 大题集)(1)

编译原理期末试题(8套含答案 大题集)(1)

《编译原理》期末试题(一)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.词法分析器的输出结果是___c__。

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所识别的语言是__c___。

A.( ) xyx B.( ) (xyx)*C.( ) xnyxn(n≥0) D.( ) x*yx*4.如果文法G是无二义的,则它的任何句子α_____。

A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。

A.( )源程序B.( ) 目标语言C.( ) 编译方法D.( ) 以上三项都是6.四元式之间的联系是通过_____实现的。

A.( ) 指示器B.( ) 临时变量C.( ) 符号表D.( ) 程序变量7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为_____。

A. ( ) ┐AB∨∧CD∨B.( ) A┐B∨CD ∨∧C.( ) AB∨┐CD∨∧D.( ) A┐B∨∧CD∨8. 优化可生成_____的目标代码。

A.( ) 运行时间较短 B.( ) 占用存储空间较小C.( ) 运行时间短但占用内存空间大D.( ) 运行时间短且占用存储空间小9.下列______优化方法不是针对循环优化进行的。

A. ( ) 强度削弱B.( ) 删除归纳变量C.( ) 删除多余运算D.( ) 代码外提10.编译程序使用_____区别标识符的作用域。

编译原理期末考试试卷及答案

编译原理期末考试试卷及答案

期末考试试卷(A)卷一、填空题(每小题2分,共20分)1、字母表∑,用∑*表示∑上所有有穷长的串集合,∑*称为∑的①。

2、设z=abc,则z的固有头是①。

3、如何由语言基本符号组成程序中各个语法成分(包括程序)的一组规则叫①。

4、设∑={a,b},∑上的正规式(a|b)(a|b) 相应的正规集为①5、NFA的映象f是从"状态×字"映射到"状态子集",f为①值函数。

6、LR分析是按规范句型的①为可归约串。

7、结点的①属性值由该结点的兄弟结点和父结点的属性值计算。

8、如果分析树中一结点的属性b依赖于属性c,那么这个结点的属性b的语义规则的计算必须在定义属性c的语义规则的计算①。

9、对于栈式符号表,引入一个显示嵌套层次关系表- ①表,该表总是指向当前正在处理的最内层的过程的子符号表在栈符号表中的起始位置。

10、任一有向边序列n1 → n2,n2 → n3,…,nk-1 → nk为从结点n1到结点nk的一条通路。

如果n1=nk,则称该通路为①。

二、单项选择(每小题2分,共14分)1、乔姆斯基把文法分成4种类型,即0型、1型、2型和3型。

其中3型文法也称为()。

A.上下无关文法 B.正规文法C.上下文有关文法 D.无限制文法2、生成非0开头的正偶数集的文法是()。

A. Z::=ABC B. Z::=ABCC::=0|2|4|6|8 C::=0|2|4|6|8B::=BA|B0|ε B::=BA|B0|0A::=1|2|3|…|9 A::=1|2|3|…|9C. Z::=ABC|2|4|6|8D. Z::=ABC|2|4|6|8C::=0|2|4|6|8 C::=0|2|4|6|8B::=BA|B0|0 B::=BA|B0|εA::=1|2|3|…|9 A::=1|2|3|…|93、简单优先分析法从左到右扫描输入串,当栈顶出现()时进归约。

A.素短语B.直接短语C.句柄D.最左素短语4、同心集合并有可能产生新的()冲突。

大学编译原理课程复习试题及答案

大学编译原理课程复习试题及答案

编译原理复习材料选择题1. 文法S→0S | S1 | 0的语言是( )。

A. { 0 m1m| m >=0 }B. { 0 m1m| m >=1 }C. { 0 m1n | m>=1,n>=0 }D. { 0 m1n | m>=0,n>=1 }2. 描述程序语言所采用的Ⅲ型文法是( )。

A. 短语文法B.正规文法C.上下文无关文法D.上下文有关文法3. 状态转换图实现的简单方法是使每个状态结对应( )。

A.一个终结符B.一个非终结符C.一段小程序D.一个函数4. 规范归约的关键问题是寻找( )。

A. 最左素短语B.句柄C.直接短语D.短语5. 一个算符文法的任何产生式的右部都不含有两个相继的( )。

A.终结符B.非终结符C.终结符和非终结符D.空字6. 算符优先分析法的关键在于规定( )。

A.算符优先顺序和结合性质B.算符优先顺序C.结合性质D.终结符和非终结符之间关系7. 优先函数的优点是( )。

A.形象直观B.便于进行比较运算C.语法分析速度快D.语法分析方法简单8. 文法符号的属性通常分为( )两类。

A. 共用属性和私有属性B.固有属性和可变属性C.语法属性和语义属性D.综合属性和继承属性9. 在程序流图中,组成循环的结点序列应满足( )A. 它们是强连通的B.它们中间有唯一的入口结点C.它们中间有一条回边D.它们是强连通的且有唯一的入口结点10. 在利用寄存器R生成T1:=C/B的目标代码同时,还应记录信息( )。

A. C/B在T1中B. T1在C/B中C. R含有T1, T1在R中D. R含有C/B, C/B在R中1.D2.B3.C4.B5.B6.A7.B8.D9.D 10.C1. 编译方式与解释方式的根本区别在于( )A.是否生成目标代码B.是否生成中间代码C.是否生成汇编代码D.是否生成优化代码2. 编译程序生成的目标程序( )A.一定是机器语言的程序B.不一定是机器语言的程序C.一定不是机器语言的程序D.一定是汇编语言的程序3. 设字母表∑={0,1,x,y}, 则∑上的正规式ε所对应的正规集为( )A.εB. {ε0,1,x,y }C. {ε}D.Φ4. *假设G是一个文法,S是文法的开始符号,如果S===> x,则称x是( )A.短语B.句柄C.句子D.句型5. 一个算符文法的任何产生式的右部都不含有两个相继的( )A.终结符B.非终结符C.终结符和非终结符D.ε字6. 设有文法G[A]:A →Ax|Ay|Aa|Ac|a|b|c,下列哪些是该文法的句子( )(1) aby (2) aycyx (3) aaa (4) bcxyA.(1) (2) (3)B. (1) (2) (4)C.(2) (3) (4)D.全部7. LR分析器的核心部分是( )A.带先进后出存贮器的DFAB.一张动作表C.一张GOTO表D.一张分析表8. 在程序流图中,组成循环的结点序列应满足( )A.它们是强连通的且有唯一的入B.它们中间有唯一的入口结点口结点C.它们中间有一条回边D.它们是强连通的9. 表达式a≤b+c∧a>d∨a+b≠e的后缀式式为( )。

东南大学1997编译原理试题

东南大学1997编译原理试题

东南大学1997编译原理试题一:文法G1:E→ET+|TT→TF*|FF→FP↑|PP→E|i1.试证明符号串TET+*i↑是G1的一个句型(要求画出语法树).2.写出该句型的所有短语,简单短句和句柄.二:1.给出下图FA的正规式.a b──→ ──→ ②→○ ① a↑↓ε←── ←── ③ε b2.已知正规文法G2:S→aS|AA→bBB→aB|ε试构造一确定有限自动机DFA(要求化简),使得它接受的语言正是该文法产生的语言,要求画出状态图.三:1.试写出一个上下文无关文法G3,它能产生配对的圆括号串(例如,(),(()),()(())等,甚至包含0对括号).2.使用文法G3给出输入串(())()#的自上而下分析过程.四:已知文法G4:S→aAb|Sc|εA→aAb|ε1.给出G4文法的LR(0)项目集规范族;2.构造SLR分析表;3.G4文法所定义的语言;4.已知有如下文法及相应的LR分析表,试给出语句01001#的LR分析过程(填写下表).S→AAAA→1AA→0LR分析表:───┬──┬──┬──┰──┬──状态│ 1│ 0│ #┃ S│ A───┼──┼──┼──╂──┼──0 │ S3 │ S4 │ ┃ 1│ 21 │││acc ┃│───┼──┼──┼──╂──┼──2 │ S3 │ S4 │┃│ 5───┼──┼──┼──╂──┼──3 │ S3 │ S4 │┃│ 6───┼──┼──┼──╂──┼──4 │ r3 │ r3 │ r3 ┃│───┼──┼──┼──╂──┼──5 │ S3 │ S4 │┃│ 7───┼──┼──┼──╂──┼──6 │ r2 │ r2 │ r2 ┃│───┼──┼──┼──╂──┼──7 │││ r1 ┃│───┴──┴──┴──┸──┴──分析过程:──────┬──────┬──────状态栈│符号栈│ 输入串──────┼──────┼──────││││││││││││││──────┴──────┴──────五: 1.翻译下面语句成四元式中间代码序列和后缀式(逆波兰式);while x+y>a doif a<10 then a:=a+1 else x:=x-1;2.翻译布尔表达式(a>b) or (c=d) and not (e成转移四元式序列(即四元式中仅包含(zθ,-,-,-)和(j,-,-,-)两类语句,其中θ为关系运算符.)六: 1.有如下Fortran说明语句,试借助符号表登记等价环链EQ和相对数OFFSET,即填写下表的EQ栏和OFFSET栏.设每个整型量占1子编址.integer a,b,c(10,10),d(10)equivalence (a,d(8),c(5,5))equivalence (b,c(5,8))符号表┌───┬─────┬───┬───┐│ name │ ... │ EQ │OFFSET│1│ a │ ... │ ││├───┼─────┼───┼───┤2│ b │ ... │ │ │├───┼─────┼───┼───┤3│ c │ ... │ │ │├───┼─────┼───┼───┤4│ d │ ... │ │ │└───┴─────┴───┴───┘2.有如下pascal语言的程序轮廓,当运行该程序且第一次递归调用Q过程(即在过程Q中又调用了Q)时,数据区建立情况.假定各数据区首址用SP(i)(i=0,1,……)表示,试给出P,Q数据区的display表.┌ main│┌ P││┌ Q│││ Call Q││└││ Call Q│└│┌ R││ Call P│└│┌ S││ Call R│└│ Call S└七:已知如下流图,试给出回边与循环.↓┌─→①←┐│/ \ /│ ↓↓/\ ②③\ \ /↑\↓↓/┌→④──┐│ │ ↓│ │┌→⑤│ ↓/ │└─⑥←─┘东南大学1998编译原理试题一:已知文法G1:S→aB|εB→b C|bDC→cB|cD→d1.试构造一个最小DFA,画出状态转换图.2.由该DFA给出它所识别的语言(用正规式表示).二:已知正规式α=ab*c*d,1.试构造一个DFAM,其接受的语言为此α(画出图);2.由该DFAM写出对应的正规文法(古线性).三:文法G3:S→A[B]A→[B]|AaB→a1.求出各非终结符N的Firstvt(N)和Lastvt(N),构造包括语句括号'#'在内的算符优先表;2.给出语句#[a][a]#的算符优先分析过程,即填写如下格式的表:步骤│ 栈内│ 输入串│ 动作────┼───┼────┼─────0 │# │[a][a]# │... │││四:已知文法G4:T→T*F|FF→(T)|i1.试给出语句(i*i)#的自上而下分析过程(填下表);2.画出对应的语法树,指出每一步归纳的句柄.步骤│ 栈内│ 输入│ 动作────┼───┼────┼─────0 │#T │ (i*i)# │... │││五:已知文法G5:0. E'→E1. E→E+T2. E→T3. T→i列出LR(0)项目集规范族,求出各非终结符N的Follow集合,构造SLR分析表.六:翻译如下语句成四元式序列(由语法制导生成).while a>b and aif a=5 then b:=b+1 elserepeata:=a+1until a>=d;七:按语法制导翻译下段程序成四元式序列(不要优化),设数组A:array[1..10,1..10] of int;每个下标变量占1字编址,数组按行存放,Z为函数名.beginA[i,j]:=A[i,j]+2;B:=Z(A[i,j])*5end八:将如下一段四元式序列进行块内优化和循环优化(强度减弱及删除基本归纳变量),写出优化后的四元式序列.(要求先划分基本块)(1) i:=1(2) if i>100 goto (10)(3) T1:=20*i(4) M:=J+T1(5) T2:=20*i(6) N:=K+T2(7) O:=M+N(8) i:=i+1(9) goto (2)(10) ...九:已知如下一段程序,试给出运行时整个数据区结构.假定num初值为2,每个数据区的活动记录包含内容如下图所示,数据区从k单元开始编址.┌─────┐ progr am factoral;│函数返回值│ var num,fact:int;├─────┤ function f(n:int):int│ 变量单元│ if n>0 then f:=n*f(n-1)├─────┤ else f:=1;│display 表│ begin├─────┤ read(num);│ 形参单元│ fact:=f(num)├─────┤ end│ 返回地址│├─────┤│基SP │└─────┘东南大学1999编译原理试题一:已知正规文法中的左线性文法G1:S→Sa|Sb|c试构造无ε产生式的等价右线性文法,并构造相应的确定有限自动机DFA,画出状态转换图即可.二:已知正规文法(X为开始符号)G2: X→0Y|1Z|0Y→0X|1Y|1Z→1X1.该文法产生语言是什么?请用正规式表示.2.构造最简的确定有限自动机DFA,并画出状态转换图.三:已知上下文无关文法(E为开始符号)G3: E→ET+|TT→TF*|FF→E|i1.消除文法左递归,并给出改写后的文法产生式;2.给出文法改写以后的各非终结符X的First(X)与Follow(X)集合,并由此判定它是否是LL(1)文法(按下表填).V(N) │ First(X) │ Follow(X)───┼─────┼───────X ││───┼─────┼───────...││───┼─────┼───────││四:已知表达式文法(已拓广)G4: E'→EE→E+E|i1.试构造文法G4的LR(0)项目集规范族;2.若'+'服从右结合率,请给出LR分析表.五:已知文法(Z为开始符号)G5: Z→bMbM→(Ma)|a1.试构造算符优先分析表(即填下表);│ a │ b │( │ ) │# │──┼──┼──┼──┼──┼──┼a ││││││──┼──┼──┼──┼──┼──┼b ││││││──┼──┼──┼──┼──┼──┼( ││││││──┼──┼──┼──┼──┼──┼) ││││││──┼──┼──┼──┼──┼──┼# ││││││──┼──┼──┼──┼──┼──┼2.若某相邻的终结符a,b间存在a<=b两种关系,那么在进行算符优先分析做归约动作时,在寻找栈顶的素短语符号串时要察看它与哪个产生式右部的符号串匹配. 例如栈顶串...aAbα(a,b↔VT,A↔(VA∪ε),a<=b,α↔V*)为已知可归约,而现有产生式X→aAbα,则取素短语aAbα,若只有产生式Y→Abα,那么就取Abα进行归约.试按此规定的算法给出语句b((aa)a)b的算符优先分析过程.六:翻译成中间代码.1.将如下程序段翻译成后缀式(逆波兰式),填在一维数组POST[i]中,设i初值=1. t:=15;b:=20;while t<>b doif t>b then t:=t-belse b:=b-t;2.翻译布尔表达式成转移四元式序列,并指出待填真假链序号.(a>b+1) and not (c+2注:f(x)为布尔函数.七:有如下一个计算m*2^n的C语言程序,试给出运行时整个栈或数据区的结构.数据区的活动记录结构如图所示.┌──────┐┌─────┐│ 函数f返回值││返回结果值│├──────┤├─────┤│ 局部变量区││局部变量区│├──────┤├─────┤│ 全程变量区││形参单元区│├──────┤├─────┤│ 主程序main ││ 返回地址││ 数据区│├─────┤└──────┘│ 基SP │├─────┤│函数数据区│└─────┘int m;f(n)int n;{ int c;if (n==0) c=m;else c=f(n-1)*2;return (c);}main(){ int n=2;m=5;printf("%d\n",f(n));}八:已知如下程序段a:=1;while a<=10 dobeginif a<>b thenA[a,b]:=A[a,b]+2;a:=a+1;end;1.按语法制导生成四元式中间代码序列;2.将中间代码序列划分成基本块,画出程序流图,并指出循环结点集;3.执行循环中代码外提,强度减弱优化和基本块内删除公共子表达式优化,最后画出包含优化后的中间代码的程序流图.注:数组A: array[1..10,1..10] of int;按行存放,每个下标变量占1字编址,首地址为addrA上海交通大学1998年编译原理试题一、生成语言l={albmclanbn l>=0,m>=1,n>=2 }的文法是什么?它是chomsky那一型文法?二、文法G1:P aPQR abRRQ QRBQ bbbR bccR cc它是chomsky哪一型文法?请证aaabbbccc是G1的一个句子。

东南大学编译原理试卷

东南大学编译原理试卷

S o u t h e a s t U n i v e r s i t y E x a m i n a t i o n P a p e r(A) Course Name Principles of Compiling Examination Term08-09-2 ScoreRelated Major Computer Science &TechnologyExamination Form Close test Test Duration 150 MinsThere are 8 problems in this paper. You can write the answers inEnglish or Chinese on the attached paper sheets.1.Please construct context-free grammars with ε-free productionsfor the following language (10%).{ω| ω∈(a,b,c)* and the numbers of a’s and b’s and c’s occurred inω are even, and ωstarts with b , ends with a or c}2.Please construct a DFA with minimum states for the followingregular expression. (10%)(a|(a|(a|b*))*)*(a|b*)3.Please eliminate the left recursions (if there are)and extractmaximum common left factors (if there are) from the followingcontext free grammar, and then decide the resulted grammar iswhether a LL(1) grammar by constructing the related LL(1)parsing table.(15%)P→b S d Please obey the rules of examination. If you violate the rules, your answer sheets will be invalid共 6 页第1 页S→S ; A|AA→B|CB→aC→D|D e AD→E BE→i F tF→F o G|GG→b4.Please show that the following operator grammar is whether anoperator precedence grammar by constructing the related parsing table. (10%)E→E a F|FF→F o T|TT→(E)|n T|b5.Please construct a LR(1) parsing table for the followingambiguous grammar with the additional conditions that *, ⊗and⊕have the properties of left associative law, and* has higher precedence than ⊗, ⊗has higher precedence than共 6 页第2 页⊕.(15%)E→E⊕E|E⊗E|E*|(E)|a|b6.Please construct an annotated parse tree for the input string123.123 where the syntax-directed definition is as following (10%): Productions Semantic RulesS→L(1).L(2) S.val=L(1).val+L(2).val/4L(2).lenS→L S.val=L.valL→L(1)B L.val=L(1).val*4+B.val, L.len=L(1).len+1L→B L.val=B.val, L.len=1B→0 B.val=0B→1 B.val=1B→2 B.val=2B→3 B.val=37. We assume that the storage organization and the form of activation record used in C language program run-time stack storage allocation are as following. Please construct the run-time stack map when it gets the maximum size at the second time for the following C program (10%).共 6 页第3 页Storage Organization of C LanguageThe C program is as the following:#include <stdio.h>int x,y;int main(){x=6;y=f(x);}int f(int n){if (n<=1)return 1;else if(n==2)return 2;else{int t1,t2,t3,t;t1=f(n-1);t2=f(n-2);共 6 页第4 页t3=f(n-3);t=t1+t2;t=t+t3;return t}}Notes: 1) Here we assume that the caller’s sp of Main function is the start address of global variable data area, and the returned address in the activation record of a function (including Main function) is filled by the operating system automatically, you might not care it.2) The initial value of variable X is 6, the start address of stack used in the program is K.3) The stack map may get its maximum size for several times, here we ask you draw the stack map at maximum size for the second time.8. Please translate the following program fragment into three address code sequence, divide the TAC sequence into basic blocks, construct the flow graph and find out all back edges in the flow graph. (20%) i=1;while (i<=10) {j=1;while (j<=10) {c[i,j]=0;j=j+1}i=i+1;}i=1;while (i<=10) {j=1;while (j<=10) {k=1;while (k<=10) {共 6 页第5 页if (a[i,k]!=0 && b[k,j]!=0)c[i,j]=c[i,j]+a[i,k]*b[k,j];k=k+1;}j=j+1;}i=i+1;}Notes: Here we assume that the declarations of array A,B,C are array [1..10,1..10], each data element of array A,B,C would use 4 storage unit, and the start address of array A’s storage area is addrA, the start address of array B’s storage area is addrB, the start address of array C’s storage area is addrC.共 6 页第6 页。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S o ut he a s t Uni v e r si ty E xa mi na ti o n P a per (i n-t e r m) Course Name Principles of Compiling Examination Term Score
Related Major Computer &
Software
Examination Form Close test Test Duration120 Mins
There are 5 problems in this paper. Y ou can write the answers in
English or Chinese on the attached paper sheets.
1.Please construct context-free grammars with ε-free productions
for the following languages (20%).
(1){i|i∈N(Natural number), and i is a palindrome, and (i mod 5)=0}
(2){ω| ω∈(a,b,c,d)* and the numbers of a’s ,b’s and c’s occurred in
ω are even, and ωstarts with a or c , ends with d }
2.Please construct a DFA with minimum states for the following
regular expression. (20%)
(((a|b)*a)*(a|b))*(a|b)
3.Please eliminate the left recursions (if there are)and extract
maximum common left factors (if there are) from the following
context free grammar, and then decide the resulted grammar is
whether a LL(1) grammar by constructing the related LL(1)
parsing table.(20%) Please obey the rules of examination. If you violate the rules, your answer sheets will be invalid
共 2 页第 1 页
S→iEtS|iEtSeS|a
E→E and F|F
F→ F or G|G
G→b
4.Please construct a LR(1) parsing table for the following
ambiguous grammar with the additional conditions that all θi (i=1,2) has the properties of right associative law, andθ2has lower precedence than θ1.(20%)
E→E θ1 E| E θ2 E |(E)|i
5.Please show that if a grammar G is a LL(1) grammar, then G
must be a LR(1) grammar (20%):
共 2 页第 2 页。

相关文档
最新文档