标签:hellip 运算 符号 集合运算 列表 family aaa 语言 包括
1.理解符号串与集合运算。
L={A,B, … ,Z,a,b, … ,z}
D={0,1, … ,9}
说明下表示的含义:
LUD表示全部字母和数字的集合。
LD 表示由一个字母后跟一个数字组成的所有符号串集合。
L4 表示由4个字母组成的所有符号串的集合。
L* 表示由字母组成的所有符号串包括空符号串的集合。
D+ 表示以字母开头,后跟字母、数字组成的所有符号串集合。
L(LUD)* 表示由一个或若干个数字组成的所有符号串集合。
2.文法G(Z):Z->aZb|ab定义的是什么样的语言?
Z->aZb
Z->ab
Z->aZb->aaZbb->aaaZbbb->aaaaZbbbb->a...Zb...->a...b...
由n个a后跟n个b组成的所有符号串集合。
3.写出教材22页例2.2中标识符的文法四元组形式(VN,NT,P,S)。
设I为标识符,L为字母,D为数字,依题意得
VN={I,L,D} VT={a,b,c,...,x,y,z,0,1,...,9}
P={ <I>-><L>
<I>-><I><L>
<I>-><I><D>
<L>->a
<L>->b
...
<L>->z
<D>->0
<D>->1
...
<D>->9 }
S=<I>
4.写出下列表达式的最左推导、最右推导。
G(E):
E=> E + T | T
T=>T * F | F
F=>(E)| i
注意观察最左和最右推导过程的不同。
(1)最左推导:
E => E+T => T+T => T*F+T => F*F+T => i*F+T => i*i+T => i*i+F => i*i+i
最右推导:
E => E + T => E+F => E+i => T+i => T*F+i => T*i+i => F*i+i => i*i+i
(2)最左推导:
E => E+T => T+T => F+T => i+T => i+T*F => i+F*F => i+i*F => i+i*i
最右推导:
E => E + T => E+T*F => E+T*i => E+F*i => E+i*i => T+i*i => F+i*i => i+i*i
(3)最左推导:
E=> E+T => T+T => F+T => i+T => i+F => i+(E) => i+(E+T) => i+(T+T) => i+(F+T) => i+(i+T) => i+(i+F) => i+(i+i)
最右推导:
E => E+T => E+F => E+(E) => E+(E+T) => E+(E+F) => E+(E+i) => E+(T+i) => E+(F+i) => E+(i+i) => T+(i+i) => F+(i+i) =>i+(i+i)
标签:hellip 运算 符号 集合运算 列表 family aaa 语言 包括
原文地址:https://www.cnblogs.com/MRJ1/p/11515319.html