理解二义性:语言表达与数理逻辑中的歧义解析,

🏰 日博best365 📅 2025-07-10 07:41:57 👤 admin 👁️ 2041 👑 120
理解二义性:语言表达与数理逻辑中的歧义解析,

二义性

1 什么是二义性

1.1 举例

普通生活中的二义性,二义性的一个例子

地理教过,中国产煤最多的地方是辽宁省抚顺,产铁最多是辽宁省鞍山,所以抚顺被称为中国的“煤都”,鞍山称为“铁都”。

某次月考试题:中国的煤都是( ),中国的铁都是( )。

结果某张试卷上:中国的煤都是(黑的),中国的铁都是(硬的)。

考完还说:这次老师怎么出那么简单的题目?

数理逻辑中的二义性,如何理解二义性? - 知乎 (zhihu.com))

选令狐冲或任我行为武林盟主

这里的或不清除是排它或还是相容或?

排它或

如意思是武林盟主只能是令狐冲、任我行两者之一时,或为排斥或,此时选令狐冲为盟主句子为真、选任我行为盟主句子为真,但选两者一起为盟主为假

相容或

如果允许令狐冲、任我行同时为盟主,则为相容或,此时选令狐冲为盟主、选任我行为盟主,选两者一起为盟主都为真。

1.2 定义

上述二者都是二义性表达,在离散数学上来看都不具有唯一表示。在《编译原理(第二版)》中对二义性有这样的定义

一个文法可能有多棵语法分析树能够生成同一个给定的终结符号串,这样的文法称为具有二义性(ambiguous)。

注:ambiguous,在英文中是模糊的意思。

那么反言之,如果表达式不具有二义性则应为

一个文法如果有且只有一棵语法分析树可以生成给定的终结符号串,那么该文法不具有二义性。

有关语法分析树的内容参见语法分析树(先看例子再看定义)-CSDN博客

2 二义性语法分析树举例

如果将9-5+2的文法产生式改写为

string -> string + string | string - string |0|1|2|3|4|5|6|7|8|9

那么其对应的语法分析树可以为

或者

根据上述两棵语法分析树产生的结果分别式6和2,很明显,一条计算表达式是不可能产生2个不同的结果的。这证明该文法产生式是有问题的,因为它可以使用2棵语法分析树产生同一条终结符号串。

我们再来看看下面的文法产生式

list -> list + digit | list - digit | digit

digit -> 0|1|2|3|4|5|6|7|8|9

如果对9-5+2会不会使用像上面一样的2棵语法分析树生成终结符号串?

很明显不能,因为list不能直接为0|1|2|3|4|5|6|7|8|9,这就导致了list -> list -digit必须是list - 数字而不能是string - string。

3 总结

说话要说明白,意思表达要唯一,不要没事装X! 各位记住了,有人在你面前说话不清楚,讲东扯西,非奸即盗!

皇家推荐

去坏点(Defect Correct)
365bet现场走地盘

去坏点(Defect Correct)

📅 07-09 👁️ 6662
《原神》手游设置在哪
日博best365

《原神》手游设置在哪

📅 07-09 👁️ 3215
2025年十个仅凭身份证就可以贷款的平台分享发布时间:2024-12-12 11:57阅读:2553
驴子的繁殖,驴鞭大还是马鞭大
日博best365

驴子的繁殖,驴鞭大还是马鞭大

📅 07-09 👁️ 189
世界杯决赛双方首发阵容公布 梅西创造新纪录
365bet现场走地盘

世界杯决赛双方首发阵容公布 梅西创造新纪录

📅 07-08 👁️ 9560
王者荣耀黄忠和大乔哪个好 黄忠和大乔对比攻略
365bet现场走地盘

王者荣耀黄忠和大乔哪个好 黄忠和大乔对比攻略

📅 07-09 👁️ 2038