编译原理 | 由正规文法构造状态转换图
词法分析
:由正规文法构造状态转换图
解题方法
1. 由左线性文法构造状态转换图
左线性文法G=(VN,VT,P,Z)(1)G中形如U::=Ba,则可化成:B—(a)—>U(表示状态B向状态U引一条箭弧线并标记符号a,不方便画图,就直接这样表示了,你们懂就行)(2)G中形如U::=a,则可化成:S—(a)—>U(表示初始状态S向状态U引一条箭弧线并标记符号a)(3)状态转换图开始状态标记为S,终止状态标记为Z左线性文法G=(V_N,V_T,P,Z)\\ (1) G中形如U::=Ba,则可化成:B—(a)—>U(表示状态B向状态U引一条箭弧线并标记符号a,不方便画图,就直接这样表示了,你们懂就行)\\ (2) G中形如U::=a,则可化成:S—(a)—>U(表示初始状态S向状态U引一条箭弧线并标记符号a)\\ (3) 状态转换图开始状态标记为S,终止状态标记为Z 左线性文法G=(VN,VT,P,Z)(1)G中形如U::=Ba,则可化成:B—(a)—>U(表示状态B向状态U引一条箭弧线并标记符号a,不方便画图,就直接这样表示了,你们懂就行)(2)G中形如U::=a,则可化成:S—(a)—>U(表示初始状态S向状态U引一条箭弧线并标记符号a)(3)状态转换图开始状态标记为S,终止状态标记为Z
例题
设左线性文法G[Z]=(VN,VT,P,Z),其中VN=Z,U,VVT=0,1P:Z::=U0∣V1U::=Z1∣1V::=Z0∣0设左线性文法G[Z] = (V_N,V_T,P,Z),其中\\ V_N={Z,U,V}\\ V_T={0,1}\\ P: Z::=U0|V1\\ U::=Z1|1\\ V::=Z0|0 设左线性文法G[Z]=(VN,VT,P,Z),其中VN=Z,U,VVT=0,1P:Z::=U0∣V1U::=Z1∣1V::=Z0∣0
解:
由Z::=U0∣V1,得U−(0)−>Z,V−(1)−>Z由U::=Z1∣1,得Z−(1)−>U,S−(1)−>U由V::=Z0∣0,得Z−(0)−>V,S−(0)−>V由Z::=U0|V1,得U-(0)->Z,V-(1)->Z\\ 由U::=Z1|1,得Z-(1)->U,S-(1)->U\\ 由V::=Z0|0,得Z-(0)->V,S-(0)->V 由Z::=U0∣V1,得U−(0)−>Z,V−(1)−>Z由U::=Z1∣1,得Z−(1)−>U,S−(1)−>U由V::=Z0∣0,得Z−(0)−>V,S−(0)−>V
所以,得到状态转换图如下:
2. 由右线性文法构造状态转换图
右线性文法G=(VN,VT,P,S)(1)G中形如U::=aB,则可化成:U—(a)—>B(表示状态U向状态B引一条箭弧线并标记符号a,不方便画图,就直接这样表示了,你们懂就行)(2)G中形如U::=a,则可化成:U—(a)—>Q(表示状态U向终止状态Q引一条箭弧线并标记符号a)(3)状态转换图开始状态标记为S,终止状态标记为Q右线性文法G=(V_N,V_T,P,S)\\ (1) G中形如U::=aB,则可化成:U—(a)—>B(表示状态U向状态B引一条箭弧线并标记符号a,不方便画图,就直接这样表示了,你们懂就行)\\ (2) G中形如U::=a,则可化成:U—(a)—>Q(表示状态U向终止状态Q引一条箭弧线并标记符号a)\\ (3) 状态转换图开始状态标记为S,终止状态标记为Q 右线性文法G=(VN,VT,P,S)(1)G中形如U::=aB,则可化成:U—(a)—>B(表示状态U向状态B引一条箭弧线并标记符号a,不方便画图,就直接这样表示了,你们懂就行)(2)G中形如U::=a,则可化成:U—(a)—>Q(表示状态U向终止状态Q引一条箭弧线并标记符号a)(3)状态转换图开始状态标记为S,终止状态标记为Q
例题
设右线性文法G=({S,A,B},{a,b},S,P),其中P:S::=bAA::=bBA::=aAA::=bB::=a设右线性文法G = (\{S,A,B\},\{a,b\},S,P),其中\\ P: S::=bA\\ A::=bB\\ A::=aA\\ A::=b\\ B::=a 设右线性文法G=({S,A,B},{a,b},S,P),其中P:S::=bAA::=bBA::=aAA::=bB::=a
解:
过程和左线性差别不大,所以得到状态转换图如下:
3. 左线性文法和右线性文法之间的关系
等价关系右线性文法的产生式左线性文法的产生式S−>aS−>aS−>a1A1A1−>a1A1−>a2A2A2−>A1a2A2−>a3S−>A2a3等价关系\\ 右线性文法的产生式 \qquad 左线性文法 的产生式\\ S->a \qquad S->a\\ S->a_1A_1 \qquad A_1->a_1\\ A_1->a_2A_2 \qquad A_2->A_1a_2\\ A_2->a_3 \qquad S->A_2a_3 等价关系右线性文法的产生式左线性文法的产生式S−>aS−>aS−>a1A1A1−>a1A1−>a2A2A2−>A1a2A2−>a3S−>A2a3
编译原理 | 由正规文法构造状态转换图相关推荐
- 正规文法构造状态转换图,状态转换图构造正规文法---编译原理
从左线性正规文法出发,构造状态图 注意:增设初态S,单圆圈表示 例子 从右线性正规文法出发,构造状态图 注意:增设终态Z,双圆圈表示 例子 状态转换图构造左线性正规文法 注意:写左线性正规文法时从终态 ...
- 根据正规文法构建状态转换图
右线性文法构造转台转换图: 左线性文法构造状态转换图 二者: 右线性文法构造时就识别的方法而言,它却属于"自上向下"分析. 左线性文法构造时就识别的方法而言,它却属于" ...
- 编译原理及编译程序构造-绪论
编译原理及编译程序构造(张莉) 1 绪论 编译:把高级程序语言翻译成汇编语言或机器语言: 计算机组成五部分:输入.输出.控制器.运算器.存储器 源程序:程序语言处理系统的输入程序: 目标程序:能在计算 ...
- (编译原理)正规文法转正规式(原代码)
(编译原理)正规文法转正规式 一.实验要求 输入:正规文法 输出:正规式 例: 输入:S->aB B->b 输出:ab 输入:S->aS S->b 输出:a*b 输入:S-&g ...
- 【编译原理】手工构造词法分析器
[问题描述]通过设计c语言常见单词的正规文法或正规式,而后得到NFA,再确定化得到DFA,根据DFA的转换矩阵或转换图,用c++语言实现词法分析器. [输入形式]输入一段完整的c语言程序 [输出形式] ...
- 带状态转换图的词法分析器
编译原理词法分析器java带状态转换图 内容 输入:根据教学要求和学生具体情况,从具有代表性的高级程序设计语言中,选取一个适当大小的子集,例如可以选取一类典型单词,也可以尽可能使各种类型的单词都能兼顾 ...
- 编译原理MOOC笔记
编译原理笔记 正规文法和正规式 词法分析 前端 词法分析器的任务 词法分析器的实现方法 正则表达式 有限状态自动机 正则表达式到非确定有限状态自动机 语法分析 自上而下的语法分析 直接左递归的消除 间 ...
- 编译原理(六)自底向上分析之LR分析法
自底向上分析之LR分析法 说明:以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记. 基本概念 1. LR分析:从左到右扫描(L)自底向上进行规约(R),是规范规约,也即最右推导(规范推导) ...
- 编译原理(五)自底向上分析之算符优先分析法
自底向上分析之算符优先分析法 说明:以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记. 基本过程 1. 一般方法:采用自左向右地扫描和分析输入串,从输入符号串开始,通过反复查找当前句型的句 ...
最新文章
- shell %% , ##,#,% 用法
- 抖音怎么上传无损画质_抖音怎么上传高清视频?干货,从此告别模糊
- datetime timestamp的区别
- Python map 函数 - Python零基础入门教程
- C Primer Plus 第9章 函数 9.4 多源代码文件程序的编译
- LA 4123 (计数 递推) Glenbow Museum
- Solaris 图形化界面登陆的控制
- 一个成型的awt所必须的frame组件
- 从0开始html前端页面开发_CSS设置图像圆角
- 图:经过艰苦的代码收官阶段,我的抽奖软件作品终于完工,大家欣赏.从我个人的自我判断来看,其它的抽奖软件都是浮云...
- java简单租车系统 慕课手记_Java租车系统(新手)
- WEB渗透测试思维导图
- 宿华辞任快手CEO、程一笑接任;百世将国内快递业务68亿元出售给极兔|美通社头条...
- C++游戏开发入门制作:经典游戏拳皇97
- Android Kotlin之Flow数据流
- MySQL数据库子查询#where、from、exists三大类型子查询总结
- 30多岁了,年薪多少才不会焦虑?
- 7.07亿TPC-C背后的技术突破,OceanBase研究成果入选VLDB
- 快速打开电脑计算机的快捷键,电脑自带的计算器如何快速打开和快捷键的添加...
- 先进控制技术+matlab仿真,先进 PID 控制及其 MATLAB 仿真(教材+相关程序) 刘金琨 著 电 子 工 业 出 版 社...
热门文章
- IDA反汇编/反编译静态分析iOS模拟器程序(六)交叉引用
- CSS Gird布局用法
- native数据类型 react_react-native中使用realm数据库
- C++类和C结构体类型的异同
- AVL树【图示详解+代码实现】
- Impala: Reducing query concurrency or configuring admission control may help avoid this error
- 前度面试总结,被问的概率极大
- 后台打log(便于查看问题和调试)方法
- MSVCR110.dll缺失问题
- 2022-2027年中国仓储物流机器人行业发展前景及投资战略咨询报告