Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 01:49 13.07.25 
Клубове/ Компютри и Интернет / Програмисти Пълен преглед*
Информация за клуба
Тема Re: В събота вечер се мотая с такъв проект [re: NikB]
Автор Nero ()
Публикувано01.09.04 21:44  



Май малко съм се поотдалечил от типичните "бизнес приложения"... иначе промени има, софтуера трябва да може да се адаптира сравнително безболезнено, и сроковете които ти дават трябва да са разумни. Ако живеем в идеален свят.

Наскоро правихме порт на игри за мобилни телефони от Java (MIDP) към BREW платформа - C++. Java -> C++ порт е неблагодарна работа, а нещата се усложняват още защото BREW няма нишки, и всеки event трябва да върне управлението почти веднага. Логиката на игрите пък беше с една нишка която цикли и показва кадър по кадър, като в началото на цикъла се взима статус за event-ите които са се случили.

Решението мина през framework който реализира:
1. Java string в C++
2. Smart pointer който работи като autoptr в STL - за автоматично управление на паметта. Всички обекти декларирани в Java като локални променливи ги оставяме да се алокират на стека, или в smart pointer който е на стека. Стекът в BREW е ограничен на няколкостотин байта при най-лошите модели, така че smart pointera позволява да слагаме големи обекти и да избягваме излишно копиране.
3. Част от MIDP APIs, така че BREW съвсем заприличва на Java
4. Най-интересното - реализация на coroutines на C. Coroutines са специални процедурни обекти в някои диалекти на Lisp, които позволяват да се прекрати изпълнението в даден момент и управлението да се върне на извикващия... и следващия път да се продължи оттам докъдето сме стигнали. Ако имаш тредове, това може да се емулира с пускане на няколко треда и умното им блокиране и превключване. Ние като нямаме си го правим на C с един голям switch във всеки метод който ще е coroutine, маскиран с макроси....

...

Резултата е че кода от Java вътре в методите се транслира на C почти 1:1, като на някои места се пишат макроси или се правят някои унифицирани конверсии.



Цялата тема
ТемаАвторПубликувано
* Интересни проекти Nero   28.08.04 17:12
. * В събота вечер се мотая с такъв проект NikB   28.08.04 23:35
. * Re: В събота вечер се мотая с такъв проект Nero   01.09.04 21:44
. * Re: TБ   09.06.07 11:15
. * Re: Formal   11.06.07 12:10
. * Лично мнение Syks   31.08.04 10:12
. * Re: Лично мнение Nero   01.09.04 21:11
. * Re: Лично мнение xм   10.06.07 02:39
. * Re: Лично мнение Бaй Oнзи   10.06.07 09:11
. * Re: Интересни проекти Nero   01.09.04 22:06
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.