命题逻辑中的语法就是一些自然推导规则(Natural deduction rules)的集合。那自然推导规则又是什么?我们回到现实世界。现实世界中,我们常常会做一些推理。
例如,你肯定能:
从“我喜欢计算机科学,而且我也喜欢数学”中 推理出 “我喜欢计算机科学”。
你也能:
从“我经常编写程序,而且我也经常读书” 中 推理出“我经常编写程序”。
我们并没有意识到自己是在做推理,但是我们确确实实完成了一次推理,确且地说,是两次。并且我们发现这两次推理具有高度统一的形式:
A 而且 B 推出 A
其中的A和B被称作命题。我们可以把命题理解为可以判断真假的句子。
例如,“我喜欢计算机科学”是一个命题,但是“我喜欢文学吗?”就不是一个命题。
对比一下自然语言中语法规则的产生,这一次,我们再次将这些在现实世界中广泛出现的推理形式抽象出来,把他们组成一个集 合,于是,我们就有了下面这组命题逻辑的自然推导规则集合。
解释一下这些符号的含义,例如:
φ ∧ ψ
—— ∧ e1
φ
其中的 φ , ψ 我们叫做公式。公式可以是以下这些形式:
p, q, p ∧ q, ¬ q, (p ∧ q) ∨ p, …
其中的 ∧ e1,我们叫做规则。e的意思是消除(elimination). 这条规则从 φ∧ψ 中消除了 ∧,只留下了前面的φ, e1中的 1 就是指 φ,因为它排在第1个,对比一下 ∧ e2就会明白了。
规则中的i表示引入(introduction). 规则的具体含义可参考.至于其中的 ¬ , →, … ,我认为目前没有必要知道含义,你仅仅需要知道他们是一些推导规则就好了。虽然你们多半都知道含义,但是,现在把它们忘了吧。
请再一次又一次地记住,这些推导规则从现实世界中剥离出来后,就有了他们的独立性,和具体的含义无关,例如:
φ ∧ ψ
–——∧ e1
φ
我们只知道 φ 和 ψ 是命题,有真假,但是,不管他们是真是假,都不影响这条规则的成立。这一点请千万注意。 例如:
φ = "我不喜欢计算机科学" (当然,这是假的)
ψ = "我喜欢数学"
由上面的那条推导规则,可以推出φ,即"我不喜欢计算机科学",尽管这个结论是假的,但这和这条推导规则的成立无关。不能说, 这规则得出假的结论,所以这条规则就是不正确的。
相关推荐
编译原理语法分析语义分析 语法分析(Syntax analysis或Parsing)和语法分析程序(Parser) 语法分析是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,...
高级程序设计中涉及到的语义与语法的关系和构建。
这是经过查找资料之后总结的关于自然语言理解中的语法学、语义学和语用学的内容!共同进步!
编译原理课用到的语法与语义分析PPT课件
以计算器危机春,实现编译原理中的词法、语法、语义分析,编写成的词法、语法、语义分析器,用vs2010编写
用c语言实现的语法语义分析程序 实现了四元式得生成功能齐全
编译原理-词法,语法,语义
用java语言编写的词法分析器、语法分析器和语义分析器,已经内置了静态的基本语言,通过文件读入代码,上传供各位学习交流使用。
vscode中的语法高亮和语义高亮 Vscode Syntax Highlight Vscode Semantic Highlight
编译原理原理课程设计,源码加报告。这是我的课程设计,其中包括了语法语义分析
通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法. 实验要求 采用递归下降语法制导翻译法,对算术表达式、赋值语句进行语义分析并生成四元式序列。 实验的...
C++语法语义分析器 本程序在屏幕上输入待分析的C语言 赋值 语句 格式: begin(请一定输入,否则不能运行) s=...; a=...; b=...; end #(结束符号) 输出三地址指令: t1=... t2=... s=...
这是我本科编译原理课上完成的实验(C语言编写),文件打包了从词法分析、语法分析到语义分析的代码,使用codeblock编写。
编译原理课程设计,内容包括词法分析、语法分析、语义分析
Java语言子集语法、语义分析器 1.强化对系统软件综合工程实现能力、规划能力的训练; 2.增强对语法分析器、语义分析及代码生成器基本实现技术的理解; 3. 提高训练。
自己在做编译课设时搜集参考用的,呵呵,都放上来了,有各种语法写的,LL(1),LR的,递归下降的,还有语义分析部分,有四元式,逆波兰式等等,而且每个都能调试运行。(不好的,我可不拿出来现眼)……
语法 语义分析 vC++
简单编译器前端:词法、语法、语义 包括完整的实验报告
编译原理词法分析,语法分析,语义分析(源代码和实验报告),已经测试运行,绝对对得起10分(本人的承诺)。
预处理,词法分析,语法分析,语义分析,中间代码生成