Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

С Наступающим Новым Годом! Просветленный (36736), закрыт 8 лет назад
Ведь все они всё равно компилируются в машинные коды.
Лучший ответ
Остальные ответы
Есенька Мастер (2377) 8 лет назад
Разумеется, будут индексировать. robots.txt - это файл, ограничивающий индексирование
Чебуратор Мыслитель (8449) 8 лет назад
Чем более "низкоуровневее" код тем он ближе к железу, соответственно компактнее и более производительный ;)
Кууча фон ЮчаГуру (3938) 8 лет назад
только вот есть такая штука как ОПТИМИЗАЦИЯ
Чебуратор Мыслитель (8449) Если вы имеете ввиду опции типа -O2 -O3 у гцц или их аналоги, то оптимизация не всегда приносит плоды так, как если бы это было сделано ручками на асм. По размерам это даже не обсуждается - на асм на выходе будет всегда меньше бинарники чем на си и си++.
Милый Пушок Гуру (3988) 8 лет назад
асемблер самый простой язык
Леонид СбродовУченик (127) 8 лет назад
Ты такую глупость сказал...
+
Мария Сорокина Профи (694) 8 лет назад
Вы когда-нибудь пробовали перевести код на Си в код на Ассемблере? Программа получится отнюдь не такой оптимальной, какой бы Вы её написали непосредственно на Ассемблере.
Василий ПолубневПросветленный (22247) 8 лет назад
Это уже не так. Современные оптимизаторы кода умудряются генерировать такой же, или более оптимальный когд, чем человек. Лет так уже 15-20
Александр Русакевич Ученик (57) 8 лет назад
В C/C++ больше всяких наворотов (Оптимизация кода, распределение памяти и пр.), а в Ассемблере - что ты в коде написал - то программа и сделает.
Максим Веретенников Профи (508) 8 лет назад
кароч. забейте на Ассемблер c++ и c рулят
impressive_iМыслитель (5173) 8 лет назад
Ничто не может рулить круче, чем рулит assembler
^_^ няка Профи (590) Машинный код тогда уж он самый рулящий :D
Алекс Куха Высший разум (446414) 8 лет назад
Почему асм лидирует, думаю, понятно изначально. Надо сложить два числа, код содержит ровно столько, сколько для этого требуется. Чем сложнее яп, тем больше работы делает компилятор за человека. Любая конструкция языка - это многие строки кода. Своего рода ИИ, точнее его зачатки. И ессно, код получается быстро, но его много, ввиду того, что его пишут для некой абстракции, общей модели. Объектный код (ООП) изначально предполагает повышенную долю избыточности в угоду универсальности использования, читабельности кода и его оптимизации, а как результат - толстый исполняемый модуль.
Другими словами, компилятор не занимается отсевом ненужного в конкретном проекте кода, это невозможно, не предусмотрено
Животное Мудрец (19094) 8 лет назад
Потому что у x86 очень сложная система команд. Под RISC почти нет разницы между asm и С.
Detroid no data Профи (518) 8 лет назад
Код ассемблера выполняется на уровне железа, состоит из базовых инструкций. Код на С выполняется как на уровне железа так и на уровне ОС, и содержит в качестве груза импортированные библиотеки. Код на С++ содержит меньше команд на уровне железа и имеет обьектно-ориентированную структуру, которая является ещё большим грузом.
Oleg Pokatilov Мастер (1936) 8 лет назад
Если я не ошибаюсь С в начале переводится сам на Ассемблер, а уже Ассемблер переводит на машинный.
Александр Сизенко Просветленный (39960) 8 лет назад
потому что ассемблер - это и есть система команд микропроцессора, т. е. низкоуровневый язык,
а программа на С переводится (с текста) на с компилятором который по определению НЕ идеален
Олег Чирков Знаток (364) 8 лет назад
Разные языки программирования .
sam_sam1111 Профи (542) 8 лет назад
Потому, что он был "первый"!!!!
^_^ някаПрофи (590) 8 лет назад
"Второй"
Похожие вопросы