发表日期: 2021-04-17 13:59:38 浏览次数:147
武安微信公众号开发【武安网络推广】武安建站、武安网站维护、武安网页制作、武安微信小程序代运营公司
武安市,河北省直辖,邯郸市代管,位于河北省南部、太行山东麓,晋、冀二省交界地带,处在京津冀、中原经济区两大国家战略“交汇叠加区”,距晋冀鲁豫四个省会城市均在200公里左右。武安市是一座以工业为主的新兴城市,矿产资源以铁、煤矿为主,是全国58个重点产煤县(市)和全国四大富铁矿基地之一,总面积1806平方千米,
武安市下辖13个镇,9个乡,总人口84万(2021年 [36] )是著名的地方戏曲之乡、古代冶炼之乡、中国小米之乡、全国百强市。2006年,联合国教科文组织授予武安“千年古县”称号。 [2]
2019年,武安市地区生产总值638亿元,财政总收入105亿元,县域经济综合实力位居全国百强第83位。
2021年3月,被授予 2020年河北省村庄清洁行动先进县(市、区)。
1. 为下列输入字符串模拟使用图11-32所示分析表的表驱动分析器。
(a) {s;}
(b) wc{s;s;}
(c) {{s;s;}s;}
(d) {s;s}
2. 对习题1中取得成功的那些分析,给出分析过程中构建分析树的过程。
3. 利用图11-31中的分析表,对11.6节习题1中的输入串模拟表驱动分析器。
4. 给出习题3的分析过程中分析树的构建情况。
5. * 如下文法
(a) <语句> → if
(条件)
(b) <语句> → if
(条件)<语句>
(c) <语句> → 简单语句
表示C语言中的选择语句。它是没法用递归下降分析器和表驱动分析器进行分析的,因为如果有前瞻符号if
,就没办法确定要使用前两个产生式中的哪一个。为该文法提取左因子,使它可以用11.6节和本节介绍的算法分析。提示:在提取左因子时,就得到了具有两个产生式的新语法分类。一个的右部为ε,而另一个的右部则以else
开头。显然,当else
作为前瞻符号时,要选择第二个产生式。其他前瞻符号都不能让我们选择这一产生式。不过,如果看看有哪些前瞻符号让我们用右部为ε的产生式展开,就会发现这些前瞻符号中也有else
。不过,也可以强行规定,在前瞻符号为else
时决不展开为ε。该选择对应着“else
匹配之前未匹配的then
”这一规则,因此这是“正确的”选择。你可能想找到一个在前瞻符号为else
且展开为ε时还能让分析器完成分析的例子。不过你会发现,在任意一次这样的分析中,构建的分析树总会为else
匹配“错误的”then
。
6. ** 如下文法
<结构体>→struct{
<字段列>
<字段列>→类型 字段名;<字段列>
<字段列>→ε
需要一些修改才可以用本节和11.6节介绍的方法进行分析。重写该文法,使其可由递归下降和表驱动的方法分析,并构建相应的分析表。
文法和正则表达式都是用于描述语言的表示法。我们在第10章中已经看到,正则表达式表示法与确定自动机和非确定自动机表示法是等价的,因为可由这3种表示法描述的语言集合是相同的。文法是否有可能是另一种与我们已经见过的这些表示法都等价的表示法?
答案是“不可能”,因为文法要比我们在第10章中介绍的正则表达式之类的表示法更强大。这里要分两步展现文法的表现力。首先,我们将证实每种能用正则表达式描述的语言也都能用文法来描述。接着我们会给出一种可以由文法描述,但不能用正则表达式描述的语言。
这种模拟背后的直觉思路就是,正则表达式中的3种运算符(取并、串接和闭包)分别可以用一个或两个产生式“模拟”。正式地讲,可以通过对正则表达式R 中出现的运算符的数量n 进行完全归纳,证明如下命题。
命题。对每个正则表达式R 来说,都存在某一文法,满足对文法中的语法分类<S>而言,有L(<S>)=L<R>
也就是说,由正则表达式表示的语言也是语法分类<S>的语言。
依据。依据情况是n=0,也就是正则表达式R 中未出现运算符的情况。R 要么是单个符号,比方说x
,要么是ε 或∅。我们创建一个新的语法分类<S>。在R=x
的第一种情况下,还要创建产生式<S>→x
。因此,L(<S>)={x},而且L<R>也是相同的单字符串语言。如果R是ε,同样可以为<S>创建产生式<S>→ε,而如果R=∅,则根本不用为<S>创建产生式。这样当R 为ε 时,L(<S>)是{ε };而当R 是∅时,L(<S>)是∅。
归纳。假定归纳假设对具有不超过n 个运算符的正则表达式成立。设R 是其中出现n+1个运算符的正则表达式。总共有3种情况,具体取决于构建R 所应用的最后一个运算符是取并、串接还是闭包。
1. R=R1|R2。因为这里有一个运算符(即取并运算符|)既不属于R1也不属于R2,所以可知R1和R2中运算符的个数都不可能超过n。因此,归纳假设适用于R1和R2,而且我们可以找到具有语法分类<S1>的文法G1,以及具有语法分类<S2>的文法G2,分别满足L(<S1>)=L(R1)和L(<S2>)=L(R2)。为了避免出现两个文法相互融合的巧合出现,我们可以假设,在构造新文法的过程中,所创建的语法分类的名称一直都不会在另一个文法中出现。这样一来,G1和G2中就不会有相同的语法分类。创建一个新的语法分类<S>,它既未出现在G1和G2中,也没有出现在为其他正则表达式构建的其他文法中。除了对应G1和G2的两个产生式外,我们还要添加两个产生式
备案号: 苏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