当前位置: 首页 > news >正文

编译原理【文法设计】—每个a后面至少一个b、ab个数相等,ab个数不相等的所有串

编译原理【文法设计】—设计每个a后面至少一个b、ab个数相等,ab个数不相等的文法

为字母表Σ={a,b}Σ=\{a,b\}Σ={a,b}上的下列每个语言设计一个文法

(a) 每个a后面至少有一个b的所有串

  • 首先,每个a后面至少有一个b的正规式怎么写呢?
  • 每个a都需要至少跟一个b,那么可以用ab表示
  • 那么这个串的前面可以有若干个a或者若干个b或者他们的任意组合,那么保证有了ab以后,在它的前面或者后面都添加若干个a或b
  • 则正规式为:(ab|b)*,这样得到了上述语言的正规式
  • 那么文法怎么写呢?直观的看,该正规式可以推到ab之后跟任意ab或者b的串,可以推到空串,也可以推到b开头后续跟任意ab或b的串
  • 则用一个文法符号S表示,可以推到如下文法
    • S→abSS→bSS→ϵS→abS\\ S→bS\\S→\epsilonSabSSbSSϵ
    • 这个文法就满足
      • 可以推到ab开头之后跟任意ab或者b的串
      • 可以推到b开头后续跟任意abb的串
      • 可以推到空串

(b)a和b个数相等的所有串

  • S→aB∣bA∣ϵA→aS∣bAAB→bS∣aBBS→aB|bA|\epsilon\\A→aS|bAA\\B→bS|aBBSaBbAϵAaSbAABbSaBB
  • 上述文法怎么得到的呢?
  • 如下:在这里插入图片描述在这里插入图片描述
    (c)a和b个数不相等的所有串
  • 在这里插入图片描述
http://www.lryc.cn/news/18690.html

相关文章:

  • 【死磕数据库专栏启动】在CentOS7中安装 MySQL5.7版本实战
  • 23.2.23 22湖北省赛 B
  • ONLYOFFICE中的chatGPT 是如何编写毕业论文以及翻译多种语言的
  • QT入门Containers之QStackedWidget
  • Java学习-IO流-字节缓冲流
  • C++这么难,为什么我们还要学习C++?
  • C#底层库--业务单据号生成器(定义规则、自动编号、流水号)
  • vue3项目练习大全(附github源码)
  • SWMM从入门到实践教程 01 SWMM软件介绍
  • CSS中的text-overflow属性详解 (控制文字在一行显示,超出部分加省略号)
  • 基于pytorch实现模型剪枝
  • 写出高质量的前端代码之消除代码中的重复
  • 怎么从零开始学黑客,黑客零基础怎么自学
  • 量化择时——资金流择时策略(第1部分—因子测算)
  • Openwrt中动态IPV6 防火墙的正确设置方法
  • JS的基本数据类型和引用数据类型
  • mars3d基础项⽬常⻅报错
  • 【阿旭机器学习实战】【35】员工离职率预测---决策树与随机森林预测
  • Python学习-----模块4.0(json字符串与json模块)
  • open3d最大平面检测,平面分割
  • 【C++】4.类和对象(下)
  • 自动驾驶仿真:ECU TEST 、VTD、VERISTAND连接配置
  • postgres数据库连接管理
  • 【华为OD机试模拟题】用 C++ 实现 - 环中最长子串(2023.Q1)
  • Spring:@Async 注解和AsyncResult与CompletableFuture使用
  • tidb ptca,ptcp考证
  • 关于用windows开发遇到的各种乌龙事件之node版本管理---nvm install node之后 npm 找不到的问题
  • JMeter做UI自动化
  • Kibana与Elasticsearch
  • [数据结构]:03-栈(C语言实现)