При генерации кода, какой язык вы должны генерировать? - PullRequest
6 голосов
/ 25 февраля 2009

Я работал над несколькими продуктами, которые используют генерацию кода. Похоже, что это единственный способ достичь высокой степени настраиваемости пользователем и высокой скорости выполнения.

Недостатком является то, что мы требуем, чтобы пользователи устанавливали компилятор (главным образом в MS Windows).

Это постоянная головная боль, потому что такие производители, как MS, продолжают устаревать компиляторы, а некоторые пользователи, как правило, устанавливают более одного компилятора.

Мы рассматриваем возможность использования GNU C и, возможно, C ++, но даже там есть постоянные проблемы с версиями.

Я рассмотрел возможность создания языка ассемблера, чтобы отделаться от версии компилятора-беговой дорожки, но все языки ассемблера зависят от компьютера.

В идеале был бы какой-то способ создания сгенерированного кода, который был бы гибким, быстрым и не подвергал бы нас прихотям сторонних поставщиков.

Может быть, я пропускаю что-то простое, например, Java. Любые идеи были бы хорошы. Спасибо.

Ответы [ 12 ]

1 голос
/ 25 февраля 2009

Почему бы не использовать что-то вроде SpiderMonkey или Rhino (поддержка JavaScript в Java или C ++). Вы можете экспортировать ваши объекты в пространства имен JavaScript, и вашим пользователям не нужно ничего компилировать.

1 голос
/ 25 февраля 2009

Я бы придерживался того языка, который вы используете для создания этого языка. Вы можете генерировать и компилировать код Java в Java, код Python в Python, C # в C # и даже Lisp в Lisp и т. Д.

Но не ясно, достаточно ли быстры для вас такие языки. Для максимальной скорости я бы выбрал генерацию C ++ и использование GCC для компиляции.

...