Doctor Strange
Мыслитель
(6747)
1 месяц назад
интерпретируемый - Python, Lua. Выполняются интерпретатором
компилируемые - C/C++, Rust. Сразу машинный код
условно компилируемые - C#, Java. Компилируются в промежуточный код который выполняется виртуальной машиной
Андрей
Высший разум
(271615)
1 месяц назад
Разница между современными компилируемыми и интерпретируемыми языками не в том, как они выполняются (практически любой современный язык перед выполнением компилируется - либо в машинный код, либо в байт-код), а в том какой объём программного моделирования требуется в процессе выполнения кода программы.
К компилируемым относят языки, конструкции которых хорошо ложатся на систему команд процессора и кол-во дополнительных процессорных вычислений, моделирующих работу конструкций языка в процессе выполнения кода, минимально. Это Pascal, C, C++, C#, Java, Go, Rust и т.д. Обычно, компилируемые языки имеют статическую типизацию.
К интерпретируемым относят языки, в которых реализация конструкций языка требует большого количества процессорных вычислений в процессе выполнения кода. Это JavaScript, PHP, Python, Lua, Ruby и т.д. Обычно, интерпретируемые языки имеют динамическую типизацию.
Из-за разницы в объёме вычислений код, написанный на типичном компилируемом языке, работает раз в 10 быстрее, чем тот же код, написанный на типичном интерпретируемом языке. Но сам код на интерпретируемом языке обычно пишется в несколько раз быстрее, чем на компилируемом.