词法分析器使用以下模式识别字母表 {a,b,c} 上的三个标记 T 1 、T 2和 T 3 。
T 1 : a?(b∣c)*a
T 2 : b?(a∣c)*b
T 3 : c?(b∣a)*c
请注意“x?”表示符号 x 出现 0 或 1 次。另请注意,分析器输出与最长可能前缀匹配的标记。
如果字符串bbaacabc被分析器处理,那么下面哪一个是它输出的标记序列?
(A) T 1 T 2 T 3
(B) T 1 T 1 T 3
(C) T 2 T 1 T 3
(D) T 3 T 3答案: (D)
解释:符号 x 出现 0 或 1 次。 T1 : (b+c)* a + a(b+c)* a
T2 : (a+c)* b + b(a+c)* b
T3 : (b+a)* c + c(b+a)* c
给定字符串:bbaacabc
最长匹配前缀是“ bbaac ” (可以由T3生成)
剩余部分(前缀后)“abc” (可由T3生成)
所以,答案是T 3 T 3
这个问题的测验