[Python] Dynamic Language vs. Static Language
·
Programming
Python은 대표적인 dynamic (typed) langauge 이다. (dynamic language는 대부분 interpreter language 임.) 좀 더 엄밀하게 애기하면,Dynamic Language란 특정 동작이나 사항들이 runtime(실행 시간)에 결정되는 특징을 가진 Programming Language를 가르킴. comile 시점이 아닌 runtime에 해석되고 실행되며, type이나 호출할 method나 접근할 attribute가 runtime에 해석된다는 특징을 가지고 있다. 유연성이 높고 높은 생산성을 가지나, 성능은 static language 보다 떨어지며 코드가 길어질 경우 오류 탐지가 쉽지 않다는 단점을 가짐. Static (Typed) LanguageProgramm..
[CE] 프로그래머를 위한 (Logical) Memory 구조 : Stack, Heap, Code
·
Computer
하나의 프로그램(=instruction들의 집합, Process) 실행 시 OS에 의해서프로그램의 인스턴스인 process를 위해 마련되는 Memory의 구조는다음의 영역으로 구분가능.Kernel Space는 보통 메모리의 상위 주소에 할당되고, User Space는 하위 주소에 할당됨. 이 문서에 다루는 Process의 User Space의 메모리 구조는 엄밀하게 애기하면,MMU를 사용하지 않는 경우 memory 구조, 또는MMU를 사용하는 경우엔 사용자에게 보여지는 virtual memory의 구조 에 해당하는 내용임이 외에도 Kernel Space에 PCB(Process Control Block)이 생성됨.아래 그림은 OS와 program, cpu가 사용하는 logical memory (or vir..