Skip to content

Latest commit

 

History

History
11 lines (10 loc) · 1.99 KB

강타입 Strongly Typed.md

File metadata and controls

11 lines (10 loc) · 1.99 KB

[[힌들리 밀너 Hindley–Milner]]처럼 강력한 타입 시스템을 가진 언어들을 부르는 말.

  • 만약 어떤 언어에서 형 선언이 값 혼자가 아닌 변수에 선언되어 있으면 강형 언어이고, 값에만 형이 연결되어 있으면 약형 언어이다. (정확한 용어는 정적 형 선언과 동적 형 선언이다.)
  • 만약 어떤 언어가 컴파일 시간에 형 제한 위반에 대한 체크를 한다면 강형 언어이고, 모든 체크가 실행 시간에 이루어지면 약형 언어이다.
  • 만약 어떤 언어가 컴파일 시간 또는 실행 시간에 형 제한 위반에 대한 체크를 한다면 강형 언어이고, 아무 체크도 하지 않는다면 약형 언어이다.
  • 만약 어떤 언어에서 서로 다른 형 사이의 변환이 금지되어 있으면 강형 언어이고, 그러한 변환이 허용되면 약형 언어이다.
  • 만약 어떤 언어에서 서로 다른 형 사이의 변환이 항상 명시적으로 지정되어 있어야 한다면 강형 언어이고, 묵시적인 변환이 허용된다면 약형 언어이다.
  • 만약 어떤 언어에서 형 체계를 비활성시키거나 피해 가는 언어 수준에서의 방법이 존재하지 않으면 강형 언어이고, C 스타일의 캐스팅이나 다른 방법들이 존재하면 약형 언어이다.
  • 만약 어떤 언어가 복합 형에 대해서 복합적이고 잘 정의된 형 체계를 갖추고 있다면 강형 언어이고, 적은 수의 형이나 스칼라 형만이 존재할 경우 약형 언어이다.
  • 만약 어떤 언어에서 어떤 객체의 형이 고정되어 있고 객체의 생존 시간 동안에 변하지 않는다면 (보통 "정적 형 선언"이라 부름) 강형 언어이고, 그 형이 변할 수 있다면 약형 언어이다.
  • 만약 어떤 언어의 형 체계가 실행 시간에서의 행동에 대해 강한 보장을 한다면 강형 언어이고, 그러한 보장을 하지 않는다면 약형 언어일 가능성이 높다.