Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> c++ в java 
:(
    Опции темы
victoria1
Дата 8.9.2012, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.9.2012

Репутация: нет
Всего: нет



имеется консольная программа работающая как под win так и под unix. 
с чего начать перевод исходного кода с c++ на java?
какие инструменты помогут в этом?
вариант писать с нуля не пойдет.
PM MAIL   Вверх
math64
Дата 8.9.2012, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Ну не с нуля - а почти что.
Вствавляешь код из С++ в java и правишь.
Есть компилятор из C в .class + аналог libc, написанный на java - но по-моему, писать так это извращение, только если очень нужно.
PM   Вверх
victoria1
Дата 8.9.2012, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.9.2012

Репутация: нет
Всего: нет



Цитата(math64 @ 8.9.2012,  20:21)
Ну не с нуля - а почти что.
Вствавляешь код из С++ в java и правишь.
Есть компилятор из C в .class + аналог libc, написанный на java - но по-моему, писать так это извращение, только если очень нужно.

а у Вас есть такой опыт ?
в программе более 150 исходных файлов .c 
какой примерный порядок временных затрат на такую задачу?
если можно как точно называются компилятор из C в .class + аналог libc ?
PM MAIL   Вверх
semibug
Дата 8.9.2012, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 27.3.2009

Репутация: нет
Всего: нет



Синтаксис у обоих языков идентичный, что-то можно поиском/заменой/регулярками автоматизировать, остальное руками.
Другое дело, не сломать бы что нибудь. Перед рефакторингом (наверное этот случай можно назвать рефакторингом?), было бы не плохо обложиться тестами.

PM   Вверх
Amp
Дата 8.9.2012, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 3
Всего: 17



Я из темы кстати так и не понял - в заголовке речь идет о C++, дальше упоминается C. Так что за язык-то?
PM MAIL   Вверх
victoria1
Дата 8.9.2012, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.9.2012

Репутация: нет
Всего: нет



Цитата(Amp @ 8.9.2012,  23:16)
Я из темы кстати так и не понял - в заголовке речь идет о C++, дальше упоминается C. Так что за язык-то?

с++
PM MAIL   Вверх
victoria1
Дата 9.9.2012, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.9.2012

Репутация: нет
Всего: нет



исходники с++ и java ведь не совсем структурно совместимы? 
в чем это структурная несовместимость состоит? 
PM MAIL   Вверх
borisbn
Дата 9.9.2012, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(semibug @  8.9.2012,  21:23 Найти цитируемый пост)
Синтаксис у обоих языков идентичный, что-то можно поиском/заменой/регулярками автоматизировать

Вы это серьёзно (см. ниже) ?

Цитата(victoria1 @  9.9.2012,  00:14 Найти цитируемый пост)
исходники с++ и java ведь не совсем структурно совместимы? 
в чем это структурная несовместимость состоит?

ну... например, такой код
Код
class A { ... };
void foo() {
    A a, b;
    a = b;
    int x, y;
    x = y;
}

в Си++ означает, что создаются два экземпляра класса A, а затем один присваивается другому. Затем то же самое делается с int'ами
в Java создаются две ссылки на класс A, а затем одна становится алиасом другой. С интами же всё идентично как в Си.

Это первое, что пришло на ум... там отличий ещё вагон и маленькая тележка. Ну... например, нет "свободных" функций. Если Вы использовали их как предикаты в STL - всё переделывать...


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Amp
Дата 9.9.2012, 11:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 3
Всего: 17



Переписывать с нуля с оглядкой на C++ код. Адресная арифметика, макросы, шаблоны, boost/stl, беззнаковые типы, множественное наследование - все это не переводится в полуавтоматическом режиме (потому что всего этого нет в Java), а вдумчиво переписывается в соответствии с логикой работы кода и какой-то общей структурой приложения.
PM MAIL   Вверх
Dem_max
Дата 9.9.2012, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



как бы Java эмулитор от Sun под виндой кривенько работает, да еще ситему портит, может как то по другому кроссплатформенность реализовать ? 


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
borisbn
Дата 9.9.2012, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(Amp @  9.9.2012,  11:29 Найти цитируемый пост)
шаблоны

Цитата(Amp @  9.9.2012,  11:29 Найти цитируемый пост)
этого нет в Java

да ладно  smile а Generic'и ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Amp
Дата 9.9.2012, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 3
Всего: 17



Цитата(borisbn @  9.9.2012,  12:25 Найти цитируемый пост)
да ладно  smile а Generic'и ? 

Generic-и в Java - это синтаксическая грусть и печаль с последующим type erasure. Потому и на стал упоминать smile Хотя какой-то незамысловатый шаблонный код с плюсов на них можно перенести.
PM MAIL   Вверх
k0rvin
Дата 9.9.2012, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(borisbn @ 9.9.2012,  12:25)
Цитата(Amp @  9.9.2012,  11:29 Найти цитируемый пост)
шаблоны

Цитата(Amp @  9.9.2012,  11:29 Найти цитируемый пост)
этого нет в Java

да ладно  smile а Generic'и ?

Совсем не то же самое.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
bsa
Дата 10.9.2012, 00:28 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(victoria1 @  8.9.2012,  21:00 Найти цитируемый пост)
с чего начать перевод исходного кода с c++ на java?
С изучения обоих языков
Цитата(victoria1 @  8.9.2012,  21:00 Найти цитируемый пост)
какие инструменты помогут в этом?
/head/brain и /body/hands
Цитата(victoria1 @  8.9.2012,  21:00 Найти цитируемый пост)
вариант писать с нуля не пойдет. 
значит забудь эту идею, как страшный сон. Займись чем-нибудь другим.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0833 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.