Почему языки динамического типа интерпретируются, а языки статического типа являются языком времени компиляции?

Я всегда слышал, что языки времени компиляции (Java, C ++ и т. Д.) Статически типизированы, а языки интерпретации (PHP, Python и т. Д.) Динамически типизированы, но вопрос в том, почему они есть, почему язык компиляции не может быть динамически типизированным и наоборот Versa?

0

Решение

Это зависит строго от языка, например У Java есть смешанный режим, где код, который выполняется реже, интерпретируется только. Компиляция кода может быть дорогой, поэтому, если скомпилированный код не выполняется много раз после компиляции, затраченные на компиляцию усилия не будут стоить этого.

1

Другие решения

Это не совсем правда. Java-байт-коды могут интерпретироваться, на самом деле они интерпретировались только до JDK 1.1.5ish. JavaScript часто компилируется.

Тем не менее, интерпретатор для динамического языка действительно легко написать. Возможно, попробуйте. Языки со статической типизацией немного сложнее, так что вы можете скомпилировать их в любом случае. С другой стороны, для разумной компиляции динамического языка требуются некоторые усилия.

1

По вопросам рекламы [email protected]