Насколько возможна совместимость между C ++ и Scala? - PullRequest
9 голосов
/ 12 августа 2011

Все знают о Java и Scala, но насколько совместима между C ++ и Scala. Могут ли классы из одного быть использованы другим, например?

Ответы [ 3 ]

21 голосов
/ 12 августа 2011

Это не так просто. Java и Scala работают на одной и той же виртуальной машине, а Scala хорошо работает с Java.

C ++ генерирует собственный код, и даже у каждого компилятора есть свой собственный способ генерации этого собственного кода. Это означает, что некоторый класс, скомпилированный с помощью Visual Studio, не будет легко взаимодействовать с другим классом, скомпилированным с помощью gcc.

Если вам нужно взаимодействовать с C ++, вам нужно использовать клей с JNI http://en.wikipedia.org/wiki/Java_Native_Interface. Я считаю, что использовать его с Scala должно быть просто. Вы можете сделать взаимодействие несколько более удобным, используя Swig http://www.swig.org/

1 голос
/ 12 августа 2011

Я бы проверил JNAerator .Он строит мосты из заголовочных файлов C / C ++ / Obj-C к интерфейсам Java.

1 голос
/ 12 августа 2011

Чтобы сделать этот тип взаимодействия даже возможным, обе реализации должны компилироваться для одного и того же промежуточного языка (например, байт-код Java, .Net IL, LLVM).Scala.Net и C ++ / CLI - наиболее близкая комбинация - обе создают код для .Net.Но даже тогда это не так просто, поскольку класс в Scala и класс в C ++ обозначают несколько разные вещи.

Как правило, Scala обозначает Scala для Java VM, а C ++ обозначает C ++ для собственного кода, поэтомуОбщий ответ должен быть «не намного больше, чем между любыми двумя другими случайно выбранными языками».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...