编译原理文法和语言答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习1. 文法和语言
1. 文法: Z → U0 | V1 U → Z1 | 1 V → Z0 | 0
(1) 请写出全部由此文法描述的只含有四个符号的句子. (2) 该文法是 Chomsky 几型文法? Answer :
(1) 1010, 0110, 1001, 0101 (2) 3型文法
2. 给定前缀表示的表达式文法 G : (1) E → -EE (2) E → -E (3) E → a (4) E → b (5) E → c
试问 --a-bc 是否 L(G) 的句子?若是,请给出该句子所有可能的分析树;若不是,请说明理由.
Answer : --a-bc 是L(G)的句子。所有可能的分析树如下。 (1) (2) (3)
E -E E
-E c
-E b E -E
E -E -E E
E
--
E E
c
-E E
3. 考虑文法:
S → ( L ) | a L → L, S | S
写出句型 ( a , ( a , a ) ) 的最左推导和最右推导。 Answer :
(1) 最左推导:
S lm
=>(L)lm
=>(L,S)lm
=>(S,S)lm
=>(a,S)lm
=>(a,(L))lm
=>(a,(L,S))lm
=>(a,(S,S))lm
=>(a,(a,S))lm
=>(a,(a,a))
(2) 最右推导:
S rm
=>(L)rm
=>(L,S)rm
=>(L,(L))rm
=>(L,(L,S))rm
=>(L,(L,a))rm
=>(L,(S,a))rm
=>(L,(a,a))rm
=>(S,(a,a))rm
=>(a,(a,a))
4. 考虑文法:
S → aSbS | bSaS |ε
写出句型 abab 的两个最左推导。 Answer :
(1) S lm
=>aSbS lm
=> abSaSbS lm
=> abaSbS lm
=> ababS lm
=> abab
(2) S lm
=>aSbS lm
=> abS lm
=> abaSbS lm
=> ababS lm
=> abab
5. 文法 G : P → PaP | PbP | cP | Pe | f
证明文法 G 是二义文法. ** 通过证明句型 f b f b f 存在两棵分析树. Answer : 因为存在两个分析树,所以是二义文法。
两个分析树如下:(1) (2)
P P b
P P b
P f
f
f
P P b P P b
P f
f
f
6. 文法: S → ( L ) | a L → L , S | S
分析句型: ( L , a , S ), 求:短语、直接短语、句柄、素短语、最左素短语. Answer :
S (L )L ,S
L
,
S a
–句型:( L , a , S )
–短语:( L , a , S )、L , a , S 、
L , a 、a
–直接短语:a –句柄:a –素短语:a
–最左素短语:a
7. 文法:
S → a │^│( T ) T → T , S │S
分析句型: ( T , ( ^ , a ) ), 求:短语、直接短语、句柄、素短语、最左素短语. Answer :
S (T )T
,
S
(T )a
T ,S ^
S
–句型:( T , ( ^ , a ) )
–短语:( T , ( ^ , a ) )、^ , a T , ( ^ , a )、( ^ , a )、^、a –直接短语:^ 、a –句柄:^–素短语:^ 、a
–最左素短语:^