Re[3]: C++ и Assembler
От: vayerx  
Дата: 28.08.08 08:01
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, Геннадий Майко, Вы писали:

ГМ>>Знать ассемблер того процессора, для которого пишутся программы, весьма полезно. Писать на этом ассемблере не стоит.
ГМ>>Знание ассемблера — это еще одна степень свободы для программиста при решении инженерных задач.

СМ>это еще одна степень зашоренности, ты намертво привязываешь реализацию к к процессору.


не соглашусь — коренным образом зависит от задачи. безусловно, в большинстве случаев, от процессора можно и нужно абстрагироваться
Re[3]: C++ и Assembler
От: Геннадий Майко США  
Дата: 28.08.08 08:14
Оценка: 3 (1) +1
Здравствуйте, Сергей Мухин,

ГМ>>Знание ассемблера — это еще одна степень свободы для программиста при решении инженерных задач.


СМ>это еще одна степень зашоренности, ты намертво привязываешь реализацию к к процессору.

--
Я бы сказал — к семейству процессоров. Потому что производители как general-purpose, так и специализированных процессоров, все таки поддерживают преемственность. Это резко снижает уровень моей зашоренности

К таким ситуациям я отношусь прагматично. Если решение конкретной инженерной задачи оказывается намертво привязанной к конкретному процессору, я не вижу здесь ничего страшного (в подтверждение своих слов рискну предложить прочитать заметку "A Computer for the Clouds" в последнем номере IEEE Spectrum о разработке очень специализированных суперкомпьютеров для решения очень специализированных задач, причем и стоимость и потребление энергии, по сравнению с general-purpose, уменьшается как минимум на порядок).

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

C уважением,
Геннадий Майко.
Re[4]: C++ и Assembler
От: vayerx  
Дата: 28.08.08 08:16
Оценка:
Здравствуйте, valheru, Вы писали:

V>Разумеется, почти все пишется на С++. Но отдельные места оптимизируются с помошью векторых команд (MMX/SSE/Altivec).


intrinsics?
Re[4]: C++ и Assembler
От: Сергей Мухин Россия  
Дата: 28.08.08 08:25
Оценка:
Здравствуйте, Геннадий Майко, Вы писали:

ГМ>К таким ситуациям я отношусь прагматично. Если решение конкретной инженерной задачи оказывается намертво привязанной к конкретному процессору, я не вижу здесь ничего страшного (в подтверждение своих слов рискну предложить прочитать заметку "A Computer for the Clouds" в последнем номере IEEE Spectrum о разработке очень специализированных суперкомпьютеров для решения очень специализированных задач, причем и стоимость и потребление энергии, по сравнению с general-purpose, уменьшается как минимум на порядок).


бред какой-то. мы говорим о простом С++ и ассемблере а не о специальных машин! Более того в статье НИЧЕГО не сказано пишут ли они на ассемблере!

ГМ>IMHO, лучше таки-да решить задачу, чем отказаться ее рашать вообще из-за опасений возможной непереносимости решения.


ИМHO тут ТЗ рулит, и если требуется ассемблер, то никто и не спорит, но в 99.999% он не нужен вообще.


ГМ>C уважением,

ГМ>Геннадий Майко.
---
С уважением,
Сергей Мухин
Re[5]: C++ и Assembler
От: CreatorCray  
Дата: 28.08.08 08:45
Оценка:
Здравствуйте, vayerx, Вы писали:

V>intrinsics?

далеко не все покрыто intrinsic-ами
к примеру shrd shld инструкции.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: C++ и Assembler
От: CreatorCray  
Дата: 28.08.08 08:45
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>бред какой-то. мы говорим о простом С++ и ассемблере

Что такое "простой С++" я еще могу представить. Думаю что подразумевается С++ 100% соответствующий стандарту.
Но что такое простой ассемблер — это как то непонятно. Ассемблер сам по себе всегда привязан к процессору.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: C++ и Assembler
От: Геннадий Майко США  
Дата: 28.08.08 08:51
Оценка:
Здравствуйте, Сергей Мухин,

ГМ>>К таким ситуациям я отношусь прагматично. Если решение конкретной инженерной задачи оказывается намертво привязанной к конкретному процессору, я не вижу здесь ничего страшного (в подтверждение своих слов рискну предложить прочитать заметку "A Computer for the Clouds" в последнем номере IEEE Spectrum о разработке очень специализированных суперкомпьютеров для решения очень специализированных задач, причем и стоимость и потребление энергии, по сравнению с general-purpose, уменьшается как минимум на порядок).


СМ>бред какой-то.

--
К чему относятся эти Ваши слова?

СМ>мы говорим о простом С++ и ассемблере а не о специальных машин! Более того в статье НИЧЕГО не сказано пишут ли они на ассемблере!

--
Похоже, Вы не поняли аналогии. Ничего страшного в этом нет.


ГМ>>IMHO, лучше таки-да решить задачу, чем отказаться ее рашать вообще из-за опасений возможной непереносимости решения.


СМ>ИМHO тут ТЗ рулит, и если требуется ассемблер, то никто и не спорит, но в 99.999% он не нужен вообще.

--
Обратите внимание, что с самом первом моем сообщении я как раз и призывал не писать на ассемблере, а использовать его тогда, когда он может быть полезным.

С уважением,
Геннадий Майко.
Re[6]: C++ и Assembler
От: Сергей Мухин Россия  
Дата: 28.08.08 08:56
Оценка:
Здравствуйте, Геннадий Майко, Вы писали:

ГМ>К чему относятся эти Ваши слова?


они написаны сразу за текстом, к которым относятся.

СМ>>мы говорим о простом С++ и ассемблере а не о специальных машин! Более того в статье НИЧЕГО не сказано пишут ли они на ассемблере!

ГМ>--
ГМ>Похоже, Вы не поняли аналогии. Ничего страшного в этом нет.

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

ГМ>>>IMHO, лучше таки-да решить задачу, чем отказаться ее рашать вообще из-за опасений возможной непереносимости решения.


СМ>>ИМHO тут ТЗ рулит, и если требуется ассемблер, то никто и не спорит, но в 99.999% он не нужен вообще.

ГМ>--
ГМ>Обратите внимание, что с самом первом моем сообщении я как раз и призывал не писать на ассемблере, а использовать его тогда, когда он может быть полезным.

ну я не держу в голове все сообщения. сорри.

в общем сошлись, что без веских причин не надо пользоваться ассемблером.
---
С уважением,
Сергей Мухин
Re[7]: C++ и Assembler
От: Геннадий Майко США  
Дата: 28.08.08 10:03
Оценка:
Здравствуйте, Сергей Мухин,

СМ>>>мы говорим о простом С++ и ассемблере а не о специальных машин! Более того в статье НИЧЕГО не сказано пишут ли они на ассемблере!

ГМ>>--
ГМ>>Похоже, Вы не поняли аналогии. Ничего страшного в этом нет.

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

--
Да, виноват. Вот ссылка, которая будет самой первой в списке, выдаваемой google на поиск полного названия статьи.


СМ>в общем сошлись, что без веских причин не надо пользоваться ассемблером.

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

С уважением,
Геннадий Майко.
Re[8]: C++ и Assembler
От: Сергей Мухин Россия  
Дата: 28.08.08 10:05
Оценка:
Здравствуйте, Геннадий Майко, Вы писали:


ГМ>Да, это хороший итог нашей дискуссии.



ГМ>Более того, это даже косвенно потдверждает и мое предложение таки да изучать язык ассемблера. Ведь если я не знаю языка ассемблера, как же я могу его иногда, как Вы согласились, использовать?


лучше C# или Java быстрей пригодиться
---
С уважением,
Сергей Мухин
Re[9]: C++ и Assembler
От: Геннадий Майко США  
Дата: 28.08.08 10:39
Оценка: :)))
Здравствуйте, Сергей Мухин,

СМ>лучше C# или Java быстрей пригодиться

--
Свят, свят, упаси Боже... Это не ко мне

С Уважением,
Геннадий Майко.
Re: C++ и Assembler
От: EyeOfHell Россия eyeofhell.habr.ru
Дата: 28.08.08 13:43
Оценка: +1

насколько хоророшо C++ программист должен знать Assembler?


Могу ошибаться, но на мой взгляд зависит от области деятельности. Реверсер — великолепно, GUI'шник вообще может не знать .

Как часто вы используете asm в своей работе?


Много лет назад, когда трава была зеленее а заклятья сильнее, я очень хорошо знал ассемблер. Писал на нем 3д движки и 4к демо.

А за последние 10 лет программирования на С++ подо все что движется — забыл напрочь . Тоесть конечно если я что-то уроню в WinDbg, то приблизительно пойму что там в коде происходит. Но с первого взгляда стека не увижу и аргументов функции не определю . Да и инструкций незнакомых много будет. Не используется ассемблер .
Re[4]: C++ и Assembler
От: Pavel Dvorkin Россия  
Дата: 29.08.08 04:46
Оценка: +1
Здравствуйте, Сергей Мухин, Вы писали:

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


И кого ты будешь вызывать, если не можешь разобраться, почему падает вызов некой функции, исходников которой у тебя нет ? А между тем, иногда помогвет элементарная трассировка входа в функцию, после чего становится ясно, что ты ей банально передал что-то не то.
With best regards
Pavel Dvorkin
Re[3]: C++ и Assembler
От: Pavel Dvorkin Россия  
Дата: 29.08.08 04:48
Оценка:
Здравствуйте, vayerx, Вы писали:

V>Был у меня один коллега "старой закалки", гуру. За пару недель он написал на ассемблере функцию, вручную развернул все циклы, использование всех юнитов рассчитал, кэш учел. Эта же функция на с++ (с использованием интринсиков, разумеется) работала с такой же скоростью, а после добавления платформенно-специфичных прагм, даже быстре процентов на 20.


Я тоже "старой закалки", хоть и не гуру. И лет 10 назад мы с коллегой писали нечто подобное. На ассемблере с использованием MMX регистров. В результате это работало раза в 1.5 быстрее, чем C++ код.
With best regards
Pavel Dvorkin
Re[4]: C++ и Assembler
От: Pavel Dvorkin Россия  
Дата: 29.08.08 04:52
Оценка:
Здравствуйте, Геннадий Майко, Вы писали:

ГМ>К таким ситуациям я отношусь прагматично. Если решение конкретной инженерной задачи оказывается намертво привязанной к конкретному процессору, я не вижу здесь ничего страшного


Если решение некоей задачи привязано к ОС Windows (а это сплошь и рядом), то фактически это та же привязка к процессору (не учитывая Itanium, который мало кто видел), Windows == x86/x64
With best regards
Pavel Dvorkin
Re[9]: C++ и Assembler
От: Pavel Dvorkin Россия  
Дата: 29.08.08 04:54
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>лучше C# или Java быстрей пригодиться


Кому ? Абстрактному начинающему программисту или все же программисту на C++ ? Если второму (а о нем здесь вроде идет речь) — вряд ли
With best regards
Pavel Dvorkin
Re[5]: C++ и Assembler
От: Сергей Мухин Россия  
Дата: 29.08.08 05:52
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

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


PD>И кого ты будешь вызывать, если не можешь разобраться, почему падает вызов некой функции, исходников которой у тебя нет ? А между тем, иногда помогвет элементарная трассировка входа в функцию, после чего становится ясно, что ты ей банально передал что-то не то.


даже не смешно. я (уверен и ты тоже) всё время вызываю ф-ии, исходников которых у меня нет: strcpy, CreateFile и тп

И чем мне поможет в этом ассемблер?
---
С уважением,
Сергей Мухин
Re[4]: C++ и Assembler
От: Сергей Мухин Россия  
Дата: 29.08.08 05:54
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

V>>Был у меня один коллега "старой закалки", гуру. За пару недель он написал на ассемблере функцию, вручную развернул все циклы, использование всех юнитов рассчитал, кэш учел. Эта же функция на с++ (с использованием интринсиков, разумеется) работала с такой же скоростью, а после добавления платформенно-специфичных прагм, даже быстре процентов на 20.


PD>Я тоже "старой закалки", хоть и не гуру. И лет 10 назад мы с коллегой писали нечто подобное. На ассемблере с использованием MMX регистров. В результате это работало раза в 1.5 быстрее, чем C++ код.


а сколько потратили времени?

а проверить скорость на современных компиляторах?
---
С уважением,
Сергей Мухин
Re[10]: C++ и Assembler
От: Сергей Мухин Россия  
Дата: 29.08.08 05:55
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

СМ>>лучше C# или Java быстрей пригодиться


PD>Кому ? Абстрактному начинающему программисту или все же программисту на C++ ? Если второму (а о нем здесь вроде идет речь) — вряд ли



программисту С++ надо учить С++, вряд ли кто знает его на 100%
---
С уважением,
Сергей Мухин
Re[5]: C++ и Assembler
От: Сергей Мухин Россия  
Дата: 29.08.08 05:57
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Геннадий Майко, Вы писали:


ГМ>>К таким ситуациям я отношусь прагматично. Если решение конкретной инженерной задачи оказывается намертво привязанной к конкретному процессору, я не вижу здесь ничего страшного


PD>Если решение некоей задачи привязано к ОС Windows (а это сплошь и рядом), то фактически это та же привязка к процессору (не учитывая Itanium, который мало кто видел), Windows == x86/x64


ну ну, а Windows CE (или как ее там сейчас называют) и тп — ни у кого уже нет в кармане?
---
С уважением,
Сергей Мухин
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.