2

Какая разница между интерпретируемым и скомпилированным языком. Например, я хочу напечатать цифры от 1 до 100.Как точно последовательность операций имеет место в случае интерпретатора и компилятора.Шаги, выполненные в случае INTERPRETER и COMPILER

Далее, если возможно, пожалуйста, предоставьте мне шаги в соответствии с Java языка и C языка

Thx

+0

Интересные теги ... –

+0

возможно дубликат [ Runtime vs Compile time] (http://stackoverflow.com/questions/846103/runtime-vs-compile-time). Также обратите внимание, что ваш запрос относительно java и c - это трудный увядающий способ интерпретировать (heh!). Ни java, ни c обычно не интерпретируются, и описание работы любого типа программы на этих языках занимает небольшую книгу. – dmckee

+0

Языки обычно не могут быть классифицированы как интерпретированные или скомпилированные. Большинство языков можно интерпретировать и компилировать. Это различие только вступает в игру, когда мы говорим о конкретной реализации. – svenningsson

ответ

1

Скомпилированный язык является языком, который преобразует исходный код в машинный код. Также известен как родное приложение.

Интерпретируемый язык - это язык, который преобразует исходный код в некоторый промежуточный. Во время выполнения программы интерпретатор запускает исходный код. Интерпретированные языки имеют тенденцию быть, но не всегда, значительно медленнее, чем скомпилированные языки. Однако они полезны для переносимости.

C компилируется, превращая исходный код:

for (int i=1;i<=100;i++) { printf("%d",i); } 

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

Java, однако, преобразует исходный код в промежуточный байтовый код. Во время выполнения он запускается на «виртуальной машине», которая может быть медленнее, чем собственное скомпилированное приложение.

+0

Это не привязано к языку. Вы можете писать как интерпретаторы, так и компиляторы для каждого языка, хотя, например, писать компилятор для динамического языка, который поддерживает 'eval', сложнее, чем писать интерпретатор. Например, существуют [C-переводчики] (http://www.softintegration.com/support/faq/general.html) и [компиляторы Java] (http://gcc.gnu.org/java/). – DarkDust

+0

ВЫ МОЖЕТЕ, но большинство языков либо предназначено для компиляции, либо для интерпретации. –

+0

Кроме того, «официальный» компилятор Sun также является компилятором. Он компилирует ваш источник в байт-код и *, который * должен интерпретироваться виртуальной машиной. Примерами для интерпретатора могут быть Ruby, Python, Perl или bash. – DarkDust