Python은 대표적인 dynamic langauge
이다. (흔히, dynamic language를 scripting language라고도 부름)
Static (Typed) Language
Programming Language들 중에서 comiler language들의 경우 대부분이 static language로서
- variable을 사용하기 전에 반드시 declaration(선언)을 해야하고,
- 이때 해당 variable의
tyep
이 명시적(explicitly)으로 정해지며 explicit casting
(명시적 형변환)을 하는 경우를 제외하곤 해당 type이 변하지 않음.
C
, C++
, Java
등이 static language의 대표적 예들임.
Static Language에서
variable은 type이 지정되며,
해당 type에 따른 적절한 크기의 memory location에 binding (실제 data가 저장되는 공간을 의미)됨.
Dynamic (Typed) Language
Dynamic Language들은 대부분 interpreter를 사용하며,
Variable은 단순히 특정 object (=memory가 할당되어 있고 특정 type을 가짐)를 참조하는 name (or reference) 에 불과함
(즉, Type이 없음).
Variable assignment (변수에 값을 할당)할 때 해당 variable이 가르키는 object가 결정되는 것임.
- assignment를 다시 할 경우, 해당 variable이 가르키고 있는 object가 바뀌는 것임.
- 만일 다른 type의 object를 assignment했다면 마치 variable의 type이 바뀐 것처럼 보임
(엄밀하게 애기하면 type이 바뀌는 것이 아닌 참조 대상 object 자체가 바뀐 것임.)
2023.06.13 - [Programming] - [Python] Strong Typing이란? with Object - 이 같은 dynamic language는 static language에 비해 수행속도가 느리다는 단점을 가짐.
Python은 대표적인 dynamic language로서
Python Virtual Machine (PVM)을 통해,
수행속도가 느리다는 단점을 개선하면서 dynamic language의 편리함을 유지하고 있다.
Dynamic Language에서 Variable은
어떤 object에 가르키는(참조하는) name (=reference)에 불과하며
type 등의 속성을 가지고 있지 않음.
참고로, Python에서 object는 type을 가진다.
Python Virtual Machine이란
2023.06.05 - [Programming] - [Python] Interpreter and PVM (Python Virtual Machine)
'Programming' 카테고리의 다른 글
[WSL] Install WSL (Windows Subsystem for Linux) (0) | 2023.06.12 |
---|---|
[Python] Python 소개? (0) | 2023.06.12 |
[Python] Keyword란? (Soft Keyword 포함) (0) | 2023.06.11 |
[Python] Comments and Docstrings (0) | 2023.06.11 |
[Basic] namespace, frame, and context (0) | 2023.06.11 |