Language agnostic 把一种语言翻译成另一种语言?

Language agnostic 把一种语言翻译成另一种语言?,language-agnostic,programming-languages,code-translation,Language Agnostic,Programming Languages,Code Translation,有翻译员可以把一种语言翻译成另一种语言吗 听说quercus可以把php翻译成java?起初,我认为这是一个廉价的、糟糕的解决方案,可能会导致代码错误,但似乎完全有可能做到这一点 你能把php翻译成其他语言吗,比如python或ruby?C++到java等等?< p>这个问题是当你的习语翻译得不好的时候。您得到的代码在语法上是有效的,但看起来像是某人在acid上编写的。这可能不是您想要的,但有SWIG 我们在一个项目中使用它来创建C++框架的Python、java和Ruby绑定/包装器。请参见

有翻译员可以把一种语言翻译成另一种语言吗

听说quercus可以把php翻译成java?起初,我认为这是一个廉价的、糟糕的解决方案,可能会导致代码错误,但似乎完全有可能做到这一点


你能把php翻译成其他语言吗,比如python或ruby?C++到java等等?

< p>这个问题是当你的习语翻译得不好的时候。您得到的代码在语法上是有效的,但看起来像是某人在acid上编写的。

这可能不是您想要的,但有SWIG


我们在一个项目中使用它来创建C++框架的Python、java和Ruby绑定/包装器。请参见

将一种语言翻译成另一种语言只是称为编译器、解释器和翻译器的一类程序的特例

这类程序将获取通常可以用形式语法描述的输入符号流(“源代码”),并输出符号流

符号的输出流可以是:

  • 本机汇编代码,通常用于运行机器的操作系统和硬件。如果是,该程序称为编译器
  • 不同操作系统和/或硬件的本机程序集代码。这也可以称为编译器,但通常称为交叉编译器
  • 可以由某种虚拟机执行的中间形式。这不是真正的编译器,但通常被称为编译器。Java、C#、F#、VB.NET等“编译器”都属于这一类
  • 完全是另一种语言。这就是所谓的翻译器,这里有一些例子,比如Java到C的翻译器。它们通常有不同程度的成功,因为习语通常不容易翻译
  • 口译员遵循同样的原则,但通常会就地执行处理过的表单,而不是将其保存在某个地方。Perl、PHP和shell脚本都属于这一类。例如,PHP将把操作码作为中间形式存储在操作码缓存中(如果启用了操作码缓存),但是这个中间形式没有存储,所以将PHP称为解释器仍然是安全的

搜索“transpiler”中的一些指针:

+1,以前从未听说过transpiler这个词。听起来老生常谈,但知道起来很有用。-1,我已经构建了很长时间的翻译工具,每当你听到像“transpiler”或“transcoder”这样的古怪术语而不仅仅是“translator”时,答案本身就是一个古怪的问题,如果真的有效的话,这并不是一个好的解决方案。我所看到的答案实际上会产生答案,但前提是你所说的答案是“翻译和运行,是一场彻头彻尾的噩梦”。参见关于NACA产生JOBOL的讨论:很抱歉,这不在你的教育中;我的老师教了我这个学期。我不太明白…它用简单的英语做什么?不能证明它有多快或多好,但可以肯定。这给了酸性测试一个全新的意义!请看我关于如何在语言之间进行翻译的答案。你可以找到一个廉价的糟糕的解决方案,它可以产生糟糕但有效的解决方案。一般来说,你不能轻易地在语言之间进行翻译,你也不能很好地使用糟糕的基础机器。一个标准的错误答案是,“将原始语言翻译成模拟原始语言语义的目标语言库调用”;基本上你是在建立一个翻译。你可以一直这样做;一台图灵机总是可以模仿另一台。但是这种翻译的结果通常非常难看,没有按照经过目标语言培训的维护人员所期望的方式使用目标语言,而且启动时通常会有很高的开销(所有这些模拟调用)。所以,你总是可以这样做,但你不应该这样做。你有没有可以推荐的书、教程或例子?即使是一个简单的