Convertisseur de code. Net vers Java [fermé]


J'ai besoin de développer une application en java où je peux analyser le code d'application.net et générer le code Java correspondant. J'ai entendu dire qu'il est facile d'implémenter Abstract Syntax Tree(AST) pour le code.net et plus tard, je peux utiliser cet AST dans mon application java pour générer les classes java correspondantes. REMARQUE: ne devrait pas toucher mon code d'application. NET à tout prix. Ma cible est donc de développer une application java qui analyse le code. net et construit l'AST. Plus tard, je peux utiliser cet AST et générer les classes java correspondantes. J'ai besoin de démarrer avec le programme de base "hello world".

Author: ideano1, 2013-11-26

2 answers

J'ai entendu dire qu'il est facile d'implémenter Abstract Syntax Tree (AST) pour le code. net

Facile est subjectif. Ce que vous proposez est profondément complexe, même si vous avez utilisé un outil comme Roslyn comme point de départ. Gardez également à l'esprit que de nombreux concepts.NET ne correspondent même pas à Java (délégués, événements, dynamique, LINQ, génériques vrais (plutôt que l'effacement de type), types de valeur personnalisés, etc.). Il existe des outils qui font des choses comme ça comme des produits par exemple IKVM et JNBridge. IKVM fonctionne en hébergeant bytecode Java comme IL à l'intérieur de la CLI; Je ne suis pas tout à fait sûr de ce que fait JNBridge, mais il semble fonctionner dans les deux sens (contrairement à IKVM) - mais note: ce sont pas des traducteurs de code.

 1
Author: Marc Gravell, 2013-11-26 10:04:16

Bien que ce ne soit pas impossible, ce que vous essayez de réaliser est beaucoup trop large et nécessite beaucoup de codage, de patience et de temps. Le premier problème que vous devez résoudre est que. Net n'est pas un langage de programmation mais un framework et un code prêt à l'emploi , de nombreux langages de programmation comme C#, VB, VC++ et bien d'autres utilisent .Net Framework.Donc, vous devez d'abord décider quel langage de programmation vous souhaitez cibler.

. Net library est très vaste et contient des milliers de classes et de fonctions, je ne serai pas surpris si le nombre total de fonctions est de l'ordre de 100 000.

Il n'est pas si facile de trouver un mappage entre chaque fonction.Net et une fonction Java. Vous ne trouverez peut-être pas du tout de méthodes équivalentes. Non seulement les méthodes, mais certains concepts n'ont pas non plus d'implémentations équivalentes en Java par exemple.

Le programme Hello world est facile car le nombre de méthodes utilisées est limité et les lignes de code sont minimes. Mais quoi que ce soit au-delà de cela, ce n'est pas simple solution que vous pouvez réaliser en peu de temps.

 1
Author: Buddha, 2013-11-28 07:02:34