[英]Correctness of a grammar for propositional logic
我正在嘗試為命題邏輯編寫語法,以創建LL解析器(詞法分析)。
我嘗試了以下語法:
F = F and F
F = F or F
F = F => F
F = F <=> F
F = not F
F = (F)
D = a
但是我發現它是模棱兩可的。 我嘗試了以下方法消除歧義:
F = F and A
F = A
A = F or B
A = B
B = F => C
B = C
C = F <=> C
C=D
D = not F
D = (F)
D = a
這個語法正確嗎? 我能否成功消除歧義?
語法仍然模棱兩可。 這是非a和a的兩個推導:
推導1:
F
F and A
A and A
B and B
C and C
not F and a
not A and a
not B and a
not C and a
not D and a
not a and a
推導2:
F
A
B
C
D
not F
not F and A
not A and A
not B and B
not C and C
not D and D
not a and a
您需要在導數周圍加上括號,例如F =(F和A)
如果您不想使用括號,則另一種可能性是使用前綴表示法 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.