Javascript компилируется или интерпретируется? [закрыто]

151

Можно ли назвать Javascript чистым интерпретируемым языком? Или у этого также есть некоторый скомпилированный аромат к этому? Может ли кто-то руководствоваться причинами того, что является правдой?

netemp
источник
31
Пожалуйста, рассмотрите возможность добавления комментария при голосовании вниз, чтобы вопрос мог быть улучшен. Спасибо.
netemp
2
@Blindy: вы говорите, что различий между скомпилированным и интерпретированным не должно быть вообще?
netemp
23
5 отрицательных голосов, и ни одного комментария, цитирующего, почему понижательное голосование было там. Немного разочаровывает.
netemp
1
Это может быть распространенный способ классификации языков, но это не делает его более полезным.
1
@NetEmp (обратите внимание, что я не проголосовал, но проголосовал за переход к программистам). Это неправильное место для того, чтобы задавать этот тип вопросов - прочитайте часто задаваемые вопросы о том, какие вопросы задавать здесь - это должно быть в разделе программирования StackExchange
Manse

Ответы:

72

Иди и прочитай ответы на этот вопрос

/software/138521/is-javascript-interpreted-by-design

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

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

Мэтт Эш
источник
19

JavaScript интерпретируется во время выполнения клиентским браузером. Тем не менее, существует инструмент под названием Rhino JavaScript Compiler, который предположительно компилирует JavaScript в файлы классов Java.

HellaMad
источник
7
А как насчет V8 и тому подобное?
25
В V8 никогда не было ничего похожего на интерпретатор, и большинство основных движков JS уже имеют компиляторы JIT. Таким образом, говорить, что «JavaScript интерпретируется», очевидно, неправильно (или, возможно, ваше определение интерпретатора / компилятора таково).
@delnan: Спасибо за понимание V8. Таким образом, JS не является чисто интерпретируемым языком.
netemp
2
Rhino JavaScript Compiler. Вы знаете, если вы хотите, чтобы ваш интерпретируемый язык интерпретировался другим интерпретируемым языком.
Тревор Хикки
1
Как уже говорили другие, это уже давно не так. Да, в первые дни можно было сказать, что Javascript был интерпретирован, но с тех пор он прошел очень долгий путь .
Джон Вайс