Programming languages VHDL图灵完成了吗?

Programming languages VHDL图灵完成了吗?,programming-languages,vhdl,theory,turing-complete,Programming Languages,Vhdl,Theory,Turing Complete,VHDL图灵完成了吗?我的理解是VHDL创建了一个寄存器机器,并且没有任意RAM的寄存器机器不是图灵完整的 这准确吗?对于无法在注册机中解决的问题,是否有一种标准方法-在VHDL之外使用RAM,并通过VHDL进行管理,例如?有三种主要方法: 顺序。做这件事,然后做那件事,然后做另一件事 选择如果这个那么什么 迭代(或递归)。反复做这个直到这个 对内存的要求不是无限的(这在现代技术中是不可能的,所有语言都会失败),而是无限的,或者无限可扩展的:也就是说,如果你用完了,你可以添加更多,然后再试一次

VHDL图灵完成了吗?我的理解是VHDL创建了一个寄存器机器,并且没有任意RAM的寄存器机器不是图灵完整的

这准确吗?对于无法在注册机中解决的问题,是否有一种标准方法-在VHDL之外使用RAM,并通过VHDL进行管理,例如?

有三种主要方法:

  • 顺序。做这件事,然后做那件事,然后做另一件事
  • 选择如果这个那么什么
  • 迭代(或递归)。反复做这个直到这个
  • 对内存的要求不是无限的(这在现代技术中是不可能的,所有语言都会失败),而是无限的,或者无限可扩展的:也就是说,如果你用完了,你可以添加更多,然后再试一次


    所以,是的,我认为VHDL肯定是合格的。它可以完成所有这些工作。

    显示图灵完整性的另一种方法是一系列转换:

  • 图灵机是图灵机
  • 图灵机可以由寄存器机模拟,反之亦然
  • 寄存器机是现代处理器的抽象和简单模型
  • 您可以用VHDL描述处理器

  • 所以VHDL是图灵完成的。

    首先,您当然可以用VHDL实现RAM。对于合成,大多数FPGA会将RAM映射到专用内存块中。它可能不是最便宜的内存形式,但这是一个经济的论点,而不是一个基本的论点。VHDL具有动态内存分配,因此它与任何其他系统编程语言一样完整。你能给出一个用VHDL显示递归的代码示例吗?我发现。@SRobertJames:状态机可以很容易地显示递归,我不认为有人会争辩说我们不能用VHDL构建状态机。@比尔-状态机肯定不是图灵完全的。但是,你真的能用VHDL模拟布局吗?我的意思是,假设一个电路的JPEG图片可以转换成VHDL,这是否意味着JPEG是图灵完备的?能够保存图灵完整的东西,但需要一个解释器并不能使容器图灵完整。平版印刷描述只是写图灵机器的另一种方式。当使用笔和纸执行寄存器和图灵机时,没有人要求纸和笔是图灵完备的。我想知道做算术的人是否是图灵完备的,而不是纸和笔:-)