有没有办法创建一个硬件实现的高级语言解释器?

时间:2013-03-13 22:09:28

标签: compiler-construction programming-languages hardware interpreter hdl

一些随意的想法引起了我的注意,我无法理解。我在想,因为现代处理器只是不同类型汇编语言的解释器,无论如何都要创建一些直接用硬件实现的高级语言解释器,使用一些HDL甚至直接使用逻辑门设计? 与此同时,我在想为什么还没有这样做,我现在能想到的一些原因是:

  • 理论原因 - 理论上是不可能的,虽然在我看来这是可能的,因为我们已经拥有的cpus或者我们所谈论的机器只是图灵机的一个变种,所以它们的性质没有区别,但我我不是百分百肯定的。
  • 设计复杂性 - 创建这样一台复杂的机器通常太困难了。
  • 速度缺陷 - 即使它设计和实施得当,它仍然无法获胜,因为它们的速度将是它的劣势。

我只是对这个问题感到好奇。

3 个答案:

答案 0 :(得分:3)

曾听说过LISP machines或公司Symbolics

我知道答案很简短,主要是链接,但答案是自成一体的。

答案 1 :(得分:2)

这已经完成The Java processor

这不是一个非常复杂的指令集计算机(VCISC),它会导致物理上很大的处理器。该语言的某些部分不像其他部分那样频繁使用,这导致很少使用处理器部分,浪费硅片区域。

处理器的较大芯片尺寸会增加产量损失,从而增加最终用户的价格。这种经济学有利于较小的简单处理器。

低功耗处理器设计倾向于支持RISC而不是CISC架构。诸如Deep Blue之类的超级计算机使用了许多RISC核心。大多数移动通信设备使用ARM RISC核心。

答案 2 :(得分:2)

Burroughs有着名的“硬件中的Algol”(see B5500)

鲜为人知的是Burroughs beautiful B1700,它让每个进程定义微代码来解释进程代码使用的HLL。因此,每个进程可以有一个不同的 HLL指令集;硬件交换微码设置在上下文切换上。

RISC世界的一个教训是,构建传统指令集更经济(并且您获得更大的市场),并将您的语言代码编译为这些指令。 DEC VAX尝试使用特定于语言的指令;事实证明,使用更传统的VAX指令而不是特定指令更快。

如果您坚持,使用FPGA实现HLL指令集可能相对容易。 (我可以想象这是一个EE设计课程的研究生项目)。它与x86或其他现代RISC芯片的性能竞争力不大。