링크 타임

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

링크 타임은 일반적으로 외부 참조 객체 및 함수의 주소 수정, 모듈 간 검사, 외부 변수 해결 등 다양한 작업을 수행하는 과정이다. 일부 컴파일러 최적화는 링크 타임까지 코드 생성을 지연시키며, 링크 타임 최적화(LTO)는 링크 타임에 활성화된다. 프로그래밍 언어 정의에 따라 소스 코드 컴파일을 위해 충족해야 하는 링크 타임 요구 사항이 지정될 수 있으며, 일부 프로그래밍 언어에서는 런타임에 컴파일 및 링크가 필요할 수 있다.

링크 타임
📚 더 읽어볼만한 페이지
  • 컴파일러 구성 - 구문 분석
    구문 분석은 입력 데이터를 구조화된 형태로 변환하는 과정으로, 컴퓨터 언어에서는 소스 코드를 분석하여 추상 구문 트리를 생성하고, 자연어 처리에서는 텍스트의 문장 구조와 의미를 분석한다.
  • 컴파일러 구성 - 바이너리 재컴파일러

2. 링크 타임 작업

링크 타임은 컴파일된 코드 파일들과 라이브러리들을 결합하고, 프로그램 실행에 필요한 다양한 작업을 수행하는 과정이다. 이 과정에는 외부 참조 객체 및 함수의 주소 수정, 다양한 모듈 간의 검사 (예: 외부 식별자에 대한 자료형 검사, 일부 언어의 템플릿 인스턴스화) 등이 포함된다.

2.1. 주요 작업

외부 참조 객체 및 함수의 주소를 수정하고, 다양한 종류의 모듈 간 검사(예: 외부에서 보이는 식별자에 대한 자료형 검사 및 일부 언어의 템플릿 인스턴스화)를 포함한다. 일부 최적화 컴파일러는 링크 타임까지 코드 생성을 지연시키는데, 이는 전체 프로그램에 대한 정보를 얻을 수 있는 시점이 바로 이때이기 때문이다. 프로그램 내의 외부 변수 해결 또한 링크 타임에 수행된다.

링크 타임 최적화(LTO)는 활성화되면 링크 타임에 발생한다.

2.2. 추가 작업

일부 최적화 컴파일러는 전체 프로그램에 대한 정보를 얻을 수 있는 링크 타임까지 코드 생성을 지연시키기도 한다. 프로그램 내의 외부 변수 해결 또한 링크 타임에 수행된다.

링크 타임 최적화(LTO)는 활성화되면 링크 타임에 발생한다.

3. 링크 타임 요구 사항

프로그래밍 언어 정의에 따라 소스 코드가 성공적으로 컴파일되기 위해 충족해야 하는 링크 타임 요구 사항이 지정될 수 있다. 예를 들어, 외부에서 보이는 식별자의 최대 문자 수 제한 등이 있을 수 있다.

4. 예외

일부 프로그래밍 언어에서는 실행 시간에 일부 컴파일 및 링크가 필요할 수 있다.