2016-10-18 5 views
1

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

+0

вот как это в основном работает, но это не всегда так. Иногда код не запускается непосредственно на аппаратном обеспечении, а интерпретируется другой программой - интерпретатором - который запускает фактический машинный код. –

ответ

2

Wow! Это нужно много для объяснения. : D Во-первых, у машин, подобных людям, есть свои собственные языки, поэтому мы можем просто сказать, что если вы хотите, чтобы компьютер работал, как вы говорите, вы должны сказать это на своем языке :)

Но вы, наверное, слышали о компиляции и Устный перевод: Скомпилируйте: конвертируйте (программу) в машинный код или нижний уровень, в котором программа может быть выполнена.

Таким образом, в основном это означает, что кодовый код будет преобразован в нечто иное, как исполняемый файл, когда программист (ы) решает, что они выполнены для программирования. Поэтому, если вы посмотрите на файл .exe с помощью блокнота, вы не можете просто понять что-либо. и код, который был скомпилирован для Windows, не может быть выполнен на Mac.

Интерпретация: код будет преобразован другой программой во время выполнения. Таким образом, код читается человеком до последних секунд. Например, если вы щелкните правой кнопкой мыши на этой странице и выберите «Просмотр источника страницы», вы можете увидеть код HTML, созданный для этой страницы. Это означает, что код гибкий и может работать на разных машинах, как вы видите, вы можете видеть одну и ту же страницу на вашем Mac, в окнах или в разных браузерах, таких как chrome, firefox или IE, но тогда это будет намного медленнее, чем компиляция.

Что мы делаем на практике?

Мы скомпилируем наш код на промежуточном языке, понятном виртуальной машине, которая является конкретной для каждой машины.

Позвольте мне объяснить это на примере. Допустим, кто-то хочет выступить с речью в ООН, можно сказать по-китайски.

Если он переводит всю свою речь на разные языки и передает ее людям, она компилирует.

Если он говорит, и некоторые люди переводят его слова онлайн на французский, английский и т. Д., То он интерпретирует. Но это отстойно, и вы, вероятно, не найдете никого, кто бы это сделал для многих языков.

Если он передал переведенную версию (например, английскую версию) ее переводчикам перед речью, и они могут ее прочитать и сказать языки, когда говорящий говорит, то это то, что мы делаем сейчас: D

Вы можете прочитать здесь: Runtime vs Compile time

+0

Ничего себе, это сложнее, чем я думал. – DeathSwagga

+0

Что не так с моим вопросом? – DeathSwagga

+0

@DeathSwagga не знает, почему люди дали вам отрицательные очки. Наверное, потому что вы задали очень широкий вопрос, но я точно не знаю :) –