计算机的很多理论来自形式化的数学推导,而数学上的形式化语言,通常是逻辑严谨且定义清晰的,但语义上却晦涩抽象,不容易理解。
例如: 在命题的推导上,有充分条件和必要条件。形式化定义是: 如果A -> B,A是B的充分条件,B是A的必要条件; 如果A -> B,且 B->A,则A与B互为充要条件(充分且必要条件),命题A等于命题B。
“->“表示能推导出,以上定义是不是非常难懂呢?
实际理解的话,把形式化语言翻译成依赖的概念和语义描述,就非常容易理解了,如下:
1) 充分条件: 有之即可,无之未必不行
2)必要条件: 有之未必行,无之必不行
是不是很容易了呢? 举个例子: 我们知道函数可导是函数连续的充分条件(也即函数连续是函数可导的必要条件),这说明什么呢? 说明比存在以下语义:
1) 函数可导,则函数必定连续
2) 函数不可导,函数未必不连续
3) 函数连续,函数未必可导
4) 函数不连续,则函数必定不可导