词法分析 :由正规文法构造状态转换图

解题方法

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−>a1​A1​A1​−>a1​A1​−>a2​A2​A2​−>A1​a2​A2​−>a3​S−>A2​a3​

编译原理 | 由正规文法构造状态转换图相关推荐

  1. 正规文法构造状态转换图,状态转换图构造正规文法---编译原理

    从左线性正规文法出发,构造状态图 注意:增设初态S,单圆圈表示 例子 从右线性正规文法出发,构造状态图 注意:增设终态Z,双圆圈表示 例子 状态转换图构造左线性正规文法 注意:写左线性正规文法时从终态 ...

  2. 根据正规文法构建状态转换图

    右线性文法构造转台转换图: 左线性文法构造状态转换图 二者: 右线性文法构造时就识别的方法而言,它却属于"自上向下­"分析. 左线性文法构造时就识别的方法而言,它却属于" ...

  3. 编译原理及编译程序构造-绪论

    编译原理及编译程序构造(张莉) 1 绪论 编译:把高级程序语言翻译成汇编语言或机器语言: 计算机组成五部分:输入.输出.控制器.运算器.存储器 源程序:程序语言处理系统的输入程序: 目标程序:能在计算 ...

  4. (编译原理)正规文法转正规式(原代码)

    (编译原理)正规文法转正规式 一.实验要求 输入:正规文法 输出:正规式 例: 输入:S->aB B->b 输出:ab 输入:S->aS S->b 输出:a*b 输入:S-&g ...

  5. 【编译原理】手工构造词法分析器

    [问题描述]通过设计c语言常见单词的正规文法或正规式,而后得到NFA,再确定化得到DFA,根据DFA的转换矩阵或转换图,用c++语言实现词法分析器. [输入形式]输入一段完整的c语言程序 [输出形式] ...

  6. 带状态转换图的词法分析器

    编译原理词法分析器java带状态转换图 内容 输入:根据教学要求和学生具体情况,从具有代表性的高级程序设计语言中,选取一个适当大小的子集,例如可以选取一类典型单词,也可以尽可能使各种类型的单词都能兼顾 ...

  7. 编译原理MOOC笔记

    编译原理笔记 正规文法和正规式 词法分析 前端 词法分析器的任务 词法分析器的实现方法 正则表达式 有限状态自动机 正则表达式到非确定有限状态自动机 语法分析 自上而下的语法分析 直接左递归的消除 间 ...

  8. 编译原理(六)自底向上分析之LR分析法

    自底向上分析之LR分析法 说明:以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记. 基本概念 1. LR分析:从左到右扫描(L)自底向上进行规约(R),是规范规约,也即最右推导(规范推导) ...

  9. 编译原理(五)自底向上分析之算符优先分析法

    自底向上分析之算符优先分析法 说明:以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记. 基本过程 1. 一般方法:采用自左向右地扫描和分析输入串,从输入符号串开始,通过反复查找当前句型的句 ...

最新文章

  1. shell   %% , ##,#,% 用法
  2. 抖音怎么上传无损画质_抖音怎么上传高清视频?干货,从此告别模糊
  3. datetime timestamp的区别
  4. Python map 函数 - Python零基础入门教程
  5. C Primer Plus 第9章 函数 9.4 多源代码文件程序的编译
  6. LA 4123 (计数 递推) Glenbow Museum
  7. Solaris 图形化界面登陆的控制
  8. 一个成型的awt所必须的frame组件
  9. 从0开始html前端页面开发_CSS设置图像圆角
  10. 图:经过艰苦的代码收官阶段,我的抽奖软件作品终于完工,大家欣赏.从我个人的自我判断来看,其它的抽奖软件都是浮云...
  11. java简单租车系统 慕课手记_Java租车系统(新手)
  12. WEB渗透测试思维导图
  13. 宿华辞任快手CEO、程一笑接任;百世将国内快递业务68亿元出售给极兔|美通社头条...
  14. C++游戏开发入门制作:经典游戏拳皇97
  15. Android Kotlin之Flow数据流
  16. MySQL数据库子查询#where、from、exists三大类型子查询总结
  17. 30多岁了,年薪多少才不会焦虑?
  18. 7.07亿TPC-C背后的技术突破,OceanBase研究成果入选VLDB
  19. 快速打开电脑计算机的快捷键,电脑自带的计算器如何快速打开和快捷键的添加...
  20. 先进控制技术+matlab仿真,先进 PID 控制及其 MATLAB 仿真(教材+相关程序) 刘金琨 著 电 子 工 业 出 版 社...

热门文章

  1. IDA反汇编/反编译静态分析iOS模拟器程序(六)交叉引用
  2. CSS Gird布局用法
  3. native数据类型 react_react-native中使用realm数据库
  4. C++类和C结构体类型的异同
  5. AVL树【图示详解+代码实现】
  6. Impala: Reducing query concurrency or configuring admission control may help avoid this error
  7. 前度面试总结,被问的概率极大
  8. 后台打log(便于查看问题和调试)方法
  9. MSVCR110.dll缺失问题
  10. 2022-2027年中国仓储物流机器人行业发展前景及投资战略咨询报告