Из моего урока чтения —
В свободные переменные (в функции активации):
Статическое определение объема: свободные переменные оцениваются в контексте определения вхождения функции. включают в себя много вы знаете: ML, Java,
C ++.Динамическое определение объема: свободные переменные в теле функции оцениваются в контексте вызова функции
- Статические языки: Общий
Включите много знакомых: ML, Java, C ++. Преимущества модульности проще
переменный доступ компилятором
Можете ли вы привести пример, который описывает, почему C ++ рассматривает как Статические языки ?
статический язык означает «статически типизированный язык». например, тип переменной не может быть изменен и определен статически во время компиляции.
Но не по какой-то причине, которую вы упомянули
int i = 10;
i
в int может быть char.
в противоположном Python, например:
>>> x = "yourname" # x is pointing string
>>> x = 5 # x pointing number
Таким образом, Python является примером «динамического типизированного языка»
Говорят, что язык программирования использует статическую типизацию, когда проверка типов выполняется во время компиляции, а не во время выполнения. In C++, variables need to be defined before they are used so that compilers know what type they are, and hence is statically typed
,
Пожалуйста, посмотрите на статьи ниже
http://www.jvoegele.com/software/langcomp.html
http://existentialtype.wordpress.com/2011/03/19/dynamic-languages-are-static-languages/
http://en.wikipedia.org/wiki/Type_system
http://en.wikipedia.org/wiki/C%2B%2B