分类:
2010-04-15 14:11:21
转一篇文章,似乎可以解决我在上一篇日志里的疑问(红色为标记)。 Think:C编程的思考 I think ,so I am 我思故我在:如果我没有想“我是谁”,那么我就不存在。有两个我一个存在的我,一个不存在的我。 教科书上的所有知识或不正确,或模糊的,或偏见的。 编程真的是算法+数据么,我想这个对编程的表述起码是不完备的。编程更准确的说是模型和任务的混合。 计算机对人来说就是完成人交给的任务,这就是面向过程方法论的来源,与其说是面向过程不如说是面向任务。C程序就是一个大任务无数个小任务组成的。 然而人要用计算机完成任务,人就首先对世界建模,计算机也要把计算机外部世界映射到计算机内部的模型中。面向对象方法论就是首先对世界建模,因为数据之间是有联系的:一对一关系,一对多关系,多对多关系,父子关系,继承关系。 面向过程方法、面向对象是两个方法论,程序员可以采用其中的一个,也可以同时采用两者去写代码。C语言的开发就是面向过程和面向对象的交互协作。C程序员要同时用面向过程完成系统任务,用面向对象对系统数据建模。 大象几条腿? 面向过程,面向对象是大象的腿么?如果是大象另两条腿是什么? 计算机对人来说就有两个任务,一是计算,二是控制。 计算就是知道事物的已知的状态根据已经发现的规律计算事物的另一种状态。 控制就是利用电流的热效应,磁效应,光效应去控制物理世界。 来自:Linux伊甸园 作者:blackspace 转自: