我很想知道某些语言是否更适合某些处理器架构。当我说架构时,我不是指ARM / PPC / MIPS,而是指更多堆栈,累加器或基于寄存器的架构。
例如,我可以想到Forth,这是一个堆栈架构。还有其他人吗?
答案 0 :(得分:5)
是的,当然......它也是另一种方式:许多硬件架构都是为了适应某些语言而设计的。
可能还有更多很好的例子。
答案 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)