1

随着芯片制造商向新芯片添加新功能、指令等,我们是否需要相应的更新版本的编译器来使用芯片的这些新指令和特性?是否也意味着编程语言也需要新的操作码、语法等来使用芯片的新特性?

4

2 回答 2

1

编译为机器代码(而不是虚拟机)的编译器可能需要在其目标架构更改时随时更改(尽管理想情况下所有更改都将向后兼容,因此添加只是意味着可能有新的优化,但旧的编译器仍然可以工作) .

编程语言不需要改变,但如果通过改变机器的能力而使一个理想的特性成为可能,那么它可能会改变。除非“编程语言”是指汇编/机器语言,在这种情况下,可能应该(但不必)添加对汇编/机器指令的一对一芯片指令。

注意所有的“力量”。除非您从事汇编、机器代码、编译器设计或编程语言设计工作,否则这些更改对您来说很可能是不可见的。如果你不是,那么担心这些事情就是浪费你的时间。

于 2011-02-11T16:32:56.543 回答
1

是的,新的硬件特性反映在语言扩展和新语言中。例如,查看反映 SIMD 指令可用性的 C 和 C++ 的各种向量扩展,以及新的衍生数据并行语言,如 CUDA 和 OpenCL。

如果硬件与其他硬件明显不同,它可能需要自己的、不同的编程语言,请参阅后期的 Transputers 和他们的 Occam 语言。

于 2011-02-14T10:30:54.347 回答