본문 바로가기
프로그래밍 놀이터/Tips

Strong / Weak / Dynamic / Static type

by 돼지왕 왕돼지 2017. 6. 5.
반응형

 Strong / Weak / Dynamic / Static type


http://nvec.egloos.com/2251285

http://en.wikipedia.org/wiki/Strong_and_weak_typing


-

Dynamic typing 은 변수의 타입이 프로그램의 어느 시점에서든 변경이 가능하고, ( Runtime 에 결정 )

Static typing  은 그렇지 않다. ( Compile time 에 결정 )



-

Strong type 은 프로그램을 보고 바로 에러를 찾아낼 수 있는 것이고,

Weak type 은 그렇지 않다.


Strong type 은 해당 type 에 할 수 있는 일들이 명확하게 정의되어 있다.

Weak type  은 사용되는 시점에 암시적으로 cast 가 될 수도 있고, ad-hoc polymorphism 도 될 수 있다.


다시 말하자면, Strong type 은 다른 type 과의 operation 이 지원되지 않고, weak type 은 어느 정도 지원된다.



-

몇몇 글에 따르면 어떤 언어에 대해 완벽히 strong / weak type 을 갖고 있다고 구분하기는 어렵다고 한다.

Java 의 경우는 보통 strong type 이라고 이야기하지만, 사실 string 과 int 의 + 연산시에는 implicit cast 가 일어난다.



-

Strong type 과 Weak type 의 장단점을 비교한 글이 있는데,

Strong type 의 경우는 나름 엄격한 규칙을 그대로 적용하고 있기 때문에 동작이 예상 가능한 코드의 형태가 되고,

Weak type 의 경우는 엄격하지 않은 규칙을 적용하여 동작 예상이 틀린 경우가 발생할 수도 있으나, 코드가 간단해지는 장점이 보통 있다.




반응형

댓글