为什么我们没有设计出直接执行高级编程的计算机?
Why haven't we designed a computer to directly execute high level programming?
我一直以为现在的计算机已经可以直接执行高级程序了,但显然不是。我们还没有这样做有什么具体原因吗?高级编程的任何缺点。
这需要推测和过度简化,所以这就是我要做的
你说的是解释型语言,问题是为什么我们不是运行硬件解释器?
理由很简单,它更成本效益(均以硅片面积和瓦特/有用功计算)使硬件架构适合在硅片中实现,然后创建一个高级优化编译器来转换为该架构,而不是在硅片中创建相同的逻辑来解释高级代码。
另一个不应该这样做的论点是安全,硬件开发周期很长,量产后甚至不可能发布处理器的更新版本,解释器是臭名昭著的因为格式错误的输入容易受到安全问题的攻击。
我绝不是 CS 专家,但根据我处理计算机系统不同层的经验,抽象层对于实现协作开发环境非常重要。例如,当你想实现一个神经网络时,你更喜欢手动实现所有东西,还是使用现有的库?拥有不同的层使系统更安全,调试更容易,并且在开发中更好地专业化。一个人可以专注于更高级别 API 而不必担心较低级别的实现。
当你说一台直接执行高级语言的计算机时,请记住任何计算机仍然由晶体管组成,这意味着一切仍然必须转换为二进制运算。拥有一个完全封装的系统(从高层直接到硬件)与拥有分层结构(编写一个高层程序并编译它以指示硬件)要多得多inefficient。
我一直以为现在的计算机已经可以直接执行高级程序了,但显然不是。我们还没有这样做有什么具体原因吗?高级编程的任何缺点。
这需要推测和过度简化,所以这就是我要做的
你说的是解释型语言,问题是为什么我们不是运行硬件解释器?
理由很简单,它更成本效益(均以硅片面积和瓦特/有用功计算)使硬件架构适合在硅片中实现,然后创建一个高级优化编译器来转换为该架构,而不是在硅片中创建相同的逻辑来解释高级代码。
另一个不应该这样做的论点是安全,硬件开发周期很长,量产后甚至不可能发布处理器的更新版本,解释器是臭名昭著的因为格式错误的输入容易受到安全问题的攻击。
我绝不是 CS 专家,但根据我处理计算机系统不同层的经验,抽象层对于实现协作开发环境非常重要。例如,当你想实现一个神经网络时,你更喜欢手动实现所有东西,还是使用现有的库?拥有不同的层使系统更安全,调试更容易,并且在开发中更好地专业化。一个人可以专注于更高级别 API 而不必担心较低级别的实现。
当你说一台直接执行高级语言的计算机时,请记住任何计算机仍然由晶体管组成,这意味着一切仍然必须转换为二进制运算。拥有一个完全封装的系统(从高层直接到硬件)与拥有分层结构(编写一个高层程序并编译它以指示硬件)要多得多inefficient。