随笔分类 - 编译原理
摘要:1.语法文法G[E]如下所示: E→E+T | E-T | T T→T* F | T/F | F F→P^ F | P P→(E) | i 要求构造出符合语义分析要求的属性文法描述(主要写生成四元式的部分)。 解析: E -> E+T {E.place:=newtemp; emit(E.place,
阅读全文
摘要:1. 已知算符优先关系矩阵如下表: + * i ( ) # + > < < < > > * > > < < > > i > > > > ( < < < < = ) > > > > # < < < < = 写出符号串(i+i)*i#的算符优先分析过程。 <=移进 >归约 分析过程如下: 栈 关系 输入
阅读全文
摘要:1.已知文法: E→E+T | T T→T*F | F F→(E) | i 以句柄作为可归约串,写出符号串‘i+i*i#’的"移进-归约"分析过程。 解析: 语法树如图所示: 分析过程如下: 2.P121练习1的(1)(2)。 1)计算FIRSTVT和 LASTVT。 2)找三种关系对。 3)构造算
阅读全文
摘要:一、实验目的 利用C语言编制递归下降分析程序,并对简单语言进行语法分析。 编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。 二、实验原理 每个非终结符都对应一个子程序。 该子程序根据下一个输入符号(SELECT集)来确定按照哪一个产生式进行处理,再根据该产生式的右端
阅读全文
摘要:1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? FIRST(Da)={b,a} FIRST(ε)={ε} FIRST(aADC)={a} FIRST(b)=
阅读全文
摘要:1.将以下文法消除左递归,分析符号串 i*i+i 。 并分别求FIRST集、FOLLOW集,和SELECT集 E -> E+T | T E -> TE' E' -> +TE'|ε T -> T*F | F T -> FT' T' -> *F|ε F -> (E) | i 解析: 1.First集:
阅读全文
摘要:1.将DFA最小化:教材P65 第9题 解析: 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 解析: S→ 0A|1B →S → 0(1S|1)|1(0S|0) →01S | 01 | 10S | 10 →(01 | 10)S | (01 | 10) →(01
阅读全文
摘要: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识别的是什么样的语言。 解析: a b 0 {0,1} 0 1 2 2 3 3
阅读全文
摘要: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 不断利用上述
阅读全文
摘要:1.分别写出描述以下语言的正规文法和正规式: L1={abna|n≥0}。 L2={ambn|n≥1,m ≥1} L3={(ab)n|n≥1} 解析: (1)设文法G(S)={abna|n≥0} 正规文法: S → aA A → Ba B → bn B → bB|ε 正规式: B = ε + bB
阅读全文
摘要:词法分析程序(Lexical Analyzer)要求: 从左至右扫描构成源程序的字符流 识别出有词法意义的单词(Lexemes) 返回单词记录(单词类别,单词本身) 滤掉空格 跳过注释 发现词法错误 程序结构: 输入:字符流(什么输入方式,什么数据结构保存) 处理: 遍历(什么遍历方式) 词法规则
阅读全文
摘要:1. 梳理第二章的内容,写一篇理解与总结。 一、 对程序设计语言的描述从语法、语义和语用三个因素考虑: 语法:对语言结构的定义; 语义:语言的含义; 语用:从使用的角度描述语言。 形式语言理论是编译的理论基础。 二、 字母表:元素的非空有穷集合; 符号/字符:字母表中的元素; 符号串:符号的有穷序列
阅读全文
摘要:1.已知文法: S->a|^|(T) T->T,S|S 分析句型(T,(^,a)),求全部的短语、直接短语和句柄。 解析:根据题意,语法树如下图: 全部短语:(T,(^,a)) T,(^,a) (^,a) ^,a ^ a 直接短语:^ a 句柄:^ 2.构造上下文无关文法,描述语言: {anbn|n
阅读全文
摘要:1.理解符号串与集合运算。 L={A,B, … ,Z,a,b, … ,z} D={0,1, … ,9} 说明下表示的含义: LUD :全部字母和数字的集合 LD :由一个字母后跟一个数字组成的所有符号串的集合 L4 :由4个字母组成的所有符号串的集合 L* :由字母组成的所有符号串(包括∑)的集合
阅读全文
摘要:1)简述编译程序与翻译程序、汇编程序的联系与区别。 个人理解:编译程序(为高级服务)是将高级语言书写的源程序翻译成与之等价的低级语言的目标程序。 翻译程序是指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程
阅读全文

浙公网安备 33010602011771号