摘要:
消除左递归 1.将以下文法消除左递归,分析符号串 i*i+i 。 并分别求FIRST集、FOLLOW集,和SELECT集 E -> E+T | T T -> T*F | F F -> (E) | i 消除左递归得: E->TE’ E’->+TE’|ε T->FT’ T’->*FT’|ε F->(E) 阅读全文
摘要:
1.将DFA最小化:教材P65 第9题 I {1,2,3,4,5} {6,7} {1,2}b->{2} {3,4}b->{6,7} {1,2}a->{3,4}不可区分 {3,4}c->{3}不可区分 II {1,2}{3,4}{5} {6,7} 2.构造以下文法相应的最小的DFA S→ 0A|1B 阅读全文
摘要:
1.设有 NFA M=( {0,1,2,3}, {a,b},f,0,{3} ),其中 f(0,a)={0,1} f(0,b)={0} f(1,b)={2} f(2,b)={3} 画出状态转换矩阵,状态转换图,并说明该NFA识别的是什么样的语言。 答:状态转化图以及转换矩阵如下 2.NFA 确定化为 阅读全文
摘要:
编译原理7 正规式、正规文法与自动机 1.正规式转换到正规文法 对任意正规式R选择一个非终结符Z生成规则Z→R 1.对形如A→ab的规则,转换成A→aB,B→b 2.将形如A→a|b的规则,转换成A→a,A→b(A→a|b) 3.将形如A→a*b的规则,转换成A→aA,A→b 将形如A→ba*的规则 阅读全文
摘要:
1.分别写出描述以下语言的正规文法和正规式: L1={abna|n≥0}。 L2={ambn|n≥1,m ≥1} L3={(ab)n|n≥1} 答: 正规文法: L1:S->aA A->bA | a L2:S->aS S->bS | ε L3:S->aA A->bS | b 正规式: L1:ab*a 阅读全文
摘要:
编译原理5 词法分析程序的设计与实现 此程序要逐个检查运行情况,并能当场补全代码。 词法分析程序(Lexical Analyzer)要求: - 从左至右扫描构成源程序的字符流 - 识别出有词法意义的单词(Lexemes) - 返回单词记录(单词类别,单词本身) - 滤掉空格 - 跳过注释 - 发现词 阅读全文
摘要:
1. 梳理第二章的内容,写一篇理解与总结。 编译原理第二章文法与语言理解与总结: 一个程序设计语言是一个记号系统,如同自然语言一般,它的完善定义应该包括语法和语义两个方面。 就类似我们学习英语一样,语法是组织一切单词得出句意的手段,编译原理的语法亦是一样的。 而阐明语法的一个工具就是文法,知识形式语 阅读全文
摘要:
1.已知文法: S->a|^|(T) T->T,S|S 分析句型(T,(^,a)),求全部的短语、直接短语和句柄。 2.构造上下文无关文法,描述语言: {anbn|n>=0} {ambn|m>=n>=0} if语句 答: {anbn|n>=0} S->aSb | ab {ambn|m>=n>=0} 阅读全文
摘要:
编译原理2 文法与语言 以老师PPT为标准,借鉴部分教材内容,以及学习笔记。 1. 符号串知识 符号串集合幂运算: A0=εA0=ε, A1=AA1=A, A2=AAA2=AA, ... 符号串集合闭包运算。正闭包: A+=A1∪A2∪A3∪...A+=A1∪A2∪A3∪...。闭包: A∗=A0∪ 阅读全文
摘要:
1)简述编译程序与翻译程序、汇编程序的联系与区别。 1.简单来讲,编译程序 是语言处理程序,将汇编语言(即我们所知的C,C++等)这一类的源程序进行输入,然后通过翻译并再转换之后,最后产出机器语言的程序,简单来讲就是一个属于计算机语言的翻译过程。编译程序工作时,先词法分析和语法分析,然后代码优化,存 阅读全文