컴파일 시간
Compile time프로그램 실행 |
---|
일반적인 개념 |
코드의 종류 |
컴파일 전략 |
주목할 만한 런타임 |
주목할 만한 컴파일러 및 툴 체인 |
컴퓨터 과학에서 컴파일 시간(또는 컴파일 시간)은 컴퓨터 프로그램이 컴파일되는 시간대를 말합니다.이 용어는 프로그램 실행 컨텍스트(런타임)와 관련된 개념과는 대조적으로 프로그램 컴파일 컨텍스트와 관련된 개념을 설명하는 형용사로 사용됩니다.예를 들어 컴파일 시간 요건은 컴파일 전에 소스 코드로 충족해야 하는 프로그래밍 언어 요건이며 컴파일 시간 속성은 컴파일 중에 추론할 수 있는 프로그램의 속성입니다.프로그램을 컴파일하는 데 걸리는 실제 시간을 보통 컴파일 시간이라고 합니다.
컴파일 시간/조기 바인딩 vs 런타임
실행 모델의 결정은 컴파일 시간 단계에서 설정되었습니다.실행 시간 - 실행 및 할당 방법이 실행 시간 동안 설정되고 실행 시간 동적성에 기반합니다.
개요
대부분의 컴파일러에는 구문 분석, 의미 분석 및 코드 생성의 적어도 다음 컴파일러 단계가 있습니다(따라서 컴파일 시 발생합니다).최적화 단계 동안 소스 코드의 상수 표현식은 컴파일 시간 실행을 사용하여 컴파일 시간에 평가될 수 있으며, 이를 통해 상수 표현식을 단일 값으로 줄일 수 있습니다.이것은 정확성을 위해 필요한 것은 아니지만 실행 시 프로그램 성능을 향상시킵니다.
프로그래밍 언어 정의는 보통 소스 코드가 성공적으로 컴파일되기 위해 충족해야 하는 컴파일 시간 요건을 지정합니다.예를 들어, 언어에는 유형 및 변수별로 필요한 저장 공간을 추론할 수 있도록 규정되어 있습니다.
컴파일 시에 추론할 수 있는 프로그램의 속성에는 범위 체크(예를 들어 어레이 인덱스가 어레이 경계를 넘지 않음을 증명함), 동시 언어의 교착 상태 자유 또는 타이밍(예를 들어 일련의 코드가 할당된 시간보다 적게 걸린다는 것을 증명함) 등이 있습니다.
컴파일 시간은 링크 시간(하나 이상의 컴파일된 파일의 출력이 결합되는 경우)과 런타임(프로그램 실행 시) 전에 발생합니다.동적 컴파일의 경우이지만 기계어로의 최종 변환은 런타임에 발생합니다.
많은 컴파일 시간 작업이 런타임 비용을 들이지 않고 링크 시간으로 지연될 수 있다는 점에서 컴파일 시간과 링크 시간 사이에 트레이드오프가 있습니다.