某些语言是否具有固有的处理器架构

时间:2009-05-29 07:50:34

标签: programming-languages cpu-architecture

我很想知道某些语言是否更适合某些处理器架构。当我说架构时,我不是指ARM / PPC / MIPS,而是指更多堆栈,累加器或基于寄存器的架构。

例如,我可以想到Forth,这是一个堆栈架构。还有其他人吗?

7 个答案:

答案 0 :(得分:5)

是的,当然......它也是另一种方式:许多硬件架构都是为了适应某些语言而设计的。

  • RISC架构非常适合那些从汇编语言转换为C / C ++等编译语言的人。
  • Burroughs B5000使用了Algol而不是汇编程序。
  • 有几种不同的Forth chips
  • Lisp machine旨在有效地运行Lisp。
  • Java处理器在硬件中运行Java字节码。
  • 某些ARM处理器具有(可选)Java acceleration technology

可能还有更多很好的例子。

答案 1 :(得分:4)

是的,他们这样做。例如,Occam编程语言最初专门针对Transputer架构。

答案 2 :(得分:2)

也许这是一个聪明的答案,但是:

所涉及的处理器的汇编语言与架构紧密相关,所以,是的,确实存在一些确实存在的语言。

高级语言是否表现出相同可能更有趣。

答案 3 :(得分:1)

我看到Simon Peyton Jones在谷歌视频上的一次谈话,谈到了这一点。他提到,当天人们对编写专门用于执行特定语言的硬件非常感兴趣,但人们找到了解决问题的更好方法:使编译器更智能。看看Haskell。 GHC从高级构造产生了一些可笑的快速代码,但Haskell与x86汇编器不同,两者看起来彼此不同。 Java和Lisp也发生了同样的事情:Java和Lisp在现代计算机上都非常快,并且利用了我们的处理器,但Java最初是为一个奇怪的基于堆栈的字节码编译的,很久以前,人们构建了Lisp机器。

顺便说一下,这是视频。其中大部分与当前问题无关,但您可能会觉得它很有趣,它是关于“为什么函数式编程很重要”以及如何使单元测试变得简单。

http://video.google.com/videoplay?docid=-4991530385753299192&hl=en

只是最近(大约十年左右?)编译器已经足够聪明,使Haskell和Java几乎和C一样快,即使它们都没有暴露出很多底层架构。哎呀,GHC甚至没有使用堆栈,那有多古怪?

答案 4 :(得分:0)

大多数语言都以Von Neumann architecture为目标,这是大多数CPU的基础。

为Neil Butterworth提到的Transputer的Occam是一个值得注意的例外。

VHDL是另一个例外,基于数据流概念,但它不是一种编程语言,它是一种硬件描述和模拟语言。

答案 5 :(得分:0)

最着名的例子当然是c

答案 6 :(得分:0)

C是在20世纪70年代早期写的,以适应DEC PDP-11 例如在PDP-7上,编程语言B只有一种数据类型,但将其移植到具有不同大小数据类型的PDP-11,变量的数据类型被添加到语言中。