何为计算机?计算机就是用来计算的。计算就是处理数据/信息的。
计算包括数值计算与逻辑运算,计算便需要数据与运算符(指令),数据与指令需要存储器存储便于cpu控制运算。
经典的冯诺依曼体系结构便是将指令存储器和数据存储器合并在了一起,集cpu计算、指令执行、数据存储于一身的电子计算机是由运算器、控制器、存储器、输入设备、输出设备组成的。
至于图灵机,便是由祖师爷图灵在1936年提出的一种计算模型,可以用来衡量问题是否可以计算/判定,它包括输入带、控制器、输出带。这与程序中的计算函数是一致的,函数也是包括了输入参数、调用执行过程、返回参数。
记得图灵机停机问题(停机问题就是能否在有限时间内判定程序结束运行的问题,这里存在悖论:假设程序设定的就是进入死循环就停机、不进入死循环就不停机。)就是一个不可判定的问题,它与哥德尔不完全定理一同描述现代逻辑学中的可计算理论问题,哥德尔不完全定理就是:
任何自洽的形式系统,只要蕴涵皮亚诺算术公理,就可以在其中构造在体系中不能被证明的真命题,因此通过推理演绎不能得到所有真命题。
记得大学上过一门编程语言课与同学讨论过这个问题,那门课还讲了编程语言定义变量、赋值语句、函数调用、分支跳转等等,还学了点lisp与递归。
还记得上过编译原理,它就是讲词法、句法、语义分析,就是编译过程构造语法树,简单的类比就是构造“1+2”这一表达式的语法树并转换为二进制数据,便于计算机理解。具体内容已忘的差不多了,只记得这些简单的东西……
大学四年与工作的这两三年,经历了从面向过程到面向对象,再到面向接口编程(将定义与实现分离),自己对计算机抽象算是有了一丁点的了解了。
至于后来学的分布式存储系统,什么CAP理论,那就是另外一回事了,在此不打算展开讲了。
2022.06.04