Мне нужно создать программное обеспечение для портирования, которое преобразует Java-код в C# (и наоборот, но я рассмотрю это после). Программное обеспечение будет нацелено на людей, которые владеют одним языком и ничего не знают о другом, а также если у вас есть очень хороший фрагмент исходного кода на одной платформе и вы хотите использовать его на другом, не меняя его вручную.Портирование кода Java на C#
Я знаю, что существуют существующие работы, подобные этому, но мне нужно создать свои собственные (также для практических целей), и я не совсем уверен, как начать. Я рассмотрел создание проекта C#, который будет вызывать исходный код .Java, и пройдите через него по очереди и преобразуйте текст в то, что выглядит C#. Пример: public class Car extends Vehicle {} переходит в открытый класс Car: Vehicle {} и продолжает изменять каждую разницу между двумя языками.
Правильно ли это подход и есть ли другие?
* Примечание. Я нашел статьи об этом, и я увидел, что АСТ и парсинг вышли очень много, а также несколько парсеров, таких как NRefactory. Может ли кто-нибудь объяснить, как эти термины связаны с моей проблемой, и как работает парсер (NRefactory)? Определения дали мне обзор, но я все еще не уверен, понимаю ли я концепцию.
Это сложнее, чем просто портировать синтаксис и семантику языка, есть функции, которые вы найдете в Java и отсутствующие в .NET и наоборот. Некоторые склонны думать, что .NET - это клон Java, но на самом деле оба являются разными монстрами ... В любом случае, я уверен, что лучший способ портирования Java на C# работает непосредственно с байтовым кодом обеих платформ. –
@ MatíasFidemraizer Итак, как я могу использовать байтовый код для преобразования между двумя? – Alexey
Я предлагаю вам, потому что, если вы переносите код на .NET, вам также нужно скомпилировать его в байт-код, и я считаю, что сборка напрямую должна быть построена непосредственно с помощью байт-кода, сгенерированного некоторым парсером/интерпретатором Java ... Но похоже вам нужна почти невозможная вещь ... –