Материал, который делает C ++, C ++, не , действительно похож на любую архитектуру машины.Подмножество C похоже.Назначения переменных, вызовы функций, циклы, обход массива и сравнения, как правило, соответствуют небольшому набору быстрых основных инструкций.Присвоения примитивам или элементам массива, как правило, представляют собой единую инструкцию на современных процессорах: инструкция, которая перемещает значение из памяти в регистр или наоборот (например.) Люди, которые долгое время программировали на C, могут буквально видетьмашинный код, который сгенерирует их компилятор.Ключевым моментом является то, «что видишь, то и получаешь» - языковые инструкции переводятся непосредственно в машинный код, более или менее однозначно.
С другой стороны, языки «более высокого уровня»например, C # (или Java, Ruby, Python, Perl, Haskell, Scheme и т. д.) имеют более или менее существенную базовую систему поддержки времени выполнения.Для некоторых языков это означает, что задание может включать поиск чего-либо в таблице первым;для других это может означать, что присвоение иногда является простой копией, а иногда - сложной манипуляцией с данными, в зависимости от того, какого рода это данные.Гораздо сложнее предсказать, как ваши операторы будут переведены в машинный код.
C ++ находится в интересной области: некоторые назначения похожи на C-задания;другие на самом деле являются перегруженными вызовами operator=()
, и вы никогда не знаете, что получите (конечно, без тщательного изучения). C ++ имеет систему времени выполнения;он просто намного легче, чем тот, что используется для Ruby, Haskell или Scheme.