Загрузка кода в память на разных языках программирования?
Самые примитивные интерпретаторы, например bash, считывают файл скрипта с диска построчно и одновременно выполняют каждую считанную строку. Обычные интерпретаторы читают файл, анализируют код, строят AST и уже его выполняют. Современные продвинутые интерпретаторы (такие как PHP, CPython и Javascript V8) после построения AST компилируют его в байткод и выполняют уже байткод. Чаще всего у интерпретируемых языков этот байткод остаётся только в памяти и не сохраняется на диск. В отличии от них, в Java и C# этапы анализа кода и компиляции его в байткод отделены от этапа выполнения байткода. Скомпилированный код сохраняется в файлах и после выполняется виртуальной машиной. Компилируемые языки (C, C++ и прочие) компилируют AST не в байткод, а сразу в машинные инструкции. Впрочем, и они в последнее время всё чаще используют LLVM.
Для компилируемых языков:
1. Бывают оверлейные структуры, которые подгружаются по потребности в память, но это тех времён, когда DOS был
2. Бывают плагины, которые лежат в dll и не обязательно загружаются при запуске программы
Для интерпретируемых - вроде бы логично, что загрузили в память и поинтерпретировали.