最左推导与最右推导

推导(derivation):从开始符号出发,每个重写步骤把一个非终结符号替换为它的某个产生式体。

最左推导(leftmost derivation):总是选择每个句型的最左非终结符号。

最右推导(rightmost derivation):总是选择每个句型的最右非终结符号。

看下面的产生式

E ::= E "+" E | E "*" E | "-" E | "(" E ")" | id

再看下面的串

-(id + id)

最左推导步骤

E => - E => - ( E ) => - ( E + E ) => - ( id + E ) => - ( id + id )

最右推导步骤

E => - E => - ( E ) => - ( E + E ) => - ( E + id ) => - ( id + id )

时间: 2024-12-27 10:35:33

最左推导与最右推导的相关文章

part4-2 流程控制二(循环结构,while、for循环,列表推导式、生成器推导式,常用工具函数,控制循环结构,4个简单实例)

循环语句在循环条件满足时,可反复执行某一段代码,这段被重复执行的代码称为循环体.在循环体中,需要在合适的时候把循环条件设置为假,从而结束循环:否则循环一直执行下去形成死循环.循环语句通常包含如下4个部分.(1).初始化语句(init_statements):在循环开始前执行,有一条或多条语句,用于完成一些起初始化工作.(2).循环条件(test_expression):一个布尔表达式,决定是否执行循环体.(3).循环体(body_statements):循环的主体,根据循环条件是否允许,这个代码

编译原理:直接推导、间接推导、n次推导、规范推导

直接推导,直接运用规则进行的推导 间接推导.n次推导 有两种符号 第一种是,表示多次运用直接推导 第二种是,表示零次或多次运用直接推导 n表示中间的步骤数 规范推导 其实就是最右推导 原文地址:https://www.cnblogs.com/Asterism12/p/11493246.html

span文字在左背景图片在右

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style type="text/css">span {     background-image:url(http://a3.qpic.cn/psb?/V11OXL2y3vDNOK/BLjgWL6kfs*3sZIUVjubWPHQWxn

python的各种推导式(列表推导式、字典推导式、集合推导式)

推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(list)推导式 字典(dict)推导式 集合(set)推导式 一.列表推导式 1.使用[]生成list 基本格式 variable = [out_exp_res for out_exp in input_list if out_exp == 2] out_exp_res: 列表生成元素表达式,可以是有返

荐书一本-----《天才在左,疯子在右》

近来无意在网上找到一本书,名字叫<天才在左.疯子在右>,是一本精神病人访谈手记,花了一个礼拜的时候读完,感觉非常不错,向CSDN的朋友推荐一下. 在读之前你需要有心理准备,它很可能会颠覆你的世界观,撼动你的价值观,改变你的人生观.以前在网上流行一句话,叫2B青年欢乐多.精神美人思维广,大多数人都把注意力集中在前一句,是调侃不靠谱青年的一种笑谈,读完这本书后,发现后半句其实非常精辟.有一部分精神病人,他们的逻辑非常严密,思考的角度和维度远超常人,他们所关注的东西的层次更是庸庸碌碌的众生所无法企及

2015年第15本:天才在左,疯子在右

<天才在左,疯子在右>主要是在往返烟台的路上看完的,这本书很可能是作者根据大量哲学.宗教.量子物理等等的阅读,借助于精神病人的角度,拼出了一本书.由于描写精神病方面的书很少,所以常人肯定都有强烈的好奇心来看看精神病的世界.书名与天才没有半毛关系,只是为了经济利益吸引人眼球而已.有些故事(四维虫子.女人的星球.苹果的味道.时间的尽头.迷失的旅行者)视角很独特,里面的话语不能太较真儿,权当作一种消遣而已,否则,心理素质不强的天才很快就会加入疯子的行列. 像“整个蚁群才是完整的生命!松散生命”这篇,

推荐《天才在左,疯子在右》

这次推荐一本<天才在左,疯子在右> , 这本书的作者高铭, 据说花了4年多的时间,深入医院精神科.公安部等诸多神秘机构,得以和数百名“非常态人类”直接接触,最终产生了这本书 . 不知道是谁说过,所谓正常社会一直在对异常人群行驶一种权力——将他们视为异端,将他们隔离. 读完这本书,你一定会被震动 . 假若你是所谓的正常人.你或许会和我一样,对其中一些特殊人物隐隐有一种崇拜感 ,或者对精神病人这一群体有着不一样的理解. 我想到了梵高 ,他在我们眼里到底是天才,还是疯子?或是他就是他,只不过是我们给

程序员生存定律--管理向左,技术向右

程序员生存定律这系列的目录在这里:程序员生存定律--目录 喜欢从头瞄的,可以移步. ------------------------------------------------------------------------------- 一个程序员在考虑增值时无法回避的一个根本问题是到底是做技术还是做管理.当然也有些职位会介于两者之间比如架构师,但我们暂时不去做细分,而是用简单的二分法. 这种基本方向上的选择对后续很多细节上的取舍有关键影响,所以在考虑其他之前,最好先回答一下这个问题.这就

oracle开发系列(五) 取左表不在右表记录的3种方法-引申到db2

引: 我们在做数据库开发用 pl sql 加工数据时,经常会遇到取a表不在b表中的记录 或者 左表不在右表中的记录 的情况,所以特地对此做个简单的总结,以便以后用到回顾. 解决: 取a表某字段不在b表 我们自然的逻辑会想到用 a not in b ,这是第一种方法 1 not in 如下图 ,数据库为不跑业务的测试数据库,两张表的数据量一样, 用not in 可以找出a表中prd_inst_id不在t表中的记录 如下图,为生产库的表  l 和t表数据量相同,数据量900w左右 2 not exs