реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Компилятор С++ в С, Ищу программу!
Вовка_Бызов
сообщение Nov 20 2008, 13:18
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692



Есть у меня прога, написанная на С++. Достаточно мудреная и объемная.. И есть среда, в которой нет компилятора С++, но есть полноценный С.

Не подскажет ли всемогущий олл, где взять кросс-компилятор для получения С-кода из С++. Платформа - близкая к линуксу - но не совсем..

Мне тут советовали какой-то comeau компилятор - но я просто не нашел, откуда его скачать...

help.gif
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Nov 20 2008, 15:48
Сообщение #2


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Полноценной переделки не получится. Классы в структуры, все методы в функции, исключений нет. Оттранслироввать просто не получится из-за идеалогической разницы в языках (IMHO).


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
Вовка_Бызов
сообщение Nov 20 2008, 17:03
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692



Цитата(mdmitry @ Nov 20 2008, 18:48) *
Полноценной переделки не получится. Классы в структуры, все методы в функции, исключений нет. Оттранслироввать просто не получится из-за идеалогической разницы в языках (IMHO).


На самом деле - видиом, не так.. Вот что пишут:

Цитата
Depends on what you mean. If you mean, Is it possible to convert C++ to readable and maintainable C-code? then sorry, the answer is No — C++ features don't directly map to C, plus the generated C code is not intended for humans to follow. If instead you mean, Are there compilers which convert C++ to C for the purpose of compiling onto a platform that yet doesn't have a C++ compiler? then you're in luck


http://www.parashift.com/c++-faq-lite/comp....html#faq-38.13
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 20 2008, 17:10
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



С++ можно рассматривать как расширение С. Соответственно, расширенное никогда не может быть сведено к более узкому варианту.
Go to the top of the page
 
+Quote Post
Вовка_Бызов
сообщение Nov 20 2008, 19:10
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692



Цитата(sergeeff @ Nov 20 2008, 20:10) *
С++ можно рассматривать как расширение С. Соответственно, расширенное никогда не может быть сведено к более узкому варианту.



что я могу сказать?
Цитата
If instead you mean, Are there compilers which convert C++ to C for the purpose of compiling onto a platform that yet doesn't have a C++ compiler? then you're in luck
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 21 2008, 00:30
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Я чего-то не понимаю. Ваши замечания с вопросительными знаками, они к чему? Типа вы уже можете конвертнуть С++ проект в С, а я по серости мозговой утверждаю, что это сделать невозможно?
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Nov 21 2008, 04:16
Сообщение #7


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(sergeeff @ Nov 21 2008, 01:10) *
С++ можно рассматривать как расширение С. Соответственно, расширенное никогда не может быть сведено к более узкому варианту.

Но его можно свести ко множеству хитросплетенных узких вариантов, среди которых черт ногу сломит smile.gif

Цитата(Вовка_Бызов @ Nov 20 2008, 21:18) *
Есть у меня прога, написанная на С++. Достаточно мудреная и объемная.. И есть среда, в которой нет компилятора С++, но есть полноценный С.

А что это за "среда" в которой нет компилятора Си++? Компилятор обычно вещь самостоятельная и не зависящая от среды...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Вовка_Бызов
сообщение Nov 21 2008, 06:48
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692



Цитата(haker_fox @ Nov 21 2008, 07:16) *
А что это за "среда" в которой нет компилятора Си++? Компилятор обычно вещь самостоятельная и не зависящая от среды...

Хех.. Я тоже так думал, когда ваял проект.. Есть такая среда для mips Багет - oc2000 называется.. В общем - ее разработчики принципиально не стали делать компилятор С++. Говорят - они (в отсутствии какого-то удобоваримого стандарта) не могут гарантировать качество компилятора - а потому и делать его не могут...

Хотя в тайне (я так думаю) - они его уже давно сделали.. smile.gif Тока - не дают его официально...

Вот и приходится искать обходные пути.. Блин...

To All:
Так что - нету ни у кого версии компилятора Comeau ?

Цитата(sergeeff @ Nov 21 2008, 03:30) *
Я чего-то не понимаю. Ваши замечания с вопросительными знаками, они к чему? Типа вы уже можете конвертнуть С++ проект в С, а я по серости мозговой утверждаю, что это сделать невозможно?

Хочется стать в позу обиженного? Или - с пеной у рта поспорить о чем-то? Я ведь не свое мнение привел в качестве аргумента. А привел ссылку, где утверждается, что - таки да, можно. Да - текст такого С-кода для человека вряд ли будет понятен, но все же это будет код, который при трансляции будет делать все, что заложено в С++ код.

