Какие языки совместимы с C++?

Есть ли ещё языки которые совместимы с C++ кроме C?
  • Вопрос задан
  • 745 просмотров
Решения вопроса 1
@MarkusD Куратор тега C++
все время мелю чепуху :)
Судя по комментариям к ответам, у тебя формулировка вопроса не соответствует твоим ожиданиям.
Совместимость языков - это тонкий маршалинг типов и совместная линковка в один бинарный файл.
Этим условиям, в разной степени, удовлетворяют: C, asm, D, C#, Java. Может быть еще какие-то языки. При этом, у каждого языка верхнего уровня будут свои требования к маршалингу типов и передаче управления.

Тебя же интересуют встраиваемые языки.

Взять, например, D. Он полностью совместим с C++. Однако, его требования не позволяют простую линковку объектных файлов C++ и D в один бинарный файл. На C++ или должен быть создан D Runtime (что не так просто сделать), или C++ код должен линковаться в бинарник на D, в качестве Better C++. Т.е. получается наоборот, в базе будет D, а C++ его только расширяет.
С питоном и Java все точно так же. C# вообще работает с библиотеками классов, написанными на C++/Cx, т.е. на модифицированном C++.
Эти языки не являются встраиваемыми. Их возможности расширяются за счет использования C++.

Хорошим ответом на твой вопрос будет вот такой список встраиваемых языков. Из этого списка можно брать любой язык, ядро которого написано на C или C++.
Мой личный выбор - это AngelScript и Lua/Terra.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Смотря что вы имеете в виду.

В C# можно использовать PINVOCE
В Java, Python, PHP, Perl, VBS и прочих можно вызвать экспортируемую функцию, что и делают.
В конце концов если нет стандартных механизмов можно вызвать Exec или Call и просто выполнять код ловя статус выхода процесса и парся его логи.
Ответ написан
Нет
Ответ написан
Комментировать
@Encoders
Вроде как в cpp можно вызывать assembler код
Ответ написан
Комментировать
@VadimKholodilo
Читайте про межпроцессное взаимодействие
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы