런타임 라이브러리
Runtime library프로그램 실행 |
---|
일반적인 개념 |
코드의 종류 |
컴파일 전략 |
주목할 만한 런타임 |
주목할 만한 컴파일러 및 툴 체인 |
컴퓨터 프로그래밍에서 런타임 라이브러리는 컴파일러가 런타임 라이브러리의 호출을 컴파일된 실행 가능 바이너리에 삽입함으로써 런타임 환경의 동작 중 일부를 호출하기 위해 사용하는 낮은 수준의 루틴 집합입니다.런타임 환경은 프로그래밍 [1]언어의 실행 모델, 내장 함수 및 기타 기본 동작을 구현합니다.그 컴퓨터 프로그램의 실행(실행 시간) 중에 런타임 라이브러리에 대한 이러한 호출을 실행하면 실행 가능한 바이너리와 런타임 환경 간에 통신이 발생합니다.런타임 라이브러리에는 메모리 관리 또는 예외 [2]처리를 위한 기능이 내장되어 있는 경우가 많습니다.따라서 런타임 라이브러리는 항상 플랫폼과 컴파일러에 고유합니다.
런타임 라이브러리는 런타임 환경 동작의 일부를 구현할 수 있지만, 사용 가능한 콜의 코드를 읽는 경우 일반적으로 단순히 정보를 패키징하여 런타임 환경 또는 운영체제로 전송하는 씬 래퍼에 불과합니다.그러나 런타임 라이브러리라는 용어는 라이브러리 호출을 통해 직접 도달할 수 없는 런타임 환경 자체의 코드를 포함하는 것을 의미하기도 합니다.
예를 들어 실행 시에만 실행할 수 있는(또는 보다 효율적이거나 정확한) 언어 기능은 런타임 환경에서 구현되며 런타임 라이브러리 API를 통해 호출될 수 있습니다.예를 들어 일부 논리 오류, 배열 경계 검사, 동적 유형 검사, 예외 처리 및 가능한 디버깅 기능 등이 있습니다.이 때문에 개발 중에 고도의 컴파일 타임 체크와 테스트가 이루어졌음에도 불구하고 실제 데이터가 있는 "라이브" 환경에서 프로그램이 테스트될 때까지 일부 프로그래밍 버그가 발견되지 않습니다.
또 하나의 예로서 런타임 라이브러리는 컴파일 중에 인라이닝하기에는 너무 복잡한 임베디드 로우레벨 연산의 코드를 포함할 수 있습니다.예를 들어 타깃 CPU에 의해 직접 지원되지 않는 산술 연산의 실장이나 각종 컴파일러 고유의 연산과 [2][3]디렉티브가 포함됩니다.
런타임 라이브러리의 개념은 애플리케이션 프로그래머에 의해 생성되거나 서드파티에 의해 제공되는 일반적인 프로그램 라이브러리 또는 런타임에 링크된 프로그램 라이브러리를 의미하는 동적 라이브러리와 혼동해서는 안 됩니다.예를 들어, C 프로그래밍 언어에는 최소한의 런타임 라이브러리(일반적으로 호출)만 필요합니다.crt0
단, 각 [1]구현에서 제공해야 하는 대규모 표준 라이브러리(C 표준 라이브러리)를 정의합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ a b "The C Runtime Initialization, crt0.o". embecosm.com. 2010. Retrieved 2013-12-30.
- ^ a b "Internals of the GNU compilers, Chapter 4. The GCC low-level runtime library". gnu.org. Retrieved 2013-12-30.
- ^ "Other Built-in Functions Provided by GCC". GCC Introduction. gnu.org. Retrieved 2013-12-30.
외부 링크
- C 런타임 라이브러리가 뭐죠? (Stack Exchange)