И бить себя в грудь и говорить, что я все знаю, а чего не знаю - не существует - не надо. Не может человек знать все... Априори. wink.gif
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 21 2008, 06:49
Сообщение #9


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Вовка_Бызов @ Nov 20 2008, 19:18) *
Есть у меня прога, написанная на С++. Достаточно мудреная и объемная.. И есть среда, в которой нет компилятора С++, но есть полноценный С.

Не подскажет ли всемогущий олл, где взять кросс-компилятор для получения С-кода из С++. Платформа - близкая к линуксу - но не совсем..

Мне тут советовали какой-то comeau компилятор - но я просто не нашел, откуда его скачать...

help.gif

Самым первым С++ компилятором был CFront, написанный Б.Страуструпом в процессе разработки языка. Этот компилятор не был полнлоценным С++ компилятором - он умел только входное описание на С++ транслировать в описание на С, а оно уже скармливалось штатным С компиляторам, которых тогда уже было достаточно и неплохого качества. Т.е. по сути CFront был С++ Front-End'ом для С компиляторов, откуда и название.

Вам, я понял, именно такой функционал и нужен. Можно поискать, наверняка можно найти, только вот есть один нюанс - разработка CFront закончилась давно - как только стали появлятся полноценные компиляторы, необходимость в нем отпала. Поэтому по уровню развития фич он должен на сегодняшний день сильно отставать от современных боевых С++ компиляторов. Возможность применения зависит от того, насколько глубоко использует ваша программа возможности языка. Если в ней понатолкано исключений, шаблонов, множественного наследования, то скорее всего будет засада. Кроме того, CFront может сильно отличаться в трактовке правил языка по сравенению с действующим Стандартом (Стандарт от 1998 года, а развитие CFront, AFAIR, завершилось где-то в конце 1980-х).

Может, конечно, есть и современная инкарнация, но я ничего об этом не слышал. Как и о том, чтобы С++ компиляторы умели выдавать генерацию на С.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
msalov
сообщение Nov 21 2008, 07:41
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



C++. Release 3.0.3, AT&T Bell Laboratories, May 1994.
http://www.softwarepreservation.org/projec...dex.html#cfront
http://www.softwarepreservation.org/projec...t/release_3.0.3

Bjarne Stroustrup notes, "A warning that Cfront 3 is pre-standard and emphatically not recommended for use or further development might be in place."
Go to the top of the page
 
+Quote Post
Harbour
сообщение Nov 21 2008, 08:30
Сообщение #11


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



кажись в этой oc2000 заявлена поддержка POSIX и X Window - скорей всего ребята тупо используют какой-нить вариант gcc. Я бы изучил ихний "компилятор только C" и для начала попытался бы заменить его на gcc. просто попробуйте собрать g++ на данной платформе
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 21 2008, 09:53
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Если речь идет о MIPS, то в MSVS2008 есть нормальный С++ компилятор.
Go to the top of the page
 
+Quote Post
Вовка_Бызов
сообщение Nov 21 2008, 10:34
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692



Цитата(Harbour @ Nov 21 2008, 11:30) *
кажись в этой oc2000 заявлена поддержка POSIX и X Window - скорей всего ребята тупо используют какой-нить вариант gcc. Я бы изучил ихний "компилятор только C" и для начала попытался бы заменить его на gcc. просто попробуйте собрать g++ на данной платформе

Уже была попытка. Линкер ругается на некорректный тип объектного файла... Видимо - несоответствие платформы - я использовал g++ для интеля, а тут вроде как mips...
Go to the top of the page
 
+Quote Post
scifi
сообщение Nov 21 2008, 12:27
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Вовка_Бызов @ Nov 21 2008, 13:34) *
Уже была попытка. Линкер ругается на некорректный тип объектного файла... Видимо - несоответствие платформы - я использовал g++ для интеля, а тут вроде как mips...

Вом нужен кросс-компилятор для mips. Называться он должен mips-elf-gcc или вроде того. Можно даже такие слова поискать в гугле. Только вот как линковать код, который он нагенерит, с штатными библиотеками Вашей платформы - это непростой вопрос.
А насчёт компилятора Си++ в Си припоминаю, что Keil сделал для семейства C16x компилятор Си++ именно таким образом (через Си). Причём, если правильно помню, даже накапливал отладочную информацию с привязкой к исходниками на Си++ для высокоуровневой отладки.
Go to the top of the page
 
+Quote Post
amw
сообщение Nov 21 2008, 18:04
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(Вовка_Бызов @ Nov 21 2008, 12:34) *
Уже была попытка. Линкер ругается на некорректный тип объектного файла... Видимо - несоответствие платформы - я использовал g++ для интеля, а тут вроде как mips...

И каково имя файла самого компилятора? mips-elf-gcc? sde-gcc?


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 03:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.0448 секунд с 7
ELECTRONIX ©2004-2016