生成真值表-LEX&YACC版

1478 篇文章

已下架不支持订阅

第1关:创建语义对象

任务描述
本关任务:完成命题逻辑合式公式语法元素对应语义对象的建模。

本实训按照如下的语法定义命题逻辑合式公式:

FOL BNF
FORMULA ::= PROPOSITION
| ‘(’ FORMULA CONNECTIVE FORMULA ‘)’
| ‘not’ FORMULA
| ‘(’ FORMULA ‘)’
| ‘T’
| ‘F’
CONNECTIVE ::= ‘implies’ | ‘equiv’ | ‘and’ | ‘or’
PROPOSITION ::= [A-Z]-[T, F]\w
根据此处定义的语法,非、合取、析取、蕴含、等值分别用not、and、or、implies和equiv表示。命题常量为大写英文字母T与F,命题词为除T与F之外的24个大写英文字母。

为生成给定命题逻辑公式的真值表,需在基于上述语法的抽象语法树上应用命题逻辑联结词的语义规则,因此,首先需为上述语法元素建立对应的Python类。

共有7个语法元素需建立Python类:命题常量、命题词、非、合取、析取、蕴含、等值。每个类的属性及方法描述如下:

Proposition类:对应命题词,有两个属性name和value,初始时name为命题词的名字,value为None。
BoolConstant类:对应命题常量,有两个属性name和value,初始时name为命题常量对应的字母,为T或F,value为根据命题常量的name分别为True或False。
Not类:对应not逻辑联结词,只有一个属性,为formula,对应为非联结词后的命题逻辑

已下架不支持订阅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ssaty.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值