Czy JavaScript jest kompilowany czy interpretowany? [Zamknięte]


151

Czy Javascript można nazwać językiem wyłącznie interpretowanym? A może ma też jakiś skompilowany smak? Czy ktoś mógłby wskazać przyczyny obu rzeczy, niezależnie od tego, co jest prawdą.


31
Prosimy o rozważenie dodania komentarza podczas głosowania przeciw, aby można było poprawić pytanie. Dzięki.
netemp

2
@Blindy: czy wspominasz, że nie powinno w ogóle istnieć rozróżnienie między kompilacją a interpretacją?
netemp

23
5 głosów „przeciw” i ani jednego komentarza, w którym nie podano, dlaczego tak było. Trochę rozczarowujące.
netemp

1
Może to być powszechny sposób klasyfikowania języków, ale to nie czyni go bardziej użytecznym.

1
@NetEmp (uwaga, nie głosowałem w dół - ale głosowałem za migracją do programistów) To jest niewłaściwe miejsce do zadawania tego typu pytań - przeczytaj FAQ na temat tego, jakie pytania tutaj zadać - powinno to być w sekcji programowania StackExchange
Manse

Odpowiedzi:


72

Idź i przeczytaj odpowiedzi na to pytanie

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

Odpowiedź, którą zaakceptowałem, jest doskonała i powinna pomóc odpowiedzieć na Twoje pytanie.

Osobiście jestem nieco ostrożny w kwestii nazywania języka jako interpretowanego lub kompilowanego. To decyzja dotycząca implementacji, a nie część specyfikacji języka. Jeśli chcesz porozmawiać o skompilowanym lub zinterpretowanym JavaScript, poproś o to w kontekście rzeczywistej implementacji specyfikacji języka.


19

JavaScript jest interpretowany w czasie wykonywania przez przeglądarkę klienta. Istnieje jednak narzędzie zwane Rhino JavaScript Compiler, które podobno kompiluje JavaScript do plików klas Java.


7
A co z V8 i tym podobnymi?

25
V8 nigdy nie zawierał czegoś takiego jak interpreter, a większość głównych silników JS zawiera już kompilatory JIT. Dlatego stwierdzenie, że „JavaScript jest interpretowany” jest oczywiście błędne (a może twoja definicja interpretera / kompilatora jest taka).

@delnan: Dzięki za wgląd w V8. Tak więc JS nie jest językiem wyłącznie interpretowanym.
netemp

2
Kompilator JavaScript Rhino. Wiesz, jeśli chcesz, aby twój język interpretowany był interpretowany przez inny język interpretowany.
Trevor Hickey

1
Jak powiedzieli inni, od jakiegoś czasu nie jest to już prawdą. Tak, na początku można było powiedzieć, że JavaScript był interpretowany, ale od tamtej pory przeszedł bardzo długą drogę .
John Weisz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.