分类：教育/科学-职业教育
问题：编译考题3问题：下面是一个描述命题演算公式的文法：S→SandS 
问题：下面是一个描述命题演算公式的文法：
S → S and S | S or S | not S | p | q | (S) 
为它写一个等价的非二义文法。
回答：证明：只要构造文法的一个句子，该句子对应两棵分析树，或者存在两种不同的最右推导，就能证明这个文法是二义的。例如，p or p and p 存在两种不同的最右推导如下：

S =>S and S
  =>S and p
  =>S or S and p
  =>S or p and p 
  =>p or p and p 
 
S =>S or S  
  =>S or S and S 
  =>S or p and p
  =>S or p and p
  =>p or p and p