про / минусы:
Из всего вышесказанного я думаю, что нацеливание на Java ByteCode, вероятно, будет лучшим для вас.
РЕДАКТИРОВАТЬ: на самом деле ответ на комментарий, но 300 знаков недостаточно.
JByteCode iffy - я согласен (будучи Smalltalker, JBytecode слишком ограничивает меня).
В отношении VM, я думаю, что есть относительно широкий диапазон производительности, которую вы можете получить как JVM, начиная с чисто медленных интерпретаторов байт-кода и заканчивая сложными виртуальными машинами JITting (IBM). Я предполагаю, что виртуальные машины CLR наверстают упущенное, поскольку MS в любом случае рано или поздно крадет и интегрирует все инновации, а методы ускорения динамического перевода публикуются (см., Например, статьи Self). LLVM, вероятно, будет прогрессировать немного медленнее, но кто знает. С C вы получите бесплатные улучшенные компиляторы, но такие вещи, как динамическая ретрансляция и т. Д., Трудно реализовать с C в качестве цели. Моя собственная система использует смесь предварительно скомпилированного и динамически скомпилированного кода (имеющего все: медленный интерпретатор байт-кода, JITter и предварительно скомпилированный статический C-код в одном пространстве памяти).