对于用某种编程语言编写的任何程序,是否总是可以编译成任何其他语言的具有等效功能的程序?
问问题
407 次
2 回答
2
就原始逻辑而言,是的;只要两种语言都是图灵完备的。
但是,如果您的代码使用目标语言中不可用的 API(例如,网络、文件系统、3D 加速或线程),则不会。(除非您用目标语言编写完整的虚拟机并在此基础上构建)
例如,没有明智的方法将共享内存、多线程代码移植到 Javascript。
于 2015-02-15T22:20:36.153 回答
1
您正在寻找图灵完备性。
虽然所有图灵完备的语言在技术上都具有同等的能力,但用一种语言表达一个想法可能需要比另一种语言多几个数量级的工作。
此外,它们可能以 API 或类似的形式提供对底层平台的不同数量的访问。
这巧妙地导致了turing-tarpit,这意味着在其中一个语言中做某事可能需要太多的工作,以至于首先为另一种语言编写解释器是一种胜利。
于 2015-02-15T22:21:33.153 回答