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

Двоичный код быстрее языков программирования по типу c++? (Я знаю что эти языки тоже написаны на двоичном коде)

Андрей Кидора
Андрей Кидора
1 458
Любой компилятор на выходе выдаёт двоичный код. Но твой ассемблерный код будет быстрее кода, сгенерированного компилятором, только в том случае, если ты очень хорошо знаешь систему команд процессора.

Каждая процессорная команда в программе выполняется не сама по себе, а в окружении других команд - она влияет на состояние процессорного конвейера, одновременно выполняющего несколько команд. Разные комбинации одних и тех же команд могут как заметно ускорить, так и заметно замедлить программу. Потому, разработчики компиляторов тратят много усилий на учёт особенностей взаимодействия команд процессора. Так что конкуренцию C-коду может составить только очень опытный специалист по ассемблеру.

С другой стороны, высокоуровневые возможности современных языков программирования требуют дополнительных вычислений в процессе выполнения программы. В этом отношении лучше всего дела у C - он изначально разработан так, чтобы накладные расходы в процессе выполнения были сведены к абсолютному минимуму. У C++ с этим немного хуже. Rust хоть и объявлен убийцей C, но по скорости работы кода даже до C++ недотягивает. Остальные популярные языки медленнее.
Эрадж Каримов
Эрадж Каримов
71 327
Лучший ответ
Если ты напишешь этот код под какие-то специализированные команды конкретного процессора (будешь широко использовать расширенные наборы команд помимо стандартных х86), то может быть. В противном случае вряд ли ты напишешь хоть сколь-нибудь сложный и при этом более эффективный код, чем за тебя это сделает компилятор, а вот времени потратишь гораздо больше.
Язык программирования не может быть быстрым. Быстрой может быть скомпилированная программа. А компилируется она, например, в такой же машинный код. Всё зависит от того, насколько эффективным будет сгенерированный и написанный тобою код.
Паша Михаилов
Паша Михаилов
60 514
у си и с++ нормальный компилятор и конечный код практический такой же как если бы писали на асме.. так что скорость тут практически одинаковая, если не такая же
Денис Пиденко
Денис Пиденко
86 619
двоичный код - язык машины,
а языки программирования, - мнемоническое обозначение машинных команд, для простоты понимания и удобства написания программ ....
Буквально цифры используют только очень редкие умники
существенно чаще пишут на ассемблере.
широкие массы использую что-нибудь простое, от BASIC и до PYTHON
Просто San4Ezz а можно я стану редким умником и буду компилить асмокод в бин и перепишу бин в другой бин через sublime text?