【问题标题】:.Net to Java code converter [closed].Net 到 Java 代码转换器 [关闭]
【发布时间】:2013-11-26 09:58:37
【问题描述】:

我需要在 java 中开发一个应用程序,我可以在其中解析 .net 应用程序代码并生成相应的 Java 代码。 我听说为 .net 代码实现抽象语法树(AST)很容易,后来我可以在我的 java 应用程序中使用该 AST 来生成相应的 java 类。 注意:不应该不惜一切代价触动我的 .NET 应用程序代码。 所以我的目标是我必须开发一个解析 .net 代码并构造 AST 的 java 应用程序。后来,我可以使用这个 AST 并且可以生成相应的 java 类。 我需要启动基本的“hello world”程序。

【问题讨论】:

标签: java .net converter abstract-syntax-tree


【解决方案1】:

听说.net代码很容易实现抽象语法树(AST)

简单是主观的。即使您使用像 Roslyn 这样的工具作为起点,您的提议也非常复杂。还要记住,许多 .NET 概念甚至不映射到 Java(委托、事件、动态、LINQ、真正的泛型(而不是类型擦除)、自定义值类型等)。有一些工具可以像 IKVM 和 JNBridge 这样的产品来做这样的事情。 IKVM 通过在 CLI 中将 Java 字节码作为 IL 托管来工作;我不完全确定 JNBridge 的作用,但它似乎可以双向工作(与 IKVM 不同) - 但请注意:这些 不是代码翻译器

【讨论】:

    【解决方案2】:

    虽然并非不可能,但您要实现的目标过于广泛,需要大量的编码、耐心和时间。您必须解决的第一个问题是 .Net 不是一种编程语言,而是一种框架和现成的代码,许多编程语言如 C#、VB、VC++ 等等都使用 .Net Framework。所以,您必须首先决定您使用哪种编程语言想瞄准。

    .Net 库非常庞大,包含数千个类和函数,如果函数总数达到 100,000 个数量级,我不会感到惊讶。

    要找到每个 .Net 函数和 Java 函数之间的映射并不容易。您可能根本找不到等效的方法。例如,不仅方法,而且某些概念在 Java 中也没有等效的实现。

    Hello world 程序很简单,因为它使用的方法数量有限,代码行数最少。但除此之外,这不是您可以在短时间内实现的直接解决方案。

    【讨论】:

      猜你喜欢
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      相关资源
      最近更新 更多