JavaScript: компільована чи інтерпретована мова?

JavaScript не можна однозначно назвати компільованим або інтерпретованим мовою, тому перед тим, як стверджувати це, давайте розглянемо, що ці два терміни насправді означають і в чому полягають їхні відмінності.

Компільовані та Інтерпретовані мови: що це таке?

Обидва типи мов виконують одну й ту саму задачу: перетворюють код, зрозумілий людині, в код, зрозумілий машині (0 і 1). Однак спосіб їх роботи значно різниться.

Компільовані мови:

  • Код повністю береться і відразу перетворюється на машинний код.
  • Цей процес здійснюється за допомогою компілятора.
  • Після завершення компіляції, виходить готовий програмний продукт (машинний код), який потім можна виконувати.

Переваги:

  • Вища швидкість виконання, оскільки код вже попередньо перетворений на машинний.
  • Помилки можуть бути виявлені ще на етапі компіляції.

Недоліки:

  • Потрібно повторно компілювати код після кожної зміни.

Приклад мов: C, C++, Go

Інтерпретовані мови:

  • Код читається по черзі і перетворюється на машинний код в реальному часі (run-time).
  • Цей процес здійснюється за допомогою інтерпретатора.

Переваги:

  • Можна одразу змінювати код і бачити результат.
  • Не потрібно постійно повторно компілювати код.

Недоліки:

  • Швидкість виконання нижча, оскільки кожен рядок необхідно зчитувати і виконувати в реальному часі.
  • Помилки виявляються лише під час виконання коду.

Приклад мов: Python, JavaScript, PHP

Компільоване — код повністю перетворюється на машинний код за один раз.

Інтерпретоване — кожен рядок коду окремо перетворюється на машинний код.

JavaScript до якого з цих типів належить?

JavaScript є інтерпретованою мовою, і ось чому:

  1. Після написання коду можна одразу виконати його, без необхідності компіляції.
  2. Код виконується рядок за рядком.

Однак у сучасних браузерах для JavaScript застосовується техніка JIT (Just-In-Time) компіляції. Наприклад, при виконанні коду JS, браузер може вивести повідомлення про помилки, вказуючи, де саме і в якому рядку коду сталася помилка.

Відмінності:

pic

Порівняння:

  • Компільована мова: Фільм знімається заздалегідь, після чого його можна дивитися.
  • Інтерпретована мова: Кожного разу проводиться живе шоу.

Особливість JavaScript:

JavaScript не є повністю інтерпретованою чи компільованою мовою. Завдяки JIT-компіляції в сучасних рушіях, JavaScript можна вважати "половиною інтерпретованою, половиною компільованою" мовою.

Перекладено з: JavaScript Compiled yoki Interpreted til ?

Leave a Reply

Your email address will not be published. Required fields are marked *