Что происходит при запуске кода с точки зрения архитектуры ПО?

«Что происходит при запуске кода с точки зрения архитектуры ПО?» — вопрос из категории Архитектура, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Запуск кода — это процесс перевода написанной программы в выполняемые инструкции. С архитектурной точки зрения ключевые этапы зависят от языка и среды:

  1. Компилируемые языки (C, C++, Go):

    • Исходный код компилируется в машинный код (исполняемый файл).
    • Операционная система загружает этот файл в память, выделяет ресурсы и передает управление точке входа (например, функции main()).
  2. Языки с виртуальной машиной (Java, C#):

    • Код компилируется в промежуточный байт-код.
    • Виртуальная машина (JVM, CLR) загружает байт-код, выполняет JIT-компиляцию (Just-In-Time) в машинный код и управляет выполнением, памятью (сборка мусора) и безопасностью.
  3. Интерпретируемые языки (Python, JavaScript):

    • Интерпретатор построчно или поблочно (после парсинга в байт-код) читает и выполняет инструкции.
    • Среда выполнения управляет памятью и предоставляет доступ к API.

Общий принцип: код преобразуется в инструкции, которые процессор может выполнить, а среда выполнения управляет ресурсами и жизненным циклом программы.