Влияние выбора языка программирования на производительность ОС - PullRequest
0 голосов
/ 28 мая 2018

Выбор языка программирования определяет производительность, когда все это скомпилировано в 1 и 0

Например: printf (в C) против cout (C ++) против print (в Python)

Все ли вышеперечисленное имеет одинаковый двоичный скомпилированный код?

Благодарим за любую помощь в понимании этой концепции языка программирования и роли в деталях оборудования!Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

В какой двоичный код они компилируются, зависит от компилятора.Для C и C ++ существуют десятки разных компиляторов, которые могут генерировать различный двоичный код.Кроме того, большинство компиляторов даже имеют флаги оптимизации, которые сильно влияют на сгенерированный двоичный код.

Python даже напрямую не компилируется в «машинный код», он компилируется в байт-код для интерпретатора Python.Сам интерпретатор Python - это программа, которая запускается на компьютере, затем читает байт-код python и выполняет его, вероятно, путем внутреннего вызова предопределенных функций (которые уже существуют в машинном коде)

0 голосов
/ 24 августа 2018

Выбор языка программирования может иметь большое влияние на производительность вашего кода, его переносимость, сопоставимость и, среди прочего, на то, насколько легко цель может быть вставлена ​​в код.Чтобы ответить на ваш вопрос напрямую, C и C ++, скорее всего, при выводе будут производить «один и тот же двоичный файл», если они оба были созданы для одной и той же целевой среды.Python отличается, потому что это интерпретируемый язык, то есть код читается программой, написанной в коде, родном для архитектуры, и действует соответствующим образом.Python является чем-то вроде крайнего случая в этом отношении, потому что он технически компилируется во время выполнения (и может быть до распространения), но в промежуточный код, в принципе похожий на байт-код Java, который понимается только интерпретатором Python.

Разница, которую вы видите между более низкими языками, такими как C, и более высокими, такими как Java, Python и даже JavaScript, заключается в характере их выполнения, выполняемого собственным оборудованием или интерпретатором.Язык, работающий на голом железе, как правило, понимается быстрее, чем на интерпретаторах, поскольку интерпретатору требуется время для понимания кода и использования собственных системных ресурсов.Java имеет тенденцию нарушать это правило, потому что его интерпретатор представляет собой полноценную виртуальную машину, которая понимает очень простой байт-код, что делает его конкурентоспособным по скорости по сравнению с языком, подобным C.

...