Оглавление
Реализация языка программирования
-
Реализация языков программирования
- Интерпретация: программа выполняется интерпретатором, который переводит ее в действия.
- Компиляция: программа преобразуется в другой язык, такой как байт-код или машинный код, для выполнения аппаратно или другим интерпретатором.
-
Интерпретаторы
- Интерпретатор состоит из синтаксического анализатора и вычислителя.
- Синтаксический анализатор разбивает программу на компоненты, а вычислитель выполняет программу на основе дерева синтаксического анализа.
-
Виртуальные машины
- Виртуальная машина интерпретирует байт-код, который является переносимым низкоуровневым кодом.
- Многие языки, включая Java, Python и C#, компилируются в байт-код перед интерпретацией.
-
Компиляторы “точно в срок”
- JIT-компиляторы (just-in-time) повышают эффективность выполнения байт-кода, компилируя повторно используемые части в машинный код.
- JIT-компиляторы стремятся найти баланс между временем компиляции и временем выполнения.
-
Компиляторы
- Компиляторы переводят программы с одного языка на другой, обычно состоят из трех этапов: интерфейс, оптимизатор и серверная часть.
- Транспиляторы могут использоваться для расширения языков или упрощения разработки компиляторов.
-
Примеры реализаций
- Smalltalk обычно компилируется в байт-код и выполняется на виртуальной машине, что делает его переносимым.
- Python имеет несколько реализаций, включая CPython, IronPython, Jython и PyPy, каждая из которых имеет свои особенности.