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