타입의 개요 타입(type) = 데이터 집합 + 연산 집합 데이터 집합: 처리 대상인 데이터의 집합. 도메인(domain) 연산 집합: 해당 데이터에 적용 가능한 연산의 집합 타입 안전성(type safety) 프로그램 내 모든 연산, 함수에 대해 다음 성질이 만족 → 함수 f의 타입이 f(x): A → B 라면 모든 a ∈ A에 대해 f(a) ∈ B여야 함 타입 안전하면 타입 오류가 발생하지 않음 강타입(strongly typed) 언어: 타입 오류를 모두 검출하는 언어(Haskell, ML, Java) 약타입(weakly typed) 언어: 일부 타입 오류를 허용하는 언어(C) 무타입(typeless) 언어: 타입 선언문도 없고 어떤 대상의 타입이 계속 변경될 수 있는 언어(Python) 타입의 분류..