编译原理用哪种数据结构存储产生式表示法

关于操作系统,编译原理,数据结构解决办法 - C语言当前位置:& &&&关于操作系统,编译原理,数据结构解决办法关于操作系统,编译原理,数据结构解决办法&&网友分享于:&&浏览:22次关于操作系统,编译原理,数据结构刚刚学c
听说要学好编程必须先了解操作系统,编译原理,数据结构
所以想找这些方面的书来看
可是不知道有那些好的书
各位达人可以分享一下你们学c的经验吗
推荐一些好的经典的书
谢谢!!!------解决方案--------------------個人覺得暫時不用太多關注
先打好C的基礎吧。:)
------解决方案--------------------
找一本C语言描述的《数据结构》,解释春风无限恨
不过,貌似C语言描述的数据结构这本书是暴烂的(是不是我记错了?还是C++描述的那本暴烂?)
------解决方案--------------------这些都是基础,
教材都差不多 ...
------解决方案--------------------
你数据结构和C都没搞定,看操作系统能看懂吗?
------解决方案--------------------当然是坦尼博姆的《操作系统原理与实现》
------解决方案--------------------先搞定 c语言和数据结构
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有后使用快捷导航没有帐号?
只需一步,快速开始
查看: 8311|回复: 16
主题帖子精华1积分3563C币3131 枚在线时间432 小时注册时间最后登录性别男居住地广东省&深圳市
主题帖子C币3131 枚在线时间432 小时
1、短语即相对于同一个结点的叶子串,末端结点的叶子串即直接短语。短语是句型的,也是规则的。&&
2、若A?aAb|ε,则L(A)={ anbn|n≥0}&&
3、正规集即正规式所表达的各元素集合.若正规式是闭包,则正规集必含ε.&&
4、正规式变形规则: |视为+,o视为*,ε视为1,*视为幂n。&&
5、正规文法变正规式:&&
顺序规则&&A?xB,B?y A=xy&&
循环规则&&A?xA|y A=x*y&&
分支规则 A?x,A?y A=x|y&&
若正规式为A?x*y,则化为正规文法为A?xB,A?y,B?xB,B?y&&
6、确定的有穷自动机 DFA(状态集,输入字符集,转换集,初态,终态)&&
DFA最小化合并法:&&
○1先分成终态集和非终态集;&&
○2当输入同一符号后的目的态是已分开的,则源态也分开;&&
○3未分开的合并为一。&&
7、不确定的有穷自动机NFA,NFA中默认:状态到自身有ε弧.&&
NFA确定化方法:&&
○1定初态=ε-closure(初态),设定代号。&&
○2目的态=ε-closure(Move(原态),输入字符),原态从初态开始。&&
○3末态为Φ则不画.&&
○4终态为含原终态者全部集合.&&
8、First(α)=α能推出的右部字串首个终结符的集合,此终结符可为本身首终结符.&&
Follow(A)=与A同级之后的字符的开始符号集中的非ε元素.若有ε元素,则也包括A上级的follow集&&
Select(A?α)= α所展符号串之首字符的集合.&&
9、LL(1)文法的判别:& &
○1求能推出ε的非终结符:若右部为ε,则为是;以ε代其左部使其它的左部产生ε,则其它的也为是。&&
○2计算First集&&
○3计算Follow集&&
○4计算Select集&&
若对于同一个非终结符A有Select(A ?α)∩Select(A ?β)=Φ,(α、β不同时* —&ε)就是LL(1)文法.&&
10、若A?tB,则有f(A,t)=B,即状态A遇t字符转化为状态B。若Z?ε,则Z为终态。&&
11、提取左公共因子:若A?ab|ac,则化为A?a(b|c),以A’代括号项,变为A?A’,A’?b|c,使之不含括号。如果某产生式右部以非终结符开始,则以与该非终结符相同的左部的产生式代替之。将结果中的不可到达的符号删去。&&
12、消除直接左递归:如果S?Sa|b,则化为S?S’,S’?aS’|ε。且S=ba*.&&
13、构造预测分析表:列为非终结符,行为终结符。如果终结符为非终结符产生式的select集,则将该产生式右部在表中行列交叉处写上。&&
14、对符号串的分析过程:○1将#和开始符号入分析栈,○2栈顶符与剩余输入串首字符比较,○3不同则写出栈顶符产生式,其右部代之入栈。○4相同则匹配,栈顶符和输入符都删去。○5重复○2。&&
15、FIRSTVT(B)=B能推出的所有式子中最先出现的终结符。&&
LASTVT(B)=B能推出的所有式子中最后出现的终结符。&&
小写小于大写的FIRSTVT;大写LASTVT大于小写。谁先出现谁在左边。&&
16、算符优先表构造:计算每个非终结符的FIRSTVT和LASTVT集,然后找出大写和小写相邻的部分,确定小写与大写FIRSTVT和大写LASTVT与小写的优先关系,填表。&&
17、算符优先算法:始终保持栈顶符号的优先级是最高的。当遇到低者欲进时栈顶者出。&&
18、活前缀的求法:将各产生式在尾部依次编号,用开始符号推导出该符号串,则在最左处编号的左边的所有字符串都是活前缀。&&
方程法:利用式子LC(A)=LC(左部符){A前串}的并集,列出各产生式方程利用正规式代数化简,注意:若[A]=a+[A],则A=ab*,将所求结果右边连接上各产生式的右部即是活前缀。&&
19、LR(0)项目集规范族构造:从S’出发,若o后为大写,则包括其产生式,直到o后为小写为止。然后依各o后字符为分支,该字符认为是输入符,此符所在式成为新的状态之首式,然后规则重复S’。直到诸o皆到末尾。&&
20 、LR(0)分析表构造:actino列为行前产状态遇到列上的符号后转向表中的Sj,其中j为目的态。o在最末者遇任一符号,则填ri,i表示在文法中的产生式的编号。S’???o遇#,则填acc表示接受。&&
Goto列为行前状态遇列上的非终结符时转向的状态号。&&
LR(0)分析过程为:状态号和输入符各自入栈,&&
当栈顶状态遇到下一个输入符时转向的状态Si填入action列中,状态号i入栈,重复之。若可归约,则填ri,状态号出栈,栈中符改为归约的非终结 符,i为文法工产生式编号,相应的goto列中填入下一行当中的改后的非终结符与其相邻符号形成句柄又可归约时用的产生式所在的状态号。&&
21、SLR(1)的分析表与LR(0)的分析表构造法类似,仅在含有冲突的项目集中分别处理。即遇o后为终结符则转向另一状态,其它情况则归约以ri。&&
22、LR(1)分析:向前搜索符是指与左部同级(即为同在o在该左部符左之式右部)的其后字符串(包括其搜索符)的首字符。当状态遇到向前搜索符时才转向另一状态或归约。&&
23、LALR(1)分析:同心集为产生式相同,而搜索符不同的诸式。LALLR(1)即是将LR(1)中的同心集合并成一个项目集。&&
主题帖子精华0积分11C币1 枚在线时间0 小时注册时间最后登录性别保密
新人 Lv.0, 积分 11, 距离下一级还需 53 积分
主题帖子C币1 枚在线时间0 小时
这个贴要跟~~~~先做个记号!~
,,,,,/,/,/,/,/
楼主加油!!!!!11~
主题帖子精华0积分6C币6 枚在线时间0 小时注册时间最后登录性别保密
新人 Lv.0, 积分 6, 距离下一级还需 58 积分
主题帖子C币6 枚在线时间0 小时
高手能帮个忙吗?我在写c代码时要跳出很深的循环,发现用goto很好用。当某个条件成立时需要程序回到开始处执行,用goto也很好用,但是我同事说goto是c语言的早期语法,不知道现在的编译器会怎么处理,不安全。请问是这样吗?如果是这样的话,还有其他的方法解决我提出的功能吗?谢啦大侠!
主题帖子精华0积分13C币3 枚在线时间0 小时注册时间最后登录性别保密
新人 Lv.0, 积分 13, 距离下一级还需 51 积分
主题帖子C币3 枚在线时间0 小时
楼下的要时常想念楼上的
要不会下雨的哦
主题帖子精华0积分21C币11 枚在线时间0 小时注册时间最后登录性别保密
新人 Lv.0, 积分 21, 距离下一级还需 43 积分
主题帖子C币11 枚在线时间0 小时
路过.....帮顶...支持一下...............
主题帖子精华0积分21C币11 枚在线时间0 小时注册时间最后登录性别保密
新人 Lv.0, 积分 21, 距离下一级还需 43 积分
主题帖子C币11 枚在线时间0 小时
路过.....帮顶...支持一下...............
主题帖子精华0积分19C币9 枚在线时间0 小时注册时间最后登录性别保密
新人 Lv.0, 积分 19, 距离下一级还需 45 积分
主题帖子C币9 枚在线时间0 小时
主题帖子精华0积分36C币19 枚在线时间2 小时注册时间最后登录性别保密
新人 Lv.0, 积分 36, 距离下一级还需 28 积分
主题帖子C币19 枚在线时间2 小时
好东西啊.....
主题帖子精华0积分29C币26 枚在线时间3 小时注册时间最后登录性别保密
新人 Lv.0, 积分 29, 距离下一级还需 35 积分
主题帖子C币26 枚在线时间3 小时
C语言禁止使用goto语句作用到另一个函数
主题帖子精华0积分15C币11 枚在线时间0 小时注册时间最后登录性别男
新人 Lv.0, 积分 15, 距离下一级还需 49 积分
主题帖子C币11 枚在线时间0 小时
( 粤ICP备号-2 )1050人阅读
软考备战(31)
文法是一个四元组:G = {VT,VN,S,P}&&&& 其中VT是一个非空有限的符号集合,它的每个元素成为终结符号。VN也是一个非空有限的符号集合,它的每个元素称为非终结符号,并且VT∩VN=Φ。S∈VN,称为文法G的开始符号。P是一个非空有限集合,它的元素称为产生式。所谓产生式,其形式为α→β,α称为产生式的左部,β称为产生式的右部,符号“→”表示“定义为”,并且α、β∈(VT∪VN)*,α≠ε,即α、β是由终结符和非终结符组成的符号串。开始符S必须至少在某一产生式的左部出现一次。另外可以对形式α→β,α→γ的产生式缩写为α→β|γ,以方便书写。&&&& 注:一般以大写字母表示非终结符,以小写字母表示终结符。&&&& 著名语言学家Noam Chomsky(乔姆斯基)根据对产生式所施加的限制的不同,把文法分成四种类型,即0型、1型、2型和3型。&0型文法&&&& 设G={VT,VN,S,P},如果它的每个产生式α→β是这样一种结构:α∈(VT∪VN)* 且至少含有一个非终结符,而β∈(VT∪VN)*,则G是一个0型文法。0型文法也称短语文法。一个非常重要的理论结果是:0型文法的能力相当于图灵机(Turing)。或者说,任何0型文语言都是递归可枚举的,反之,递归可枚举集必定是一个0型语言。0型文法是这几类文法中限制最少的一个,所以一般见到的至少是0型文法。&1型文法&&& 1型文法也叫上下文有关文法,此文法对应于线性有界自动机。它是在0型文法的基础上每一个α→β,都有|β|&=|α|。这里的|β|表示的是β的长度。&&& 注意:虽然要求|β|&=|α|,但有一特例:α→ε也满足1型文法。&&& 如有A-&Ba则|β|=2,|α|=1符合1型文法要求。反之,如aA-&a,则不符合1型文法。&2型文法&&&& 2型文法也叫上下文无关文法,它对应于下推自动机。2型文法是在1型文法的基础上,再满足:每一个α→β都有α是非终结符。如A-&Ba,符合2型文法要求。&&& 如Ab-&Bab虽然符合1型文法要求,但不符合2型文法要求,因为其α=Ab,而Ab不是一个非终结符。&3型文法&&&& 3型文法也叫正规文法,它对应于有限状态自动机。它是在2型文法的基础上满足:A→α|αB(右线性)或A→α|Bα(左线性)。&&& 如有:A-&a,A-&aB,B-&a,B-&cB,则符合3型文法的要求。但如果推导为:A-&ab,A-&aB,B-&a,B-&cB或推导为:A-&a,A-&Ba,B-&a,B-&cB则不符合3型方法的要求了。具体的说,例子A-&ab,A-&aB,B-&a,B-&cB中的A-&ab不符合3型文法的定义,如果把后面的ab,改成“一个非终结符+一个终结符”的形式(即为aB)就对了。例子A-&a,A-&Ba,B-&a,B-&cB中如果把B-&cB改为B-&Bc的形式就对了,因为A→α|αB(右线性)和A→α|Bα(左线性)两套规则不能同时出现在一个语法中,只能完全满足其中的一个,才能算3型文法。&一些相关的定义:&&&& 1、当G为2型或3型文法时,命题“L(G)是空集、有限集或无限集”才是可判断的。&&& 2、当G1和G2都是3型文法时,命题“L(G1)=L(G2)”才是可判断的。&&& 3、最左/右推导:推导的每一步都对最左/右的非终结符使用推导公式&&& 4、若S可以推出mAn,而A可以推出a,则称a是非终结符号A的、句型mAn的短语。若存在A=&a,则为直接短语。&&& 5、一个句型的最左直接短语称为该句型的句柄&&& 6、素短语是一个短语,它至少包含一个终结符,并除自身外不包含其他的素短语。&*************************************************************************注:此类问题可以用语法树来判定,规则如下&1.每个句型对应一棵语法树2.每棵语法树的所有叶子结点从左到右排列构成一个句型3.每棵语法树的子树的叶子结点从左到右排列构成一个短语4.每棵语法树的简单子树(只有父子两层结点)的叶子结点从左到右排列构成一个简单(直接)短语5.每棵语法树的最左简单子树(只有父子两层结点)的叶子结点从左到右排列构成句柄6.素短语是至少包含一个终结符的短语,但它不能包含其它素短语7.最左推导:在每个推导过程中,总是首先考虑对当前最左边的非终结符号进行推导&&8.最右推导:在每个推导过程中,总是首先考虑对当前最右边的非终结符号进行推导&举例如下:&Vt={a,b,d,(,)}.Vn={S,T},S是开始符S -& a|b|(T)T -& TdS|S句型(Sd(T)db)是S的一个_____,其中___是句柄;____是最左素短语;____是该句型的直接短语,_____是短语。&&语法树如下:&&&&&&&&&&&&& S&&&&&&&&&&&&&& / | \&&&&&&&&&&&&& (& T& )&&&&&&&&&&&&& /& |& \&&&&&&&&&&&& T&& d&& S&&&&&&&&&& / | \&&&& |&&&&&&&&& T& d& S&&& b&&&&&&&&& |&&& /|\&&&&&&&&& S&& ( T )&&&1.首先在T-&S之后还有一个S-b的推导,所以该句型不是最左推导,只是一个简单的推导2.再看直接短语,有S,(T),b这3个,其余子树均大于或等于3层3.句柄为最左直接短语,即S4.素短语在短语中从左往右找,S不是排除,Sd(T)包含了(T),排除,最后剩下&(T)为最左素短语5.短语很多,直接从备选答案里找即可&鸣谢:&*************************************************************************-------------------------------------------------------------------------------&&有限状态自动机&&&& 注:说明一点,只要是有限状态自动机,则必定符合3型文法,且可用正则表达。&&&& 一个确定的有限状态自动机M(记做DFA)是一个五元组:M=(∑,Q,q0,F,δ)&&&& 其中:&&& (1) Q是一个有限状态合集&&& (2) ∑是一个字母集,其中的每个元素称为一个输入符号&&& (3) q0∈Q,称为初始状态&&& (4) F∈Q,称为终结状态集合&&& (5) δ是一个从Q×∑(Q与∑的笛卡尔积)到Q的单值映射:&&&&&&& δ(q,a)=q* (q,q*∈Q, a∈∑)&&&&&&& 以上式子表示当前状态为q,输入符号a时,自动机将转换到下一个状态q*,q*称为q的一个后继。&&&&&&&& 若Q={q1,q2,...,qn&},∑={a1,a2,...,an},则(δ(qi,aj))n×m是一个n行m列矩阵,称为DFA的状态转换矩阵,或称转换表。&&&&& 有限状态自动机可以形象地用状态转换图表示,举例如下:&&&& DFA M=({S,A,B,C,f},{1,0},S,{f&},δ)&&& 其中:δ(S,0)=B, δ(S,1)=A, δ(A,0)=f, δ(A,1)=C, δ(B,0)=C, δ(B,1)=f, δ(C,0)=f&, δ(C,1)=f&&& 则对应的状态转换图如下所示:&&&&&&&& 其中圈表示状态结点,双圈表示终结状态结点,而边表示状态的转换,代表映射。边上的符号表示此转换需要输入的符号,代表映射的输入。&&&& 对于∑上的任何字符串w∈∑*,若存在一条从初始结点到终态结点的路径,在这条路径上的所有边的符号连接称的符号串恰好是w,则w被DFA所识别(或接受、读出)。DFA所能识别的符号串的全体记为L(M),称为DFA所识别的语言。&&NFA介绍&&&& 之前介绍的是确定的有限自动机,即一个状态对于待定的输入字符有一个确定的后继状态。而当一个状态对于特定的输入字符有一个以上的后继状态时,我们称该有限自动机为非确定有限自动机(记做NFA),其形式定义也是M=(∑,Q,q0,F,δ),且前面的字符定义均和DFA相同,但是δ:Q×∑对应所有Q的任意子集。&&&& 在NFA中能够识别的路径与DFA中定义也相同。&&&& 对任何一个NFA,都存在一个DFA*使L(M*)=L(M),这时我们称M*与M等价。构造与M等价的M*的基本方法是让M*的状态对应于M的状态集合。即如果δ(q,a)={q1,q2,...,qn},则把{q1,q2,...,qn}看作M*的一个状态,即M*中的状态集合Q*的一个元素。正则表达式的转换&&&& DFA和NFA和正则式的转换比较模式化,看一个例子就明白了,具体的方法可以看下面这篇博客:正则表达式的转换&&&& DFA和NFA和正则式的转换比较模式化,看一个例子就明白了,具体的方法可以看下面这篇博客:程序编译的第一个阶段是**词法分析**,即把字节流识别为**记号**(token)流, 提供给下一步的**语法分析**过程。而识别记号的方法就是正则表达式的分析。 本文介绍利用**有限自动机**分析表达式的方法。概念记号 有字母表中的符号组成的有限长度的序列。记号s的长度记为|s|。 长度为0的记号称为空记号,记为ε。有限自动机(Finite State Automaton) 为研究某种计算过程而抽象出的计算模型。 拥有有限个状态,根据不同的输入每个状态可以迁移到其他的状态。非确定有限自动机(Nondeterministic Finite Automaton) 简称NFA,由以下元素组成:有限状态集合S;有限输入符号的字母表Σ;状态转移函数move;开始状态 s0;结束状态集合F,F ∈ S。 自动机初始状态为s0,逐一读入输入字符串中的每一个字母,根据当前状态、读入的字母, 由状态转移函数move控制进入下一个状态。如果输入字符串读入结束时自动机的状态属于结束状态集合F, 则说明该自动机接受该字符串,否则为不接受。确定有限自动机(Deterministic Finite Automaton) 简称DFA,是NFA的一种特例,有以下两条限制:对于空输入ε,状态不发生迁移;某个状态对于每一种输入最多只有一种状态转移。将正则表达式转换为NFA(Thompson构造法)算法算法1: 将正则表达式转换为NFA(Thompson构造法)输入: 字母表Σ上的正则表达式r输出: 能够接受L(r)的NFA&N方法: 首先将构成r的各个元素分解,对于每一个元素,按照下述规则1和规则2生成NFA。注意: 如果r中记号a出现了多次,那么对于a的每次出现都需要生成一个单独的NFA。 之后依照正则表达式r的文法规则,将生成的NFA按照下述规则3组合在一起。规则1: 对于空记号ε,生成下面的NFA。规则2: 对于Σ的字母表中的元素a,生成下面的NFA。规则3: 令正则表达式s和t的NFA分别为N(s)和N(t)。对于s|t,按照以下的方式生成NFA&N(s|t)。对于st,按照以下的方式生成NFA&N(st)。对于s*,按照以下的方式生成NFA&N(s*)。对于(s),使用s本身的NFA&N(s)。性质算法1生成的NFA能够正确地识别正则表达式,并且具有如下的性质:N(r)的状态数最多为r中出现的记号和运算符的个数的2倍。N(r)的开始状态和结束状态有且只有一个。N(r)的各个状态对于Σ中的一个符号,或者拥有一个状态迁移,或者拥有最多两个ε迁移。示例利用算法1,根据正则表达式&r=(a|b)*abb&可以生成以下的NFA。将NFA转化为DFA算法使用以下的算法可以将NFA转换成等价的DFA。算法2: 将NFA转化为DFA输入: NFA&N输出: 能够接受与N相同语言的DFA&D方法: 本算法生成D对应的状态迁移表Dtran。DFA的各个状态为NFA的状态集合, 对于每一个输入符号,D模拟N中可能的状态迁移。定义以下的操作。操作说明ε-closure(s)从NFA的状态s出发,仅通过ε迁移能够到达的NFA的状态集合ε-closure(T)从T中包含的某个NFA的状态s出发,仅通过ε迁移能够到达的NFA的状态集合move(T, a)从T中包含的某个NFA的状态s出发,通过输入符号a迁移能够到达的NFA的状态集合令 Dstates 中仅包含ε-closure(s), 并设置状态为未标记;while Dstates中包含未标记的状态T do
for 各输入记号a do
U := ε-closure(move(T, a));
if U不在Dstates中 then
将 U 追加到 Dstates 中,设置状态为未标记;
Dtrans[T, a] := U;
ε-closure(T)的计算方法如下:将T中的所有状态入栈;
设置ε-closure(T)的初始值为T;
while 栈非空 do
从栈顶取出元素t;
for 从t出发以ε为边能够到达的各个状态u do
if u不在ε-closure(T)中 then
将u追加到ε-closure(T)中;
示例将上面生成的NFA转化为DFA。最初,Dstates内仅有ε-closure(0) = A = {0, 1, 2, 4, 7}。然后对于状态A,对于输入记号a,计算&ε-closure(move(A, a))&=ε-closure(move({0, 1, 2, 4, 7}, a)) =&ε-closure({3, 8}) = {1, 2, 3, 4, 6, 7, 8}, 即 B={1, 2, 3, 4, 6, 7, 8},&Dtran[A, a]=B。 对于状态A,由输入记号b能够到达的仅有4-&5,因此 C =&ε-closure({5}) = {1, 2, 4, 5, 6, 7}, 即&Dtran[A, b] = C。以此类推,可得到以下的状态和Dtran。A = {0, 1, 2, 4, 7}
D = {1, 2, 4, 5, 6, 7, 9}
B = {1, 2, 3, 4, 6, 7, 8}
E = {1, 2, 4, 5, 6, 7, 10}
C = {1, 2, 4, 5, 6, 7}
状态&输入符号&abABCBBDCBCDBEEBC由此得出DFA如下图所示。NFA和DFA的效率给定正则表达式r和输入记号序列x,判断r是否能够接受x。使用NFA的情况下, 由正则表达式生成NFA的时间复杂度为O(|r|),另外由于NFA的状态数最多为r的2倍,因此空间复杂度为O(|r|)。 由NFA判断是否接受x时,时间复杂度为O(|r|×|x|)。因此,总体上处理时间与 r、x的长度之积成比例。 这种处理方法在x不是很长时十分有效。如果使用DFA,由于利用DFA判断是否接受x与状态数无关,因此时间复杂度为O(|x|)。但是DFA的状态数 与正则表达式的长度呈指数关系。例如,正则表达式&(a|b)*a(a|b)(a|b)...(a|b),尾部有 n-1 个&(a-b)的话, DFA最小状态数也会超过 2SUP{n}正则表达式的转换&&&& DFA和NFA和正则式的转换比较模式化,看一个例子就明白了,具体的方法可以看下面这篇博客:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2038361次
积分:29195
积分:29195
排名:第147名
原创:849篇
转载:471篇
评论:246条
文章:11篇
阅读:22775
文章:27篇
阅读:37133
文章:18篇
阅读:35843
阅读:16120
文章:125篇
阅读:140425
文章:43篇
阅读:119213
文章:78篇
阅读:150569
|LINQ&MVC|
Java HTML5 |
DevExpress|
(1)(3)(2)(19)(22)(12)(19)(11)(24)(11)(1)(19)(2)(16)(5)(10)(4)(16)(11)(22)(5)(10)(9)(8)(9)(2)(5)(5)(6)(19)(14)(3)(4)(8)(7)(2)(3)(4)(8)(9)(8)(3)(1)(6)(4)(14)(7)(13)(1)(16)(9)(7)(6)(25)(19)(27)(12)(13)(10)(23)(83)(12)(17)(24)(16)(15)(7)(14)(8)(4)(5)(10)(9)(15)(14)(232)(16)(24)(5)(10)(9)(8)(10)(11)(12)(4)(7)(4)(6)(4)(4)(3)(1)(9)(5)(4)(16)(26)(39)(3)(6)}

我要回帖

更多关于 产生式表示法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信