Re[2]: Кросплатформеность на уровне исходников
От: WolfHound  
Дата: 11.05.11 11:30
Оценка:
Здравствуйте, AlexCab, Вы писали:

AC>В общем на сколько я понял, есть два пути:

AC>1.ВМ, в ущерб эфиктивности кода.
AC>2.При помощи зависимых библиотек, он без возможности обратного переноса(со старшей на младшую платформу(с 64 на 32)).
AC>Поправте если не прав.

Портируемость программы определяется свойствами языка.
ВМ или не ВМ это лишь детали реализации.
Тем более что грань между ВМ и не ВМ крайне размытая.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Кросплатформеность на уровне исходников
От: AlexCab LinkedIn
Дата: 11.05.11 11:58
Оценка:
Здравствуйте, WolfHound, Вы писали:
WH>Портируемость программы определяется свойствами языка.
WH>ВМ или не ВМ это лишь детали реализации.
Может всё таки свойствами среды в которой будет работать программа?

WH>Тем более что грань между ВМ и не ВМ крайне размытая.

Аргументируйте.
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re[5]: Кросплатформеность на уровне исходников
От: мыщъх США http://nezumi-lab.org
Дата: 11.05.11 12:36
Оценка:
Здравствуйте, AlexCab, Вы писали:

AC>Здравствуйте, мыщъх, Вы писали:

М>>какого типа переполнения, интересно? все работает. то есть, конечно, проблемы есть, но не у си, а у тех, кто не умеет его готовить.
AC>Умеющих мало, но думаю даже те кто умеют, будут рады помощи со стороны IDE/компилятора.
а чем ide может помочь?


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

М>>однако... программу откомпилировали на 64 бит маке и на 64 бит никсах. и даже древний код работает без переделок, где куча конструкций вида *((unsigned int*)p) == 0x11223344. конечно, так писать нельзя, но когда оно писалось, то предполагалось, что кросс-платформенности не требуется. тем более что оно работает на куче платформ без переделок.
AC>С 32 на 64 понятно, а наоборот?
наоборот -- тоже.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[6]: Кросплатформеность на уровне исходников
От: AlexCab LinkedIn
Дата: 11.05.11 12:44
Оценка:
Здравствуйте, мыщъх, Вы писали:
М>>>какого типа переполнения, интересно? все работает. то есть, конечно, проблемы есть, но не у си, а у тех, кто не умеет его готовить.
AC>>Умеющих мало, но думаю даже те кто умеют, будут рады помощи со стороны IDE/компилятора.
М>а чем ide может помочь?
Подсказать опасные места, например.

AC>>С 32 на 64 понятно, а наоборот?

М>наоборот -- тоже.
Аргументируйте.
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re[3]: Кросплатформеность на уровне исходников
От: IT Россия linq2db.com
Дата: 11.05.11 13:15
Оценка:
Здравствуйте, AlexCab, Вы писали:

IT>>Что понимается под виртуальной машиной?

AC>JVM, .NET, etc.

Насколько мне известно, в обоих платформах, после джита получается вполне себе нативный код.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Кросплатформеность на уровне исходников
От: AlexCab LinkedIn
Дата: 11.05.11 15:45
Оценка:
Здравствуйте, IT, Вы писали:
IT>>>Что понимается под виртуальной машиной?
AC>>JVM, .NET, etc.
IT>Насколько мне известно, в обоих платформах, после джита получается вполне себе нативный код.
Оно то так, но когда программист пишет программу он ориентируется на определённую платформа(среду), реальную(как например программисты С++) или виртуальную(построенную над реальной).
Код писанный для виртуальной платформы в большинстве случаев будет менее эфективен чем написанный для реальной(даже с JIT).
Виртуальная платформа ограждает программиста от деталей реальной, (в частности от необходимости заботится о разрядности(32/64) реальной) таким образом обеспечивая кросплатформеность программы.
Мой вопрос в том, можно ли избавить программиста пишущего под реальную платформу, от необходимости думать о разрядности этой платформы, например чтобы он мог написать скажем библиотеку или
компонент и затем мог использовать её как в 32 разрядных так и 64 разрядных приложениях.
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re[3]: Кросплатформеность на уровне исходников
От: Privalov  
Дата: 19.05.11 05:51
Оценка:
Здравствуйте, AlexCab, Вы писали:

AC>Переносимость языка это кошено хорошо, но переносимость программ писаных на нём(а не только отдельных библиотек), лучше.


Речь как раз и идет о переносимости программ, написанных на FORTRAN-е. Я уже как-то писал тут о том, как переносил фортрановские исходники с платформы на платформу. Писать их начали еще в 70-е годы в ОС ЕС, а в конце 90-х я их в NT 4 и в полуоси запускал. В UNIX их уже без меня переносили. Только в MS DOS была проблема, связанная с сегментацией памяти, там пришлось к объявлениям массивов добавить атрибут HUGE.
Re[4]: Кросплатформеность на уровне исходников
От: SleepyDrago Украина  
Дата: 19.05.11 08:40
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Здравствуйте, AlexCab, Вы писали:


AC>>Переносимость языка это кошено хорошо, но переносимость программ писаных на нём(а не только отдельных библиотек), лучше.


P>Речь как раз и идет о переносимости программ, написанных на FORTRAN-е. Я уже как-то писал тут о том, как переносил фортрановские исходники с платформы на платформу. Писать их начали еще в 70-е годы в ОС ЕС, а в конце 90-х я их в NT 4 и в полуоси запускал. В UNIX их уже без меня переносили. Только в MS DOS была проблема, связанная с сегментацией памяти, там пришлось к объявлениям массивов добавить атрибут HUGE.

Мне доводилось беседовать с менеджером тех кто статистику на мак переносил. Вот он фортран запомнил так запомнил Все дело в размере наверное.
Re[5]: Кросплатформеность на уровне исходников
От: Privalov  
Дата: 19.05.11 08:49
Оценка:
Здравствуйте, SleepyDrago, Вы писали:

SD>Мне доводилось беседовать с менеджером тех кто статистику на мак переносил. Вот он фортран запомнил так запомнил Все дело в размере наверное.


Интересно, что там такого было в том переносе? Я практически с проблемами не сталкивался. В самом Фортране хватает граблей, но ведь переписывать код не нужно, а потому все грабли остаются нетронутыми. FORTRAN IV поддерживали все компиляторы, которые я видел.
Re[2]: Кросплатформеность на уровне исходников
От: B0FEE664  
Дата: 19.05.11 10:46
Оценка:
Здравствуйте, AlexCab, Вы писали:

AC>>Как вы думаете, возможна ли полноценная кросплатформеность(в частности между 32 и 64 битными платформами), на уровне исходного текста(с перекомпиляцией но без измения исходного текста), без виртуальной машины(native)?

AC>В общем на сколько я понял, есть два пути:
AC>1.ВМ, в ущерб эфиктивности кода.
AC>2.При помощи зависимых библиотек, он без возможности обратного переноса(со старшей на младшую платформу(с 64 на 32)).
AC>Поправте если не прав.

Есть ещё два пути
3. Эмуляция одной машины внутри другой.
4. Прямая трансформация native кода одной платформы в native код другой.

А вообще говоря, если стандарт языка не привязан к конкретной платформе, на платформах есть компиляторы поддерживающие стандарт и программа написана в соответствии со стандартом — то какие проблемы ?
И каждый день — без права на ошибку...
Re[6]: Кросплатформеность на уровне исходников
От: SleepyDrago Украина  
Дата: 19.05.11 12:45
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Здравствуйте, SleepyDrago, Вы писали:


SD>>Мне доводилось беседовать с менеджером тех кто статистику на мак переносил. Вот он фортран запомнил так запомнил Все дело в размере наверное.


P>Интересно, что там такого было в том переносе? Я практически с проблемами не сталкивался. В самом Фортране хватает граблей, но ведь переписывать код не нужно, а потому все грабли остаются нетронутыми. FORTRAN IV поддерживали все компиляторы, которые я видел.


дело было интел — неинтел. Фортран на маках тогда был убитый совсем. А тот что на букву Г тогда был еще совсем не промышленный. У них там были приколы что отладка на границе си-фортран умирала тк символы были в разных системах и отладчик, который они использовали понимал только сишные.
Re[2]: Кросплатформеность на уровне исходников
От: 24  
Дата: 19.05.11 16:15
Оценка:
Здравствуйте, AlexCab, Вы писали:

AC>1.ВМ, в ущерб эфиктивности кода.


Как здесь помогает виртуальная машина? При выполнении же всё равно генерится машинный код. Какая разница, получать машинный код непосредственно перед исполнением (jit), или предварительно скомпилив всю программу?
Re: Кросплатформеность на уровне исходников
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 20.05.11 00:46
Оценка:
Здравствуйте, AlexCab, Вы писали:

AC>Как вы думаете, возможна ли полноценная кросплатформеность(в частности между 32 и 64 битными платформами), на уровне исходного текста(с перекомпиляцией но без измения исходного текста), без виртуальной машины(native)?

AC>Спасибо.

Что касается 32/64, то такая переносимость объективно существует (в обе стороны), потому вопрос о возможности, я полагаю, можно снять. Гораздо сложнее обеспечить переносимость имея в виду необходимость использования API, специфичных для целевых платформ (Windows, Unix, ...).
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[2]: Кросплатформеность на уровне исходников
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 20.05.11 00:56
Оценка:
Здравствуйте, AlexCab, Вы писали:

AC>В общем на сколько я понял, есть два пути:

AC>1.ВМ, в ущерб эфиктивности кода.

Вообще говоря, почти для любого языка определяется такая штука, как "исполняющая машина": Фортран-машина, Паскаль-машина, Лисп-машина и т.п. ВМ как отдельный программный комплекс — одна из возможных реализаций исполняющей машины, не более того. В каком-то смысле стандартная библиотека C — тоже ВМ.

AC>2.При помощи зависимых библиотек, он без возможности обратного переноса(со старшей на младшую платформу(с 64 на 32)).


Кто на ком стоял? Если зависимые (ты имеешь в виду платформозависимые?) библиотеки предлагают одинаковый интерфейс, будучи скомпилированными на разных платформах, то возможность переноса никуда не девается. Собственно, простейший пример:

int n = 10;
printf("%d\n", n);


Одинаково работает везде, где встречается компилятор C. При этом совершенно не важно, где именно была написана такая программа: на 32-, на 64-, да хоть на 48-битной машине.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.