最近越来越感觉到,想要了解一个类型的编程语言,最后都会回到计算机硬件的结构特性上。
为什么需要变量类型,回顾一下计算机的结构:计算机有处理单元,总线,内存,IO组成,处理单元基本做的事情就是输入,处理,输出,但是存储器面对的都是01010101010二进制,我拿的时候我怎么知道要拿多少,所以就必须定义一个“拿”的范围,我要拿多少来处理,处理完成后,我需要给总线上放多少位数据,所以这个才是变量类型诞生的根本原因,这是从娘胎里带来的。任何的编程语言最终都需要转换为机器语言执行,你上层的语言自由度肯定不能大过机器语言。
上述看似回答了问题,但仅仅只是初步的回答,我如果要继续问,为什么硬件就设计成这样,为啥不能硬件上就规定数据类型,或者硬件上就不要整什么数据类型,我想,可能有这种不需要数据类型的实现方案,但是代价太高了,目前的计算机的方案是理想化方案下放的一个权衡实际的方案。所以问:有没有不需要类型的编程语言,答案是“有,但是不现实,没必要”。
最近会看一些相关的书,有新的感悟会及时更新