研究计算机硬件可以加深对编程和算法的理解

自从我开始琢磨计算机硬件以来,我做算法题的能力也在提高。

以前对算法题有些啃不动,提不起兴趣,现在觉得算法题好象可口美味的饼干,一口吃下去,味觉很享受

究其原因,我发现对硬件的理解,提高了我对软件编程的思维深度。

例如,以前觉得,赋值语句就是赋值语句,写了千百遍了以至于麻木。但现在一写赋值语句,脑子里自动出现硬件访问内存时,时序电路,触发器,寄存器,扇入扇出等一系列硬件及其操作。

在硬件电路上,时序电路和非时序电路有严格的区分,无法混淆。

例如,一般的与或非,加减乘除乃至于复杂的数学函数运算都属于非时序电路,到了内存电路时才必须要用时序电路。时序电路通常有头疼的问题,例如时钟的同步非同步,竞争,冒险等等。

而在高级语言编程时,赋值也会带来头疼的状态管理问题,因为在不同时刻变量值有可能不同,导致应用程序的Bug需要追踪各种复杂的状态才能找到,以及多线程操作中的问题等。

对变量赋值的处理方式的不同,也是函数式编程和非函数式编程的重要区别。

赋值这件事,不是小问题。而从硬件出发,则很容易可以看到问题的本质,这与时序电路本身的特性有极强关系。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容