T>1. На новой "железке" в первую очередь делается асм, а уж потом компиляторы из языков более высокого уровня. А новые "железки" как делали, так и будут делать
Пока для этого нового МК не будет С и дебаггера, я и смотреть в его сторону не буду, париться на асме — изврат для души.
T>2. Компиляторы в наще время развиваются вширь и эта тенденция меняться не собирается. Поэтому времена, когда компилятор с языка высокого уровня будет создавать код лучше, чем специалист на асме, наступят не скоро (на наш век хватит).
Я, начальство и Заказчик хотят быстро получить готовый девайс, а оверхеды внутри него волнуют только меня и только в том случае, если девайс не работает. Процы нынче дешевы
T>3. Компиляторы медленно узнают о новых "фичах" железок. Как следствие — использовать новую фичу можно только на асме.
Что за такие сладкие фичи, ради которых надо переходить на асм?
T>4. Проблематично перевести уже откомпилированную программу на язык более высокого уровня чем асм (ситуацию меняют java и .NET... может и доменяют). А разбираться без доступа исходников иногда надо (пример — антивирус).
Это мы про реинженеринг, да? Свои разработки с исходниками, а чужие не копируем
Здравствуйте, adb, Вы писали:
adb>Есть такая область — встроенные системы (чайники, контроллеры, mp3-плейры, т.п.). Там ассемблер незаменим. Например под многие ADSP-процессоры вообще нет компиляторов. Под другие есть, но они рожают неэффективный код, поэтому узкие места все равно пишут на асме.
Под какие это ADSP нет компиляторов С/С++??? Или ты о компиляторах языка Фортран или Пролог? Тады да, нету, вот горе-то
adb>P.S. Кстати тот же процессор 8086 на персональных машинах уже и не встретишь. Однако его встроенный аналог используется до сих пор. Потому как дешев и достаточен для очень большого круга задач.
Вот напротив меня сидит предпенсионный дяденька, программирует на асме для 51-го. Долго программирует, долго отлаживает. И в каждую разработку забивает в 5 раз больше памяти, чем нужно реально. Ибо на убогом асме невозможно мыслить, трудно написать сложный алгоритм. Я асм использую изредка, в узких местах, скажем так, очень нестандартно использую и пожалуй, только на слабых 8-разрядниках. Хотя мои задачи на 90 % — управление.
Здравствуйте, vog, Вы писали:
T>>1. На новой "железке" в первую очередь делается асм, а уж потом компиляторы из языков более высокого уровня. А новые "железки" как делали, так и будут делать
vog>Пока для этого нового МК не будет С и дебаггера, я и смотреть в его сторону не буду, париться на асме — изврат для души.
Ты не будешь, другие будут. У нас целый отдел на асме пишет, т.к. нет еще C для нужных железок. Ничего, вроде все довольны.
T>>2. Компиляторы в наще время развиваются вширь и эта тенденция меняться не собирается. Поэтому времена, когда компилятор с языка высокого уровня будет создавать код лучше, чем специалист на асме, наступят не скоро (на наш век хватит).
vog>Я, начальство и Заказчик хотят быстро получить готовый девайс, а оверхеды внутри него волнуют только меня и только в том случае, если девайс не работает. Процы нынче дешевы
Все зависит от задачи. Иногда дешевле купить проц, а иногда программиста на асме.
T>>3. Компиляторы медленно узнают о новых "фичах" железок. Как следствие — использовать новую фичу можно только на асме.
vog>Что за такие сладкие фичи, ради которых надо переходить на асм?
Имеются. Речь идет конечно не о домашних компьтерах или серверах, а маленьких дешевых микросхемках.
T>>4. Проблематично перевести уже откомпилированную программу на язык более высокого уровня чем асм (ситуацию меняют java и .NET... может и доменяют). А разбираться без доступа исходников иногда надо (пример — антивирус).
vog>Это мы про реинженеринг, да? Свои разработки с исходниками, а чужие не копируем
Какие мы правильные
Я же говорю: пример — антивирус.
Здравствуйте, Martos, Вы писали:
M>ривет всем! M>Вот сегодня услышал такое мнение, что Ассемблер как язык — вымирающий. M>Что скоро на нем вообще перестанут программировать, и он станет никому M>не нужным, учить его не стоит. Так ли это? Хотел бы посоветоваться с M>разбирающимися в этом людьми.
Не существует некоего единого языка ассемблера. Имеется множество различных языков ассемблера. Даже для одного и того же процессора (одной архитектуры) имеется множество различных ассемблеров со своими синтаксическими особенностями и возможностями. Использовать или не использовать ассемблер — зависит от задачи, привязанностей программиста к используемым им инструментам, от наличия доступа к инструментам и от множества других объективных и субъективных факторов.
Если же иметь в виду ассемблер, как язык адекватно описывающий процессор на уровне системы инструкций, то его обязательно нужно знать. Любой программист, как профессионал, должен знать как устроен компьютер и как он работает.
Здравствуйте, Шахтер, Вы писали:
Ш>Здравствуйте, Tan4ik, Вы писали:
T>>Здравствуйте, Martos, Вы писали:
M>>>ривет всем! M>>>Вот сегодня услышал такое мнение, что Ассемблер как язык — вымирающий. M>>>Что скоро на нем вообще перестанут программировать, и он станет никому M>>>не нужным, учить его не стоит. Так ли это? Хотел бы посоветоваться с M>>>разбирающимися в этом людьми.
T>>Ассемблер — единственный язык, который не умрет никогда. Ибо
T>>2. Компиляторы в наще время развиваются вширь и эта тенденция меняться не собирается. Поэтому времена, когда компилятор с языка высокого уровня будет создавать код лучше, чем специалист на асме, наступят не скоро (на наш век хватит).
Ш>Уже наступили. Тот же Intel С++ нередко создаёт неулучшаемый код. На самом деле создание эффективного кода -- это задача дискретной оптимизации и машина имеет тут фору перед человеком. Ш>Фактически, мы сейчас наблюдаем ситуацию, когда компиляторы (лучшие из них) уже эту область у человека отняли.
Видел я код, который компилятор C генерит для ADSP-контроллера...
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, adb, Вы писали:
adb>>Есть такая область — встроенные системы (чайники, контроллеры, mp3-плейры, т.п.). Там ассемблер незаменим.
А>Понятно... А>Ассемблер — это язык для чайников