发表日期: 2021-04-20 14:19:50 浏览次数:132
沧县网站建设【沧县网络公司】沧县做网站、沧县微信公众号开发、沧县网站设计、沧县小程序制作
沧县,隶属于河北省沧州市,位于位于河北省东南部、冀中平原东部。全县总面积15.33万公顷。 [1] 沧县属暖温带半湿润大陆性季风气候, [2] 县辖4个镇、15个乡, [3] 县政府驻沧州市新华区。 [4] 截至2018年末,沧县总人口740889人。 [2]
北魏熙平二年(517年),分冀瀛二州之地置沧州。民国二年(1913年)沧州改名沧县,属直隶省渤海道。1983年11月,沧县属沧州市辖。 [2] 沧县境内京沪铁路、京福公路纵贯南北,朔黄铁路由沧县腹地东西穿过。 [5] 2011年11月,沧县被文化部命名为“中国民间文化艺术之乡”。 [6] 县境内有铁狮子、杜林登瀛桥、纪晓岚墓等旅游景点。 [7-8]
2018年,沧县地区生产总值完成207.4亿元,增长8%。其中:第一产业22.4亿元,增长11.3%;第二产业78.9亿元,增长6%;第三产业106.1亿元,增长9.2%。 [9] 2020年9月,入选河北省食品产业强县(市、区)(培育型)名单。
考虑表达式1+2*3
。在图11-21a中,我们看到表达式是从左起分组的,这是不对的,而图11-21b所示的则是正确的从右边起的分组,这样乘法的操作数才在加法之前分组。前一种分组会得出不正确的值9,而后面的分组则会产生合乎规则的值7。
图 11-21 表示表达式1+2*3
的两棵分析树
就像表示平衡括号串的文法(11.2)可以被视作文法(11.1)的无二义版本那样,也可以为示例11.5中的表达式文法构建一个无二义版本。“窍门”就是定义有着如下直觉含义的3个语法分类。
1. <因式>生成了不能被“提取出”的表达式,也就是说,因式要么是单个操作数,要么是加了括号的表达式。
2. <项>生成了因式的积或商。单个因式是项,因此一列由*或/运算符分隔的因式也是项。12
和12/3
<因式>*45
都是项。
3. <表达式>生成了一项或多项的和或差。单个项就是个表达式,因此一列由+或-运算符分隔的项也是表达式。12
、12/3*45
和12+3*45-6
都是表达式。
图11-22就是表示表达式、项和因式间关系的文法。我们用简写<E>、<T>和<F>分别代表<因式>、<项>和<表达式>。
(1) <E> → <E> + <T> | <E> - <T> | <T>
(2) <T> → <T> * <F> | <T>/<F> | <F>
(3) <F> → (<E>) | <N>
(4) <N> → <N><D> | <D>
(5) <D> → 0 | 1 | … | 9
图 11-22 表示算术表达式的无二义文法
例如,第(1)行的3个产生式定义了表达式要么是较小的表达式后面跟上+或-以及另一项,要么是单独的项。如果将这些概念融为一体,那么该产生式是说,每个表达式都是项后面跟上0个或更多由一个+或-以及一项构成的配对。同样,第(2)行表示项是由较小的项后面跟上*或/以及因式构成的。也就是说,项是由因式后面跟上0个或更多由一个*或/加上一个因式组成的配对。第(3)行说的是因式或者是数字,或者是由括号包围的表达式。而第(4)行和第(5)行则像之前所做的那样定义了数字和数码。
之所以在第(1)行和第(2)行中使用了诸如
<E>→<E>+<T>
这样的产生式,而没有使用看似与之等价的<E>→<T>+<E>,就是为了强制这些项从左起分组。因此,我们看到像1-2+3
这样的表达式会被正确地分组为(1-2)+3
。同样,像1/2*3
这样的项也能被正确地分组为(1/2)*3
。图11-23展示了用图11-22中的文法表示表达式1-2+3
的唯一分析树。请注意,1-2
必须首先被组合为表达式。如果像图11-20b中那样先组成2+3
,是没办法用图11-22所示的文法将1-
附加到该表达式上的。
表达式、项和因式之间的区别使得处于不同优先级的运算符能被正确分组。例如,表达式1+2*3
对应的分析树只有图11-24所示的那棵,它像图11-21b所示的树那样先组合了子表达式2*3
,而不是像图11-21a所示的错误的树那样首先组合1+2
。
就像之前提到的平衡括号串问题那样,我们没有证明图11-22所示的文法是无二义的。习题中包含了更多例子,应该有助于说服读者相信该文法不仅是无二义的,而且为各个表达式给出了正确的组合方式。我们还表述了该文法的思路如何扩展到更全面的表达式家族。
图 11-23 用图11-22中的无二义文法表示表达式1-2+3
的分析树
图 11-24 用图11-22中的无二义文法表示表达式1+2*3
的分析树
1. 用图11-22所示的文法,为下列各表达式给出唯一的分析树。
(a) (1+2)/3
(b) 1*2-3
(c) (1+2)*(3+4)
2. * 图11-22所示文法的表达式有两级优先级,+
和-
在第一级,而*
和/
在更高的第二级。一般而言,我们可以利用k+1个语法分类处理具有k 个优先级的表达式。修改图11-22中的文法,使其包含乘方运算符^,它的优先级比*
和/
更高。作为提示,大家要定义是操作数或带括号表达式的要素,并重新把因式定义为一个或多个要素由乘方运算符连接而成。请注意,乘方的组合是从右起而不是从左起的,也就是说,2^3^4
表示的是2^(3^4)
,而不是(2^3)^4
。我们该如何确保在要素中是从右起进行组合的?
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: https://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878