LINUX.ORG.RU

>Какие существуют GPL-компиляторы из C++ в java или в .Net? Какие у них основные проблемы?

Глупости не пишите.

Sancho_s_rancho
()

Кросс-компиляция - сборка под другую архитектуру.

А это:

>из C++ в java или в .Net?

Ерунда какая-то.

anonymous
()

вроде был проект добавления в c++ backend для генерации .NET кода
не знаю на какой он стадии

anonymous
()
Ответ на: комментарий от anonymous

> Ерунда какая-то.

Это не ерунда. Это именно кросс-компиляция, а в качестве целевой архитектуры - виртуальная машина.

anonymous
()
Ответ на: комментарий от anonymous

> а в качестве целевой архитектуры - виртуальная машина.

сами то поняли что за фигню написали?

виртаульная машина не является отдельной архитектурой

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

>сами то поняли что за фигню написали?

Переадресую вопрос вам.

>виртаульная машина не является отдельной архитектурой

Что мешает реализовать ее в железе? Никогда на слышали про аппаратные Smalltalk- и Lisp-машины? Что мешает исполнять на виртуальной машине опкоды реальной железной? Никогда не слышали про QEMU?

И где грань? Отвечу: ее нет.

anonymous
()
Ответ на: комментарий от anonymous

сообщите более правильное название этой штуки

serra
() автор топика
Ответ на: комментарий от anonymous

qemu не является отдельной архитектурой, а всего лишь реализует

ia32
amd64
sparc
mips и то что там еще есть, а вот "архитектура qemu" - бред полнейший

точно также как топикстартер путает кросс компилятор ( компилятор для другой архитектуры ) с конвертором кода (с одного языка на другой)

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

> "архитектура qemu" - бред полнейший

Ну так о ней никто и не говорил. А реализовать в qemu поддержку несуществующей архитектуры вполне возможно, qemu для этого и предназначен отчасти.

P.S. кстати, TCG можно при желании считать "архитектурой qemu" ;)

tailgunner ★★★★★
()
Ответ на: комментарий от Sylvia

Ну хорошо, топикстартера интересует компилятор jvm-байткода из C-исходников.

google://C+to+java

true_admin ★★★★★
()
Ответ на: комментарий от Sylvia

>qemu не является отдельной архитектурой, а всего лишь реализует

У вас проблемы с пониманием письменной речи. Никто qemu отдельной архитектурой не называл, она была приведена как пример программной реализации "настоящих" архитектур, как вы их называете.

И то что просит автор, не обязано быть конвертором в язык (например в Java). Речь идет о генерации байт-кода для платформы Java. Чем это отличается от генерации машинного кода?

anonymous
()

LLVM-подобную штуку он хочет скорее всего.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от anonymous

>Чем это отличается от генерации машинного кода?

повышением уровня.

прога на .net имеет более высокий уровень абстракции, чем прога на c++.

это то же самое, что гнать бинарники в исходники паскаля.

xydo ★★
()
Ответ на: комментарий от xydo

>прога на .net имеет более высокий уровень абстракции, чем прога на c++.

И прямо таки? Если мы генерируем MSIL?

>это то же самое, что гнать бинарники в исходники паскаля.

Кривая анология - такая кривая.

anonymous
()
Ответ на: комментарий от Sancho_s_rancho

> Это просто у вас в голове насрано.

Это говорит человек, который не представляет, как компилировать ЯВУ не в машкод, а в байткод виртуальной машины? Смешно.

anonymous
()
Ответ на: комментарий от anonymous

Правильно поставленный вопрос - половина ответа.

Cargo
()
Ответ на: комментарий от anonymous

> У вас проблемы с пониманием письменной речи

У 99% человечишек проблемы с пониманием конструкций из более чем трёх слов. Так что это нормально.

> Речь идет о генерации байт-кода для платформы Java. Чем это отличается от генерации машинного кода?

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

anonymous
()
Ответ на: комментарий от xydo

> прога на .net имеет более высокий уровень абстракции, чем прога на c++.

Мсье идиот?

anonymous
()
Ответ на: комментарий от anonymous

> Ничем. Просто исторически сложилось, что компиляторы под виртуальные машины кросскомпиляторами не называют - по одной простой причине - скомпилированный код может быть немедленно исполнен.

Не спорю. Именно это, собственно, я и сообщил первым комментарием, однако затем взглянул на проблему под другим углом.

anonymous
()
Ответ на: комментарий от anonymous

>> Ерунда какая-то.

>Это не ерунда. Это именно кросс-компиляция, а в качестве целевой архитектуры - виртуальная машина.

это может быть реализовано как кросс-компиляция, но...

С++ рассчитан на абстрактную машину с плоским адресным пространством и указателями. Ява и .нет не предоставляют такой абстрактной машины.

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

// www_linux_org_ru, влом пароль вспоминать

anonymous
()
Ответ на: комментарий от anonymous

>С++ рассчитан на абстрактную машину с плоским адресным пространством и указателями. Ява и .нет не предоставляют такой абстрактной машины.

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

Необязательно. Можно, например, всего лишь гарантировать побайтовый доступ к любой области памяти под существующими объектами и к динамически выделяемой памяти. Все прочие указатели будут просто недействительными, что и неплохо.

anonymous
()
Ответ на: комментарий от anonymous

>Необязательно. Можно, например, всего лишь гарантировать побайтовый доступ к любой области памяти под существующими объектами и к динамически выделяемой памяти. Все прочие указатели будут просто недействительными, что и неплохо.

Думаю, не прокатит. Хотя бы как ты сделаешь placement new & union?

// www_linux_org_ru

anonymous
()

gcc-cil, CIL, IKVM, ikvmc, ikvm.net, JamVM, CECIL

сейчас не помню ссылку (статья была на грохнувшемся винте) -- что-то было в направлении LLVM/Ch/ANTLR про средство для трансформации исходников на С++. Что-то вроде CECIL -- там С++ транслировался в CIL, потом на ANTLR (ЕМНИП) парсер его разбирал.

anonymous
()
Ответ на: комментарий от anonymous

ещё недавно в новостях было про C++ компилятор в флешЪ (в ActionScript-байткод) , им даже кваку с думой собирали.. что-то на основе LLVM, можно например им собрать, а потом уже этот флеш-байткод конвертировать в JVM (google http://www.openlaszlo.org/ и т.п.)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.