Я собираюсь сделать побочный проект, целью которого является перевод кода с одного языка программирования на другой. Языки, с которых я начинаю работать, - это PHP и Python (с Python на PHP должно быть проще начать), но в идеале я бы мог добавить другие языки с относительной легкостью. План:
-
Это ориентировано на веб-разработку. Оригинальный и целевой код будет сидеть поверх фреймворков (которые мне также придется писать). Эти рамки будут охватывать шаблон проектирования MVC и следовать строгим правилам кодирования. Это должно сделать перевод несколько проще.
-
Я также рассматриваю IOC и инъекцию зависимостей, поскольку они могут упростить процесс перевода и уменьшить вероятность ошибок.
-
Я использую Python модуль парсера, который позволяет мне играть с абстрактным деревом синтаксиса. По-видимому, ближе всего я могу получить с PHP token_get_all(), который является началом.
-
С этого момента я могу построить AST, таблицы символов и поток управления.
Тогда я верю, что могу начать выводить код. Мне не нужен идеальный перевод. Мне все равно придется просматривать сгенерированный код и исправлять проблемы. В идеале переводчик должен обозначать проблематичные переводы.
Прежде чем спросить: "Что, черт возьми, это точка?" Ответ будет... Это будет интересный опыт обучения. Если у вас есть представление о том, как сделать это менее сложным, сообщите мне.
EDIT:
Мне больше интересно узнать, какие шаблоны я мог бы применить в коде, чтобы упростить перевод (то есть: IoC, SOA?) кода, чем как сделать перевод.