【发布时间】:2009-07-28 20:43:49
【问题描述】:
理论上这对我来说似乎是可能的。如果可能的话,任何人都可以向我确认这一点吗?如果有这样的软件可以做到这一点?(如Java到C++或C#)
一般而言,是否可以将 Java 等语言转换为 PHP 等服务器端编程语言?
【问题讨论】:
标签: java php oop translation transfer
理论上这对我来说似乎是可能的。如果可能的话,任何人都可以向我确认这一点吗?如果有这样的软件可以做到这一点?(如Java到C++或C#)
一般而言,是否可以将 Java 等语言转换为 PHP 等服务器端编程语言?
【问题讨论】:
标签: java php oop translation transfer
翻译一种语言的句法元素并产生另一种语言并非易事,但也并非不可能。一个好的解析器可以用一种语言构建语法树,然后发出另一种语言。在简单的“Hello World”类型应用程序的上下文之外移植代码的困难是双重的:
【讨论】:
这是可能的,但主要问题是 Java 有一个非常大的运行时库,需要在目标语言中提供它才能进行全自动转换。
对于 Java -> .NET 的特殊情况,您可以使用 Microsoft 的 J# 将其编译成可以使用的 .NET 程序集。 ikvm.net 还允许在 .NET 中运行 JVM。
对于 PHP,我认为不存在这样的解决方案。您可以使用 gcj 创建一个可以链接的本机库,但我不认为这是一个可行的方案。
您需要 PHP 中的哪些功能?
【讨论】:
Visual Studio 附带了一个 Java 到 C# 的翻译器,即使它做得相当不错,但之后仍有很多需要清理的地方。
根据我的经验,您真的必须问问自己将代码从一种语言翻译成另一种语言是否有意义。有什么收获?翻译后的代码是否可维护?如果这些问题的答案指向错误的方向,那么翻译可能不是正确的方法。
【讨论】:
Google Web Toolkit 会从 Java 转换为 JavaScript:
【讨论】:
回答你的问题,是的,理论上这确实是可能的,实际上每天都在使用这种技术:)
在我看来,有趣的是 Java 转换器通常通过获取字节码而不是源代码进行转换。然后是字节码到ObjectiveC 的源代码。对于某些转换器(至少一个开源转换器),它是字节码到 XML,然后是 XML 到目标语言。
例如,使用 Java (JME) 编写并自动从 Java 字节码转换的 iPhone Uniwar 应用程序受到了所有人的好评并进入了 appStore 的前十名。进入前十名,即使是几天,也意味着它部署在很多机器上;)
在现实世界 [TM] 中,Cobol-Java 以及奇怪的是 Java-Cobol 并非闻所未闻。
要让这一切工作,你需要一个非常好的转换器:)
【讨论】:
理论上是可以的。但正如其他人指出的那样,主要问题是翻译图书馆。
前段时间,我制作了 Java 到 Tcl(XOTcl) 和 Java 到 Python 的翻译器来评估翻译的可能性。按 java2tcl 和 yava2python 搜索。
它们转换语法但不进行相关的结构转换(例如,Java 文件操作到 Python 的)。这将需要更多的开发时间。
总的来说,我认为这样的翻译是可能的。但前提是您的翻译人员涵盖了转换项目的类/库。
【讨论】: