Форум программистов, компьютерный форум CyberForum.ru

Assembler или C++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Советы начинающему http://www.cyberforum.ru/cpp-beginners/thread896705.html
Здравствуйте дорогие форумчане, отнедавна решил воплотить мечту своего детства и попробовать стать программистом, осенью на первый курс заочки, вследствие чего уже сейчас хочу выучить как можно больше, так как проучась два года в меде понял, что от нашего образования можно получить из полезного только диплом. Может для кого-то это покажется диким, но до этого момента, я всего пару раз работал в...
C++ Вызов функции (шаблона) Здравствуйте. Есть шаблон, никак не получаются его вызвать. template <class T> void print(const T &a) { int b; cout <<"Input number:"; cin >> b; const unsigned *p = reinterpret_cast<const unsigned*>(&a); for (int i = 0; i < sizeof(T); i++) http://www.cyberforum.ru/cpp-beginners/thread896703.html
C++ Вычислить сопротивление по рисунку
Используя функцию, которая вычисляет супротивлення электрической цепи, который состоит из двух резисторов, вычислить общее сопротивление четырех проводников с электрическими супротивлення, соединенных между собой по схеме, показанной на рисунке: Параметрами функции являются величины супротивлень и тип соединения (последовательное или параллельное). Функция проверяет корректность параметров: если...
Вычислить интеграл C++
Помоги пожалуйста))
C++ Наибольшее количество одинаковых элементов http://www.cyberforum.ru/cpp-beginners/thread896680.html
Составить программу для подсчета наибольшего количества одинаковых элементов, расположенных последовательно, в массиве для каждого из одномерных массивов Х и Y . Инициализацию, вывод элементов массива, их обработку организовать в отдельных функциях.
C++ Подсчет нечетных элементов Сформировать динамический массив В размера m × n из случайных целых чисел. Составить программу для подсчета произведения нечетных элементов двумерной матрицы В, используя функцию для обработки массива. подробнее

Показать сообщение отдельно
Убежденный
Системный программист
 Аватар для Убежденный
14183 / 6198 / 984
Регистрация: 02.05.2013
Сообщений: 10,324
Завершенные тесты: 1
10.06.2013, 11:24     Assembler или C++
Цитата Сообщение от YYwww Посмотреть сообщение
Так как быть и на чём начать писать и в какой стороне двигаться -- С++ или Assembler, для ядра, хотя бы.
* Ассемблер жестко привязан к платформе.
Написав программу под одну платформу, вы делаете ее почти непортируемой на другие.
Даже между "родственными" платформами, такими как, например, IA-32 и AMD64, существует
много принципиальных различий - разные размеры указателей, разные наборы регистров,
разные соглашения о передаче параметров и т.д. Это значит, что для поддержки 32-битной и
64-битной версий программы придется иметь две кодовые базы.

С++ эта проблема тоже затрагивает, но не в такой степени, и многие программы, написанные
на C++, могут быть успешно портированы на другие платформы простой перекомпиляцией кода.

* Ассемблер практически не развивается как отдельный язык и лишен библиотечной поддержки.
Сталкиваясь с некоторыми, пусть даже и типовыми задачами, вам с большой вероятностью
придется писать свое решение с нуля, а это может оказаться очень и очень затратным.

Для С++, напротив, имеется огромное количество библиотек на все случаи жизни,
используя которые, вы экономите значительное количество времени и сил.

* Ассемблер, по своей натуре, имеет очень слабую поддержку языка в плане обеспечения
корректности и безопасности кода. Фактически, все что есть - это макросы, да и
то не везде. Все остальное необходимо будет изобретать самому.

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

* Вопреки распостраненному мнению, использование ассемблера в 99% не сделает вашу
программу быстрее. Современные компиляторы достаточно умны и умеют оптимизировать
код значительно лучше человека, не говоря уже о том, что делают они это намного
быстрее и точнее. Некоторые компиляторы, такие как Intel C++ Compiler, умеют
оптимизировать код под конкретную модель процессора, существует также двухпроходная
оптимизация (Profile-Guided Optimization), рассчитанная на сбор информации о
конкретных сценариях использования программы и улучшения по максимуму критических
участков кода, а еще масса различных инструментов профилирования и т.п., доступных
только для C, C++ и других языков высокого уровня.

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

С другой стороны, в некоторых прикладных областях знание ассемблера не просто прихоть, а
жизненно важная необходимость, я могу сходу назвать, как минимум, три такие области:
системное программирование, обработка цифровых сигналов, встраиваемые системы.

Также существует мнение, что школу ассемблера, или другого низкоуровневого языка, в
любом случае нужно пройти. Человек, который это сделал, лучше понимает происходящее
"за кадром", да и вообще ему потом "сам черт не страшен". Я с этим полностью согласен.
 
Текущее время: 00:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru