随着芯片制造商为新芯片添加新功能,指令等,我们是否需要更新版本的编译器才能使用芯片的新指令和功能?这也意味着编程语言还需要新的操作码,语法等来使用芯片的新功能吗?
答案 0 :(得分:1)
编译为机器代码(而不是VM)的编译器可能需要在其目标体系结构发生变化时进行更改(尽管理想情况下所有更改都是向后兼容的,因此添加只是意味着可以进行新的优化,但旧的编译器会还在工作)。
编程语言不需要需要进行更改,但如果通过更改机器的功能可以实现新功能,则可能会这样做。除非“编程语言”是指汇编/机器语言,否则可能应该(但不一定)添加一对一的芯片指令到汇编/机器指令。
注意所有“可能”。除非您正在使用汇编,机器代码,编译器设计或编程语言设计,否则这些更改对您来说是不可见的。如果你不这样做,那么担心这些事情会浪费你的时间。
答案 1 :(得分:1)
是的,新的硬件功能反映在语言扩展和新语言中。例如,请参阅C和C ++的各种向量扩展,它们反映了SIMD指令的可用性,以及新的派生数据并行语言,如CUDA和OpenCL。
如果硬件与其他硬件明显不同,则很可能需要使用自己的不同编程语言,请参阅已发布的Transputers及其Occam语言。