编程需要逻辑

编程——最初只是研究数学的要做的工作。现在已经成为一项大众游戏。原来数学工作者在计算机上进行的编程工作——已经成为没有多少人会去做的“低层“工作。而对于数学工作者或内核编程人员来说,做现在这种普遍的编程工作没有什么吸引力。

计算机的发明也就是为了研究数学。

简单地说:就是先有0,然后1,然后0+1,1+1, 。。。直至无穷。

既然通过计算机可以很好的,非常简单地,精确地描述数学。那么,可以用这种方法来描述文字(或者语言)吗?

可以,它就是逻辑,它不仅是数学的语言,还是语言的语言。

遗憾的是,现在的程序员好像已经失去这种能力了。本质上是简单的东西,为什么不去做好它呢?

请看用逻辑描述一个语言会有多么简单:

Exp::=n|x|E+E|E-E|E*E|E/E|

Boo::=true|false|!B|B&B|(B||B)|E<E

好了,这就是一个语言。可以想象它就是一个c语言的子集。

Exp——表达式 Boo——布尔值

n——数字

x——文字(变量)

!, & ,||——分别对应c语言中!, &&, ||

E>E可以由!(E<E)表达。

c语言中!= 对应 !(==), 而==表示逻辑相等(产生布尔值),=表示赋值。
以上描述就是一个语言,可以作为我们的一个核心语言。
有了语言,还要组装语言以产生程序,这就要靠逻辑规则了。
所有程序的严格证明必须要靠一定的逻辑规则,而不是简单的测试。
所以,今后的内核开发方法强调程序证明,而不仅仅是测试。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值