LINUX.ORG.RU

История изменений

Исправление stevejobs, (текущая версия) :

ну есть всякие штуки типа https://www.jetbrains.com/mps/, там были бы вообще другие вопросы

вообще непонятно, зачем нужен рефлекшен для вызова методов из джавовских классов. После компиляции они все равно иммутабельны (можно сделать не иммутабельными, но это адский оверхед). Для иммутабельных классов путь до названия метода всегда один и тот же. Я так понял ты парсишь свой язык в аст, и потом его исполняешь в рантайме, за этим тебе и нужен рефлекше. Можно сделать наоброт - транслировать всю твою программу 1-в-1 прямо в джава-код и собрать этот джава-код джавовским компилятором. Если сама java слишком restrictive, можно компилировать прямо в сам JVM с помощью https://github.com/raphw/byte-buddy или что там сейчас модно

Тут сразу же возникает вопрос в методах задания формальной грамматики и формальных правил трансляции аст->джавакод, чтобы сборкой можно было удобно управлять. И твой вопрос трансформируется из «может есть какой-нибудь удобный метод получения класса» в вопрос как правильно на тулзе описания грамматики описать нужный тебе синтаксис, и как в целом достичь нужной тебе семантики

Исходная версия stevejobs, :

ну есть всякие штуки типа https://www.jetbrains.com/mps/, там были бы вообще другие вопросы

вообще непонятно, зачем нужен рефлекшен для вызова методов из джавовских классов. После компиляции они все равно иммутабельны (можно сделать не иммутабельными, но это адский оверхед). Для иммутабельных классов путь до названия метода всегда один и тот же. Я так понял ты парсишь свой язык в аст, и потом его исполняешь в рантайме, за этим тебе и нужен рефлекше. Можно сделать наоброт - транслировать всю твою программу 1-в-1 прямо в джава-код и собрать этот джава-код джавовским компилятором. Тут сразу же возникает вопрос в методах задания формальной грамматики и формальных правил трансляции аст->джавакод, чтобы сборкой можно было удобно управлять. И твой вопрос трансформируется из «может есть какой-нибудь удобный метод получения класса» в вопрос как правильно на тулзе описания грамматики описать нужный тебе синтаксис, и как в целом достичь нужной тебе семантики