프로그래밍 언어론 7-2강. 타입 검사(Type Checking)

[프로그래밍 언어론]

2019. 12. 13. 16:48

 

[Type checking]

: 대부분의 static typed 언어에서, 객체(object)들에 대한 모든 정의는 객체의 타입을 명시해야 한다.

 

# 3가지의 타입 검사 방법

1) Type equivalence(타입 동등성)

 

2) Type Compatibility(타입 호환성) : 가장 중요, 타입 사용 가능 여부 결정한다.

  - type conversion ( = casting) : 한 타입의 값을 다른 타입의 값으로 바꾼다

  - type coercion(타입 자동 형변환) : 자동으로 conversion을 수행한다

  - nonconvertion type casts : 특정 값이 특정형태일때 다른 타입으로 처리하는 경우 (이상한 값이 주어진다, ex) int a  = 23을 char b = a로하면 ord코드로 인식..)

 

3) Type Inference(타입 추론)

  : 타입 선언이 필수가 아닌 언어 ML, Haskell등에서 컴파일러에 의해 생략된 타입을 추측해서 사용하는 방법이다.