Мария Сорокина
Профи
(694)
8 лет назад
Вы когда-нибудь пробовали перевести код на Си в код на Ассемблере? Программа получится отнюдь не такой оптимальной, какой бы Вы её написали непосредственно на Ассемблере.
Василий ПолубневПросветленный (22247)
8 лет назад
Это уже не так. Современные оптимизаторы кода умудряются генерировать такой же, или более оптимальный когд, чем человек. Лет так уже 15-20
Алекс Куха
Высший разум
(446414)
8 лет назад
Почему асм лидирует, думаю, понятно изначально. Надо сложить два числа, код содержит ровно столько, сколько для этого требуется. Чем сложнее яп, тем больше работы делает компилятор за человека. Любая конструкция языка - это многие строки кода. Своего рода ИИ, точнее его зачатки. И ессно, код получается быстро, но его много, ввиду того, что его пишут для некой абстракции, общей модели. Объектный код (ООП) изначально предполагает повышенную долю избыточности в угоду универсальности использования, читабельности кода и его оптимизации, а как результат - толстый исполняемый модуль.
Другими словами, компилятор не занимается отсевом ненужного в конкретном проекте кода, это невозможно, не предусмотрено
Detroid no data
Профи
(518)
8 лет назад
Код ассемблера выполняется на уровне железа, состоит из базовых инструкций. Код на С выполняется как на уровне железа так и на уровне ОС, и содержит в качестве груза импортированные библиотеки. Код на С++ содержит меньше команд на уровне железа и имеет обьектно-ориентированную структуру, которая является ещё большим грузом.