Другие языки программирования и технологии

Почему скомпилированный код на Ассемблер занимает меньше места чем на C, а на C меньше чем на C++?

Ведь все они всё равно компилируются в машинные коды.
информация здесь: http://www.wasm.ru/article/257
Anatoliy Gorelik
Anatoliy Gorelik
0
Лучший ответ
Почему асм лидирует, думаю, понятно изначально. Надо сложить два числа, код содержит ровно столько, сколько для этого требуется. Чем сложнее яп, тем больше работы делает компилятор за человека. Любая конструкция языка - это многие строки кода. Своего рода ИИ, точнее его зачатки. И ессно, код получается быстро, но его много, ввиду того, что его пишут для некой абстракции, общей модели. Объектный код (ООП) изначально предполагает повышенную долю избыточности в угоду универсальности использования, читабельности кода и его оптимизации, а как результат - толстый исполняемый модуль.
Другими словами, компилятор не занимается отсевом ненужного в конкретном проекте кода, это невозможно, не предусмотрено
Раиль Нуреев
Раиль Нуреев
73 115
потому что ассемблер - это и есть система команд микропроцессора, т. е. низкоуровневый язык,
а программа на С переводится (с текста) на с компилятором который по определению НЕ идеален
Акмалъ Эргашев
Акмалъ Эргашев
39 908
Потому что у x86 очень сложная система команд. Под RISC почти нет разницы между asm и С.
Чем более "низкоуровневее" код тем он ближе к железу, соответственно компактнее и более производительный ;)
Павел Л
Павел Л
8 452
Малик Мамедов только вот есть такая штука как ОПТИМИЗАЦИЯ
асемблер самый простой язык
Diablo_Dk_Ff_X Diabl Ты такую глупость сказал...
Разумеется, будут индексировать. robots.txt - это файл, ограничивающий индексирование
Если я не ошибаюсь С в начале переводится сам на Ассемблер, а уже Ассемблер переводит на машинный.
Вы когда-нибудь пробовали перевести код на Си в код на Ассемблере? Программа получится отнюдь не такой оптимальной, какой бы Вы её написали непосредственно на Ассемблере.
Георгий Воронцов Это уже не так. Современные оптимизаторы кода умудряются генерировать такой же, или более оптимальный когд, чем человек. Лет так уже 15-20
Потому, что он был "первый"!!!!
Код ассемблера выполняется на уровне железа, состоит из базовых инструкций. Код на С выполняется как на уровне железа так и на уровне ОС, и содержит в качестве груза импортированные библиотеки. Код на С++ содержит меньше команд на уровне железа и имеет обьектно-ориентированную структуру, которая является ещё большим грузом.
кароч. забейте на Ассемблер c++ и c рулят
Justin Bieber Ничто не может рулить круче, чем рулит assembler
Разные языки программирования .
свым
В C/C++ больше всяких наворотов (Оптимизация кода, распределение памяти и пр.), а в Ассемблере - что ты в коде написал - то программа и сделает.