Інтерпретатор (Interpreter)

Інтерпретатор — це програма, яка виконує код рядок за рядком без попередньогу перетворення його на машинну мову.

Process: 1. Lexical Analysis (Tokens). 2. Parsing (AST). 3. Bytecode Generation. 4. Execution (Dispatch Loop). Comparison: Interpreter vs. Compiler.

        graph LR
  Center["Інтерпретатор (Interpreter)"]:::main
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Простими словами

Це як вчитель іноземної мови, який читає тобі книжку і відразу перекладає кожне речення. Ти розумієш історію відразу, не чекаючи, поки вчитель перекладе всю книгу і надрукує її для тебе.

🤓 Expert Deep Dive

На технічному рівні інтерпретатори забезпечують високу 'Гнучкість' (Flexibility). Завдяки тому, що код аналізується під час виконання, мови програмування можуть підтримувати 'Динамічну типізацію' та зміну структури об'єктів 'на льоту'. Проте за це доводиться платити продуктивністю: інтерпретатор витрачає значну частину часу на аналіз тексту замість виконання корисних обчислень. Для вирішення цієї проблеми сучасні інтерпретатори використовують 'Кешування байт-коду', що дозволяє не перекладати один і той самий файл двічі, якщо він не змінювався.

📚 Джерела