История изменений
Исправление be_nt_all, (текущая версия) :
А я в юности читал древнюю (уже тогда далеко не новую, хотя потом было четыре пересмотренных переиздания) книжку Теренса Пратта «Языки программирования: разработка и реализация». Там языки сравниваются по времени связывания чего-то с чем-то. В языках со статической типизацией переменная связывается с типом во время компиляции, с динамической — во время исполнения. Более позднее время связывания влечёт за собой усложнение рантайма (и, следовательно, результат трансляции будет больше похож на интерпретатор, напомню, что чистый интерпретатор, это разве что какой-то bash, все языки программирования используют трансляцию исходного текста в некий промежуточный код). А ещё есть время связывания во время определения языка. Как знаки операций в C (но не C++). Такое время связывание позволяет писать быстрые и простые компиляторы (к С это относится, см. к примеру tcc, C++, очевидно, не из таких). Это если вкратце.
зы. В Питоне динамики/позднего связывания хватает.
Исправление be_nt_all, :
А я в юности читал древнюю (уже тогда далеко не новую, хотя потом было четыре пересмотренных переиздания) книжку Теренса Пратта «Языки программирования: разработка и реализация». Там языки сравниваются по времени связывания чего-то с чем-то. В языках со статической типизацией переменная связывается с типом во время компиляции, с динамической — во время исполнения. Более позднее время связывания влечёт за собой усложнение рантайма (и, следовательно, результат трансляции будет больше похож на интерпретатор, напомню, что чистый интерпретатор, это разве что какой-то bash, все языки программирования используют трансляцию исходного текста в некий промежуточный код). А ещё есть время связывания во время определения языка. Как знаки операций в C (но не C++). Такое время связывание позволяет писать быстрые и простые компиляторы (C++, очевидно, не из таких). Это если вкратце.
зы. В Питоне динамики/позднего связывания хватает.
Исходная версия be_nt_all, :
А я в юности читал древнюю (уже тогда далеко не новую, хотя потом было четыре пересмотренных переиздания) книжку Теренса Пратта «Языки программирования: разработка и реализация». Там языки сравниваются по времени связывания чего-то с чем-то. В языках со статической типизацией переменная связывается с типом во время компиляции, с динамической — во время исполнения. Более позднее время связывания влечёт за собой усложнение рантайма (и, следовательно, результат трансляции будет больше похож на интерпретатор, напомню, что чистый интерпретатор, это разве что какой-то bash, все языки программирования используют трансляцию исходного текста в некий промежуточный код). А ещё есть время связывания во время определения языка. Как знаки операций в C (но не C++). Такое время связывание позволяет писать быстрые и простые компиляторы (C++, очевидно, не из таких). Это если вкратце.