发表日期: 2021-04-17 13:41:05 浏览次数:86
武安网站建设【武安网络公司】武安做网站、武安微信公众号开发、武安网站设计、武安小程序制作
武安市,河北省直辖,邯郸市代管,位于河北省南部、太行山东麓,晋、冀二省交界地带,处在京津冀、中原经济区两大国家战略“交汇叠加区”,距晋冀鲁豫四个省会城市均在200公里左右。武安市是一座以工业为主的新兴城市,矿产资源以铁、煤矿为主,是全国58个重点产煤县(市)和全国四大富铁矿基地之一,总面积1806平方千米,
武安市下辖13个镇,9个乡,总人口84万(2021年 [36] )是著名的地方戏曲之乡、古代冶炼之乡、中国小米之乡、全国百强市。2006年,联合国教科文组织授予武安“千年古县”称号。 [2]
2019年,武安市地区生产总值638亿元,财政总收入105亿元,县域经济综合实力位居全国百强第83位。
2021年3月,被授予 2020年河北省村庄清洁行动先进县(市、区)。
所有的分析表都可以被实质上的同一程序用作数据。这一驱动器程序具有同时存放着终结符和文法分类的文法符号栈。该栈可以被视作剩下的输入必须满足的目标,这些目标一定是按照从栈顶到栈底的次序得到满足的。
1. 通过确定某终结符是输入的前瞻符号,可以满足终结符的目标。也就是说,只要终结符x
在栈顶位置,就要检查前瞻符号是否为x
,如果是,就从栈中弹出x
,并读取要成为新前瞻符号的下一个输入终结符。
2. 通过查询分析表中行对应<S>且列对应前瞻符号的项,可以满足语法分类目标<S>。
(a) 如果相应的项为空,那么就不能为该输入得出分析树,这样驱动器程序就失败了。
(b) 如果相应的项含有产生式i,就要把<S>从栈顶位置弹出,并把产生式i 右部中的各个符号压入栈中。右部中的符号是按照从右至左的顺序被压入栈的,这样一来,右部的第一个符号最终就会处在栈顶的位置,而第二个符号就紧邻其下,以此类推。作为特例,如果右部为ε,就只要把<S>从栈中弹出即可。
假设想确定字符串s是否在L(<S>)中。在这种情况下,要用输入中的s ENDM
字符串3启动驱动器,并读取第一个终结符作为前瞻符号。活动记录栈一开始只由语法分类<S>组成。
3有时候端记号ENDM
符号也是必要的,它可以作为告知我们已经到达输入末端的前瞻符号,其他时候它只是用来捕捉错误。例如,在图11-31中ENDM
是必要的,因为我们在平衡括号串之后总有更多的括号,但在图11-32中它不是必要的,对应ENDM
的那列中没有任何项就证明了一切。
我们对输入{w c s ; s ; }ENDM
使用图11-32中的分析表。图11-34展示了表驱动分析器所执行的处理步骤。表中所示栈的内容是按照栈顶内容位于最左侧的方式排列的,这样一来,当我们把栈顶位置的语法分类替换为它某一产生式的右部时,该右部就会出现在栈顶的位置,其中的符号都是按照正常次序排列。
| 栈 | 前瞻符号 | 剩余输入 |
---|---|---|---|
1) | <S> | { |
|
2) | {<T> | { |
|
3) | <T> | w |
|
4) | <S><T> | w |
|
5) | wc<S><T> | w |
|
6) | c<S><T> | c |
|
7) | <S><T> | s |
|
8) | s;<T> | s |
|
9) | ;<T> | ; |
|
10) | <T> | s |
|
11) | <S><T> | s |
|
12) | s;<T> | s |
|
13) | ;<T> | ; |
|
14) | <T> | } |
|
15) | } | } |
|
16) | ε | ENDM | ε |
图 11-34 使用图11-32所示表格的表驱动分析器的处理步骤
图11-34中的第(1)行展示了初始情况。因为要测试字符串{wcs;s;}
是否属于语法分类<S>,所以一开始活动记录栈中只存放着<S>。给定字符串的第一个符号{
是前瞻符号,而且字符串的其余部分跟上ENDM
就构成了剩下的输入。
如果查看图11-32中对应语法分类<S>和前瞻符号{
的项,就知道必须按照产生式(2)展开<S>。该产生式的右部是{
<T>,而且在我们到达第(2)行时,可以看到这两个文法符号已经替换了栈顶的<S>。
现在栈顶位置是终结符{
。因此要将其与前瞻符号加以比较。因为栈顶和前瞻符号相符,所以我们要弹出栈顶内容,并将输入游标前移到下一个输入符号w
,这样它就成了新的前瞻符号。这些改变反映在第(3)行中。
接下来,<T>位于栈顶而且w
是前瞻符号,查阅图11-32可知恰当的行动是用产生式(4)展开。因此将<T>从栈中弹出,并压入<S><T>,如第(4)行中所见。同样,现在处于栈顶的<S>会被产生式(1)的右部替代,因为这是由图11-32中对应<s>的行与对应前瞻符号w的列决定的,这一改变反映在第(5)行中。在第(5)行和第(6)行之后,栈顶的终结符会与当前的前瞻符号相比较,因为每一对都能匹配,所以它们被弹出,而且输入游标前移。
这里要遵照第(7)到第(16)行,核实每一步都是根据分析表可以采取的合适行为。因为在各终结符到达栈顶时会与当时的当前前瞻符号匹配,所以我们不会失败。因此,字符串{wcs;s;}
在语法分类<S>中,也就是说,它是语句。
备案号: 苏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