这一些为什么足以支撑这个计算机逻辑呢?求惑
我怎么觉得是因为计算机靠门电路完成运算,所以像判断、循环这种东西靠逻辑门很容易解决……所以在汇编之初或者说把算法单拎出来研究的时候就留下了这样的印记………然后再高级的语言总得用底层语言去编译于是这类基础的语法就几乎所有语言都拥有了…
#5 楼 @redhatping 其实没有这些也足够啊 有布尔值有 goto 有递归.. 事实上只有 lambda 就可以实现整个编程语言的功能了 you can programm with nothing! 或者只用NOR
更多的可以看 understanding computation 看完可以写编译器,解释器,正则引擎..例子都是用的 ruby
还有,有些东西为什么会变成现在这个样子..
坑已挖好
1996 年,计算机科学家 Bohm 和 Jacopini 证明了这样的事实:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。所以,这三种结构就被称为程序设计的三种基本结构。也是 结构化程序设计 必须采用的结构。
不管函数式、逻辑式语言炒的多么火,不可改变的一个事实是最终都转变成结构化程序设计运行在计算机上。CPU 基本是只吃结构化指令。所以,无论如何,循环、条件都值得学,因为这样更容易和计算机打交道。
程序语言的用户不是电脑而是人脑 电脑是不看什么程序语言的,只看最后的二进制码就够了
所以决定大多数 general purpose 的语言 的结构都很像人脑思考和对工序的描述,把复杂的问题分步骤加上条件循环什么的。可以找一个菜谱研究下
但是,在很多的特殊领域内,不用说解决问题。描述问题的本身往往需要更强大的语言,所以越是特定领域内的程序语言,往往越贴近问题域而不见得是人脑。这个时候就要程序员主动编程自己的人脑(或者叫学习一种不友好的语言),来优化问题的解决