컴파일 타임(compile time)은 컴파일러에 의해 수행되는 동작(컴파일 타임 동작), 성공적으로 컴파일되기 위해서 소스 코드가 충족해야 하는 프로그래밍 언어 요구사항(컴파일 타임 요구사항), 또는 컴파일 동안 추론될 수 있는 프로그램의 속성을 나타낸다.

컴파일 타임에 수행되는 동작은 보통 구문 분석, 다양한 종류의 의미 분석(예를 들면 타입 검사 등) 그리고 코드 생성이다.

프로그래밍 언어 정의들은 보통 소스 코드가 충족해야 할 컴파일 타임 요구사항을 명시한다. 예를 들면, 언어는 추론될 수 있는 타입과 변수들에 의해 요구되는 저장소의 양을 규정한다.

범위 검사(예를 들면 배열 인덱스가 배열 경계를 초과하면 안된다 같이), 병행 언어에서의 데드락 자유 또는 타이밍(예를 들면 코드들이 할당된 시간의 양보다 더 많이 가져서는 안된다는 것 같이)을 포함하는 프로그램의 속성들은 컴파일 타임에 추론될 수 있다.

컴파일 타임은 링크 타임(하나 이상의 컴파일된 파일들이 같이 합쳐질 때)과 런타임(프로그램이 실행되었을 때) 전에 발생한다. 어떤 프로그래밍 언어에서는 이것은 런타임 시에 몇몇 컴파일과 링킹이 일어날 필요가 있다. 컴파일 타임과 링크 타임 사이에는 트레이드 오프가 있는데, 많은 컴파일 타임 동작들은 추가적인 런타임의 초래 없이 링크 타임에 따라질 수 있다.

"컴파일 타임"은 또한 컴파일 시에 요구되는 시간의 양을 나타내기도 한다.

같이 보기편집