1 / 18

《编译原理》期末复习

《编译原理》期末复习. 第3-4章基本概念和考试模块 出题方法 (包括实验). 文法 考试方法. 根据文法写出语言 根据语言写出文法(上下文无关文法或正规文法,同时要消除有害规则和多余规则) 容易出错的地方: 文法的写法(和正规式的区别、大小写规定) 语言的写法(文字表述、集合). 根据文法写出语言. 例:文法 G: S → 0S1, S → 01 问:它的语言是什么?. 答: L(G)={0 n 1 n |n ≥ 1}. 点击看答案. 根据语言写出文法. 已知语言为 {0 n 1 n |n ≥ 1}, 写出能生成该语言的一个上下文无关文法。.

britain
Download Presentation

《编译原理》期末复习

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 《编译原理》期末复习 第3-4章基本概念和考试模块 出题方法 (包括实验)

  2. 文法考试方法 • 根据文法写出语言 • 根据语言写出文法(上下文无关文法或正规文法,同时要消除有害规则和多余规则) • 容易出错的地方: • 文法的写法(和正规式的区别、大小写规定) • 语言的写法(文字表述、集合)

  3. 根据文法写出语言 例:文法G:S→0S1, S→01 问:它的语言是什么? 答:L(G)={0n1n|n≥1} 点击看答案

  4. 根据语言写出文法 • 已知语言为 {0n1n|n≥1},写出能生成该语言的一个上下文无关文法。 答:文法为: G[S]: S→0S1 S→01 点击看答案

  5. 正规式考试方法 • 根据正规式写出语言(正规集) • 根据语言(正规集)写出正规式 • 根据DFA的状态图判断字符串能否被接受 • 根据正规式画出状态图 • 根据状态图写出正规式 • 将NFA化为DFA(给出过程,要求完成最后一步) • 将DFA化简(给出足够的提示) • 根据正规式或状态图查找字符串 • 根据DFA的转换函数或状态表画出状态图(反之亦可)

  6. 根据正规式写出语言 • 例. ={l,d},正规式r=l(l d) 定义的正规集是什么? 答:正规集是: 以l开头,后跟任意多个l和d,组成的串的集合。 (比较:{l,ll,ld,ldd,……} (标识符)) 点击看答案

  7. 根据语言写出正规式 • 写出标识符的正规式,其中设字母为l,数字为d,标识符长度不受限制。 答:正规式为 l(l d)  点击看答案

  8. a a U a,b Q a b S V b b 根据DFA的状态图判断字符串能否被接受 • 例.字符串baab能否被下面的DFA接受 答:能被接受。 点击看答案

  9. l,d l S Q 根据正规式画出状态图 • 正规式R= l(l d)  相应的状态图为:

  10. l,d l S Q 根据状态图写出正规式 例: 求正规式R 答:R= l(l d)  点击看答案

  11. 实验考试方法 • 课程设计有关问题的思考 • 程序的功能,主要函数 • 程序的设计方法

  12. 文法和语言(例1) • G:S→0S1, S→01 • G: S →Ac|aB, A→ab, B→bc • G: S →cAd, A→ab, A→a • G[N]: N →D|ND, D→0|1|2|…|9 • G: E→E+E,E→E-E,E→E*E,E→(E),E→i(i为数值) • 略

  13. 上一页答案 • L(G)={0n1n|n≥1} • L(G)={abc} • L(G)={cabd, cad} • L(G)={由0-9组成的数字串} • 包含数值、加、减、乘、括号的表达式 • 各种数的集合: • 偶正偶数的集合(1)允许0开头;(2)不许0开头 • 自然数、正整数、被5等整除的数、某几位或位数确定的数、含有符号的数、小数等

  14. 文法和语言(例2) • G(E):E → ETP|TT → TFM|FF → a|b|cP → +|-M → *|/

  15. 上一页答案 • 以a,b,c为操作数,以+,-,*,/为操作符的表达式的逆波兰表示

  16. 文法和语言(例3) • {anbnambm|n,m≥0} • {1n0m1m0n|n,m≥0} • {WaWr|W属于{0|a}*, Wr表示W的逆}

  17. 上一页答案 • G[S]:S→ABA→aAb|εB→aBb|ε G[S]:S→1S0S→AA→0A1|ε G[S]:S →0S0|aSa|a

  18. 有穷自动机(例1) • 已知DFA M=({S,U,V,Q},{a,b},f,S,{Q}),其中f定义为:f(S,a)=U f(V,a)=Uf(S,b)=V f(V,b)=Qf(U,a)=Q f(Q,a)=Qf(U,b)=V f(Q,b)=Q画出其状态图。 • 其他例:P.54

More Related