Type 관련 용어들

By | 2009/11/12

  프로그래밍 언어론 시간에 배운 것으로 Type과 관련된 여러 용어들이 있습니다. 그 개념 자체는 어느 정도 프로그래밍을 하면서 알고 있지만 정작 해당 용어가 나왔을 때 이를 설명한다는 것은 어려웠습니다. 실제로 중간고사에서도 해당 문제가 나왔을 때 용어를 이해하지 못해 답을 제대로 할 수 없었습니다.

  그래서 이번 기회에 간단하게나마 제가 알고 있는 혹은 이해한 것을 여기에 적어 정리하기로 했습니다. 또한 구글 검색을 하여 관련 페이지를 참조에 링크하도록 하겠습니다. 매우 짧게 적을 것이고 아마 틀린 점이 있을 것입니다. 만약 그런 점이 있다면 지적 부탁 드립니다.

 

  • Type System은 type을 정의하는 mechanism과 type equivalence, compatibility, inference에 대한 rule로 이루어진다.
  • Type equivalence : 두 type이 서로 똑같은가?
  • Type compatibility : type A의 값을 type B에서 사용할 수 있는가?
  • Type inference : expression의 type이 무엇일까?
  • Strong typing : type이 같아야 OK. 아니면 error 발생.
  • Weak typing : Strong type checking의 반대말.
  • Static typing : compile time에 type checking 수행.
  • Dynamic typing : Static typing의 반대말. run time 때 수행. 예를 들어 배열의 경계 확인이 여기에 속함.
  • Structural equivalence : implementation-oriented 관점에서 구조가 같으면 같다고 하는 것. 하지만 설령 구조가 같더라도 프로그래머가 다르게 이름을 정한 것에는 이유가 있기에 현재 Name equivalence가 추세.
  • Name equivalence : 선언에서 type name에 기반함.
  • Type conversion : 어떤 type의 context를 다른 type에 맞게 바꾸는 것.
  • Type coercion : implicit type conversion.
  • Type cast : explicit type conversion.

 

참조

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.