Type system
컴퓨터 과학에서, 자료형 체계(type system)는 값, 표현식, 함수, 모듈 등을 분류하는 규칙의 집합이다. 보다 형식적으로는, "계산될 값을 분류하여 특정한 종류의 프로그램 오류가 일어나지 않음을 증명하는 계산 가능한 방법"으로 정의된다.
자료형 체계에서 각각의 계산된 값은 자료형을 갖는다. 자료형 체계는 프로그램 안에서 값의 흐름을 검토하여 자료형에 맞지 않는 값이 할당되는 것을 막는다. 자료형에 맞지 않는 값이 할당되는 것을 자료형 오류라고 부른다. 논리적으로 맞지 않는 자료형 사이의 연산이나 잘못된 메모리에 접근하는 경우가 이에 해당한다. 구체적으로 어떤 연산이 자료형 오류인지는 자료형 체계에 따라 다르다.
컴파일러는 정적 자료형을 통해 각 변수에 필요한 저장 용량과 연산 알고리즘을 최적화할 수 있다. 예를 들어 다수의 C 컴파일러의 "부동소수점" 자료형은, 단일 정밀도 부동 소수점 숫자에 대한 IEEE 표준에 따라 32 비트로 표시된다. 따라서 C 컴파일러는 부동소수점 자료형을 갖는 변수의 연산에는 그에 맞는 기계어 명령을 사용할 수 있다.
형식 제약의 깊이와 그 평가의 방법은 언어의 정형에 영향을 미친다. 프로그래밍 언어 추가 자료형 다형성의 경우 각 자료형에 대한 다양한 구체적인 알고리즘과 함께 작업을 연결할 수 있다. 형 이론은 컴퓨터 아키텍처, 컴파일러 구현 및 언어 디자인의 실용적인 문제에서 발생하는 자료형 체계의 연구이다.