. Net al convertitore di codice Java [chiuso]


Devo sviluppare un'applicazione in java dove posso analizzare il codice dell'applicazione.net e generare il codice Java corrispondente. Ho sentito che è facile implementare Abstract Syntax Tree (AST) per il codice.net e in seguito posso usare quell'AST nella mia applicazione java per generare le classi java corrispondenti. NOTA: non dovrebbe toccare il mio codice dell'applicazione. NET ad ogni costo. Quindi il mio obiettivo è che devo sviluppare un'applicazione java che analizzi il codice.net e costruisca l'AST. Più tardi, posso usare questo AST e posso generare le classi java corrispondenti. Ho bisogno di iniziare con il programma di base "hello world".

Author: ideano1, 2013-11-26

2 answers

Ho sentito che è facile implementare Abstract Syntax Tree (AST) per il codice. net

Facile è soggettivo. Ciò che proponi è profondamente complesso, anche se hai usato uno strumento come Roslyn come punto di partenza. Inoltre, tieni presente che molti concetti. NET non sono nemmeno mappati su Java (delegati, eventi, dinamici, LINQ, veri generici (piuttosto che tipo di cancellazione), tipi di valore personalizzati, ecc.). Ci sono strumenti che fanno cose come questo come prodotti per esempio IKVM e JNBridge. IKVM funziona ospitando Java bytecode come IL all'interno della CLI; Non sono del tutto sicuro di cosa faccia JNBridge, ma sembra funzionare in entrambe le direzioni (a differenza di IKVM) - ma nota: questi sono non traduttori di codice.

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

Anche se non impossibile, quello che stai cercando di ottenere è troppo ampio e richiede molta codifica, pazienza e tempo. Il primo problema che devi risolvere è. Net non è un linguaggio di programmazione ma un framework e un codice pronto , molti linguaggi di programmazione come c#, VB, VC++ e molti altri usano .Net Framework.Quindi, devi prima decidere quale linguaggio di programmazione vuoi indirizzare.

La libreria. Net è molto vasta e contiene migliaia di classi e funzioni, non sarò sorpreso se il numero totale di funzioni è nella grandezza di 100.000.

Non è così facile trovare una mappatura tra ogni funzione.Net e una funzione Java. Potresti non trovare affatto metodi equivalenti. Non solo i metodi, ma anche alcuni concetti non hanno implementazioni equivalenti in Java, ad esempio.

Il programma Hello world è facile perché il numero di metodi utilizzati in esso è limitato e le righe di codice sono minime. Ma nulla al di là di questo, non è un dritto in avanti soluzione è possibile ottenere in breve periodo di tempo.

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