Computer science 图灵机器vs冯·诺依曼机器 背景

Computer science 图灵机器vs冯·诺依曼机器 背景,computer-science,cpu-architecture,turing-machines,von-neumann,Computer Science,Cpu Architecture,Turing Machines,Von Neumann,冯诺依曼体系结构描述了存储程序计算机,其中指令和数据存储在内存中,机器通过改变其内部状态工作,即指令对某些数据进行操作并修改数据。因此,本质上,系统中存在状态维护 图灵机架构通过操纵磁带上的符号来工作。i、 e存在具有无限多个插槽的磁带,并且在任何一个时间点,图灵机都位于特定插槽中。根据在该插槽读取的符号,机器可以更改符号并移动到其他插槽。所有这些都是确定性的 问题 这两种模式之间有什么关系吗?冯·诺依曼模型是基于图灵模型还是受到图灵模型的启发 我们能说图灵模型是冯·纽曼模型的超集吗 函数式编

冯诺依曼体系结构描述了存储程序计算机,其中指令和数据存储在内存中,机器通过改变其内部状态工作,即指令对某些数据进行操作并修改数据。因此,本质上,系统中存在状态维护

图灵机架构通过操纵磁带上的符号来工作。i、 e存在具有无限多个插槽的磁带,并且在任何一个时间点,图灵机都位于特定插槽中。根据在该插槽读取的符号,机器可以更改符号并移动到其他插槽。所有这些都是确定性的


问题
  • 这两种模式之间有什么关系吗?冯·诺依曼模型是基于图灵模型还是受到图灵模型的启发

  • 我们能说图灵模型是冯·纽曼模型的超集吗

  • 函数式编程适合图灵模型吗?如果是,怎么做?我想 函数式编程并不适合冯·诺依曼模型


  • 图灵模型定义了计算能力,如果不深入实现,没有人会创造出看起来像图灵机器的计算机。(狂热者除外)

    图灵模型不是体系结构

    冯·诺依曼正在指导如何建造计算机。它没有提到计算能力。根据指令集的不同,生成的计算机可能是图灵完整的,也可能不是图灵完整的(这意味着可以解决与图灵机器相同的任务)

    函数式编程(lambda演算)是另一种图灵完备的计算模型,但不能与冯·诺依曼体系结构相适应。

    图灵机是一种理论概念,是为了从数学上探索可计算问题的领域并获得描述这些计算的方法而发明的

    冯·诺依曼体系结构是一种用于构造实际计算机的体系结构(实现图灵机器理论上描述的东西)

    函数式编程基于,这是另一种描述计算或更精确地说是可计算函数的方法。尽管它使用了一种完全不同的方法,但它对图灵机器同样强大(据说是图灵完全的)

    每个lambda演算程序(term)
    T
    都是使用

    • 变量,如
      x
    • λx这样的匿名函数。T
    • 功能应用程序
      T
    尽管是无状态的,但这是计算机可以进行的每一次计算。图灵机和lambda项可以相互模仿,冯·诺依曼计算机可以同时执行这两个项(除了提供无限存储等技术限制之外,图灵机可能需要无限存储)


    但由于其无状态和更抽象的性质,与遵循二进制、内存和更新风格的命令式程序相比,功能性程序在冯·诺依曼计算机上的效率和“直观性”可能更低。

    我不知道图灵机和冯·诺依曼体系结构之间有什么历史关系。然而,我确信,冯·诺依曼在开发冯·诺依曼体系结构时就意识到了图灵机器

    然而,就计算能力而言,图灵机器和冯·诺依曼机器是等价的。其中一个可以模拟另一个(IIRC,在图灵机器上模拟冯·诺依曼程序是一个O(n^6)操作)。以lambda演算形式出现的函数式编程也是等价的。事实上,所有已知的计算框架(至少与图灵机一样强大)都是等效的:

    • 图灵机
    • Lambda演算(函数式编程)
    • 冯·诺依曼机器
    • 部分递归函数
    使用这些模型中的任何一个都可以计算的函数集没有差别


    函数式编程源于lambda演算,因此它不会直接映射到图灵或冯·内蒙机器。它们中的任何一个都可以通过仿真运行功能程序hoewver。我认为图灵机器的映射可能比冯·诺依曼机器的映射更繁琐,所以我对第三个问题的回答是“不,事实上更糟。”

    通常指的是架构,与架构相比。前者以相同的方式存储代码和数据,而后者则为代码和数据提供单独的内存和总线路径。所有现代台式电脑都是冯·诺依曼的,大多数微控制器都是哈佛的。这两个都是试图模拟理论图灵机器的现实世界设计的例子(这是不可能的,因为真正的图灵机器需要无限的内存)。

    图灵“模型”根本不是一个体系结构模型。图灵假设这只是一台不存在的机器,可以作为他证明。

    清晰解释的工具。然而,冯·诺依曼体系结构能实现图灵机器所能描述的一切吗?@桑托什:理论上,没有一台真正的计算机能做到这一点,也永远不会做到——因为图灵机器需要无限量的存储。任何图灵可计算函数都必须由一台停止的图灵机器来描述。停止的图灵机不可能需要无限的存储(它如何在有限的时间内读取或写入无限多的数据?)。因此,任何可以由理论图灵机计算的东西都可以由具有足够存储空间的实用计算机来计算。所需的存储空间可以任意大,但不会是无限的。@Tyler:无限循环图灵不也是可计算的吗?当然它不会停止…@Tyler:这不应该是“存在一个图灵机器,它在
    f
    域中的每一个
    n
    ,都会停止并输出
    f(n)
    ”?我不认为这就是全部