怎么消除文法的左递归性

news/2025/2/26 6:20:08

除文法的左递归性可以采用以下方法:

  1. 直接左递归转换为间接左递归
  2. 消除间接左递归

举例说明:

直接左递归转换为间接左递归


原文法:A → Aα | β

转换后的文法:A → βA'

A' → αA' | ε

例如:S → Sabc | ε

转换后的文法:S → εS'

S' → abcS' | ε

消除间接左递归


原文法:A → Aα1 | Aα2 | ... | Aαm | β1 | β2 | ... | βn

转换后的文法:A → β1A' | β2A' | ... | βnA'

A' → α1A' | α2A' | ... | αmA' | ε

例如:S → Sa | Sb | A

转换后的文法:S → A S'

S' → aS' | bS' | ε

A → ε

例如:E → E + T | E - T | T

转换后的文法:E → TE'

E' → +TE' | -TE' | ε

T → a | b | c

例如:A → Aa | Ab | B

转换后的文法:A → BA'

A' → aA' | bA' | ε

B → ε


http://www.niftyadmin.cn/n/341647.html

相关文章

不同厂家对讲机耳塞耳挂/领夹型988对讲机如何写频改频点/频率能互相通信

988型号都是很多厂家代工出来的,代工出来默认的频点都不一样,有可能买回来的2个不同厂家生产的对讲机,这样它们要能通讯,必须要同频点才能互通,它一般出厂设定16个频道,长按+和-键来切换频道。 需要用到typeC 的写频线,其实是用CH430芯片的usb写频线,可以找厂家要写频线…

又一个2W+的答题抽奖活动,复盘复盘总结总结

又一个2W的答题抽奖活动,复盘复盘总结总结 前段时间太忙了,现在才有时间对一些活动进行复盘总结,这里先对其中一个答题抽奖活动进行复盘总结一下。遇到的一些问题、分析以及其解决方案。 答题抽奖 参与者每答对一道题既可获得相对应的分数&…

计算机图形学-GAMES101-11

显式几何的表示方法 Point Cloud 使用一系列点表示物体的表面。理论上可以表达空间中任何物体。如物体扫描会得到空间中一系列点,但在建模时我们要提取出大量多边形的面。点云对密度要求很高,因此不常使用。 Polygon Mesh 使用三角形表示物体。涉及三…

Java SE 的运算符和控制流语句:深入探索核心编程技巧

Java SE 的运算符和控制流语句:深入探索核心编程技巧 0. 引言1. 运算符1.1 算术运算符1.2 赋值运算符1.3 比较运算符1.4 逻辑运算符1.5 位运算符 2. 控制流程语句3. 结论 0. 引言 Java是一门广泛应用的编程语言,具备强大的功能和灵活的语法。其中&#…

什么是跨链交易?

每个区块链都是一个完整的数字环境,其中所有应用程序都通过底层网络连接。但随着区块链网络的不断增加,以及区块链之间缺乏连接,人们对跨链基础设施的需求越来越高,以提供用户在多个区块链网络之间的互操作性。 没有跨链基础设施&…

使用自定义协议在浏览器打开电脑中的客户端

需求:点击web页面中开始会议按钮时需要拉起电脑中安装的会议客户端,如果电脑没有安装则跳转到客户端的下载页面,有则打开客户端 代码如下: protocolCheck.js function check(uri, failCb, successCb, unsupportedCb) {function failCallback() {failCb && failCb();}…

ctfshow吃瓜杯 web

文章目录 热身ATTup代码审计phar反序列化 shellmeshellme_Revenge 热身 <?php/* # -*- coding: utf-8 -*- # Author: h1xa # Date: 2020-09-16 11:25:09 # Last Modified by: h1xa # Last Modified time: 2020-09-18 16:53:59 # link: https://ctfer.com*/include(&qu…

对比AMD和英特尔显卡的区别

✨求关注~ &#x1f600;博客&#xff1a;www.protaos.com AMD和英特尔都是著名的半导体公司&#xff0c;它们都生产处理器和显卡。在显卡领域&#xff0c;AMD生产Radeon系列显卡&#xff0c;而英特尔则生产Intel HD Graphics和Intel Iris Graphics系列显卡。 使用群体对比&…