摘要: 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)|i FIRST集 FIRST 阅读全文
posted @ 2019-11-12 09:46 linyanli 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1.将DFA最小化:教材P65 第9题 1 {1,2,3,4,5} {6,7} {1,2}b->{2} {3,4}b->{6,7} {5}b {6,7}b->{6} 2 {1,2}{3,4}{5} {6,7} 令{1,2}为A,{3,4}为B,{5}为C,{6,7}为D 正规式:b*a((da)*| 阅读全文
posted @ 2019-11-06 21:34 linyanli 阅读(241) 评论(0) 推荐(0) 编辑
摘要: NFA 确定化为 DFA 子集法: f(q,a)={q1,q2,…,qn},状态集的子集 将{q1,q2,…,qn}看做一个状态A,去记录NFA读入输入符号之后可能达到的所有状态的集合。 步骤: 1.根据NFA构造DFA状态转换矩阵 ①确定DFA初态(NFA的所有初态集),字母表 ②从初态出发,经字 阅读全文
posted @ 2019-10-30 22:40 linyanli 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 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*的规则,转换成A→Aa,A→b 不断利用上述 阅读全文
posted @ 2019-10-22 08:42 linyanli 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 1.分别写出描述以下语言的正规文法和正规式: L1={abna|n≥0} 正规文法: L1->aA A->bna A->Ba B->bn B->bB|ε 正规式: L1=aA A=Ba B=bn=b* A=b*a L1=a(b*a)=ab*a L2={ambn|n≥1,m ≥1} 正规文法: L2- 阅读全文
posted @ 2019-10-15 11:03 linyanli 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 词法分析程序(Lexical Analyzer)要求: - 从左至右扫描构成源程序的字符流 - 识别出有词法意义的单词(Lexemes) - 返回单词记录(单词类别,单词本身) - 滤掉空格 - 跳过注释 - 发现词法错误 程序结构: 输入:字符流(什么输入方式,什么数据结构保存) 处理: –遍历( 阅读全文
posted @ 2019-10-11 19:08 linyanli 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1. 梳理第二章的内容,写一篇理解与总结。 在第2章文法和语言这一章的学习中,我收获了很多。 知道了语言和编程语言的组成结构分别是:语言是句子的集合,句子由多个单词按一定的规则组成,而单词又是由多个字符按一定规则组成的。编程语言是程序的语句集合,语句是多个单词按语法规则组成,单词又是由多个字符按词法 阅读全文
posted @ 2019-09-25 16:07 linyanli 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 1.已知文法: S->a|^|(T) T->T,S|S 分析句型(T,(^,a)),求全部的短语、直接短语和句柄。 S=>(T)=>(T,S)=>(T,(T))=>(T,(T,S))=>(T,(S,S))=>(T,(^,S))=>(T,(^,a)) 短语: ^、a、^,a、(^,a)、T,(^,a) 阅读全文
posted @ 2019-09-19 00:05 linyanli 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 1. 文法G(Z):Z->aZb|ab定义的是什么样的语言? Z => aZb => aaZbb => aaa … Z … bbb => aaa … ab … bbb L(G[Z])={a^n b^n|n>=1} 一条关于Z的规则。 2. 写出教材22页例2.2中标识符的文法四元组形式。 设标识符为 阅读全文
posted @ 2019-09-11 01:21 linyanli 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 1)简述编译程序与翻译程序、汇编程序的联系与区别。 答:编译程序是一种翻译程序,它把高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。翻译程序把一种语言所写的源程序翻译成与之等价的另一种语言的目标程序。解释程序将源程序作为输入并执行它,边解释边执行。它与编译程序的主要区别在于在解释程序执 阅读全文
posted @ 2019-09-03 11:30 linyanli 阅读(384) 评论(0) 推荐(0) 编辑