Трудно быть полезным, не понимая, для чего вы планируете использовать DSL.
Является ли переносимость вашей главной проблемой здесь?Чтобы успешно нацелиться на эти разные платформы, вам, вероятно, придется все равно поддерживать слои, специфичные для платформ (сгенерированные или нет).
Если вы планируете записать все свое приложение в DSL, то используйте собственный компилятор для его преобразования.в работоспособный код для каждой платформы, это, скорее всего, плохая идея, слишком сложная и слишком сложная.
Однако, если у вас есть четко определенный кусок логики, не зависящей от платформы, тогда DSL - хороший выбор.,Просто напишите для него интерпретатор на каждой целевой платформе (при условии, что производительность не критична, это также проще и проще, чем генерация кода).