наскільки життєздатним є перенесення програми C ++ на байт-код Java за допомогою LLVM (я думаю, LLJVM)?
Річ у тім, що в даний час у нас є процес, написаний на C ++, але новий клієнт зробив обов'язковим для того, щоб мати змогу запускати програму в декількох платформах , використовуючи віртуальну машину Java без явного коду (без JNI). Ідея полягає в тому, щоб мати можливість взяти створений jar і скопіювати його в різні системи (Linux, Win, 32 біти - 64 біти), і це повинно просто працювати.
Озирнувшись, схоже, можна компілювати C ++ до ІК-коду LLVM, а потім цей код - байт-код Java. Немає необхідності у створеному коді для читання.
Я трохи перевірив подібні речі за допомогою emscripten, для цього потрібен код C ++ і компілюється в JavaScript. Результат дійсний JS, але абсолютно нечитабельний (схожий на Assambler).
- Хтось робив порт програми з C ++ до байт-коду Java, використовуючи цю техніку?
- З якими проблемами ми могли б зіткнутися?
- Чи правильний підхід до виробничого коду?
Щоб зробити більш чітким свою думку після деяких коментарів, можливо, порт не використовується належним чином, я не очікую, що в результаті читається вихідний код, просто байт-код Java, тому це вже не "порт", який буде розроблятися вже більше, тільки що цільовою платформою повинен бути java JVM, а не рідний ассимблер.
Примітка. Я знаю, що в даний час у нас є кілька нестандартних C ++ і бібліотек із закритим вихідним кодом, ми прагнемо видалити цей нестандартний код і всі бібліотеки з закритим вихідним кодом та використовувати Free Libre Open Source Software, тому припустимо, що весь код є стандартним кодом C ++ з весь код, наявний під час компіляції.
Примітка2: Неможливо написати портативний код C ++, а потім компілювати його до потрібної цільової платформи, складена програма повинна бути багатоплатформою, таким чином, використання JVM.
Примітка3: Зараз ми не розглядаємо подібні рішення, застосовані до Python або іншої мовної бази, але я також хотів би почути про це. З цього я маю на увазі, що нашим цільовим виконуваним файлом повинен бути байт-код Java, але якщо є варіанти для компіляції C ++ до дійсного компільованого python-коду, я також хотів би почути про них.