Programing

"런타임"이란 무엇입니까?

lottogame 2020. 3. 3. 22:51
반응형

"런타임"이란 무엇입니까?


"C 런타임", "Visual C ++ 2008 런타임", ".NET 공용 언어 런타임"등과 같은 것들에 대해 들었습니다.

  • " 런타임 "이란 정확히 무엇입니까?
  • 무엇으로 만들어져 있나?
  • 코드와 어떻게 상호 작용합니까? 아니면 더 정확하게, 내 코드는 어떻게 제어됩니까?

Linux에서 어셈블리 언어를 코딩 할 때 INT 명령어를 사용하여 시스템을 호출 할 수 있습니다. 그렇다면 런타임은 저수준 기능을보다 추상적이고 고수준 기능으로 감싸는 사전 제작 된 기능 들일 뿐입니 까? 그러나 이것은 런타임이 아닌 라이브러리에 대한 정의처럼 보이지 않습니까?

"런타임"과 " 런타임 라이브러리 "는 서로 다른 두 가지입니까?

추가 1

요즘 런타임 에는 JVM과 같은 소위 Virtual Machine 과 공통점이 있다고 생각 합니다. 그러한 생각으로 이어지는 인용문은 다음과 같습니다.

이 컴파일 프로세스는 여러 계층의 추상화로 나눌 수있을 정도로 복잡하며 일반적으로 컴파일러, 가상 머신 구현 및 어셈블러의 세 가지 변환기가 필요합니다. --- 컴퓨팅 시스템의 요소 (소개, 하드웨어 랜드로 향하는 길)

추가 2

Expert C Programming : Deep C Secrets. 6 장 런타임 데이터 구조는이 질문에 대한 유용한 참고 자료입니다.


런타임은 프로그램이 실행 되는 동안 실행 되는 소프트웨어 / 명령 , 특히 명시 적으로 작성하지 않았지만 코드를 올바르게 실행하는 데 필요한 명령을 설명합니다.

C와 같은 저수준 언어는 런타임이 매우 작습니다 (있는 경우). 동적 메시지 전달을 허용하는 Objective-C와 같은보다 복잡한 언어는 훨씬 더 광범위한 런타임을 갖습니다.

런타임 코드 라이브러리 코드이지만, 라이브러리 코드에 의해 생성 된 코드 기술,보다 일반적인 용어이다 당신이 올바른지 어떤 라이브러리를. 런타임 코드는 특히 언어 자체의 기능을 구현하는 데 필요한 코드입니다.


런타임은 코드가 실행되는 모든 라이브러리, 프레임 워크 또는 플랫폼을 나타내는 일반적인 용어입니다.

C 및 C ++ 런타임은 함수 모음입니다.

.NET 런타임에는 중간 언어 인터프리터, 가비지 수집기 등이 포함되어 있습니다.


Wikipedia에 따라 : 런타임 라이브러리 / 런타임 시스템 .

컴퓨터 프로그래밍에서 런타임 라이브러리는 컴퓨터 프로그램의 런타임 (실행) 동안 프로그래밍 언어에 내장 된 기능을 구현하기 위해 컴파일러가 사용하는 특수 프로그램 라이브러리입니다. 여기에는 종종 입출력 및 메모리 관리 기능이 포함됩니다.


런타임 시스템 (런타임 시스템 또는 런타임이라고도 함)은 일부 컴퓨터 언어로 작성된 컴퓨터 프로그램의 실행을 지원하도록 설계된 소프트웨어입니다. 런타임 시스템에는 기본 하위 수준 명령의 구현이 포함되어 있으며 고급 명령도 구현할 수 있으며 형식 검사, 디버깅 및 코드 생성 및 최적화까지 지원할 수 있습니다. 런타임 시스템의 일부 서비스는 응용 프로그램 프로그래밍 인터페이스를 통해 프로그래머가 액세스 할 수 있지만 다른 서비스 (예 : 작업 예약 및 리소스 관리)에는 액세스 할 수 없습니다.


다시 : 당신의 편집 , "런타임"과 "런타임 라이브러리"는 같은 것에 대한 두 개의 다른 이름입니다.


실행 또는 실행 환경이 코드를 실행하고, 존재하는 언어 구현의 일부 런타임 ; 구현 컴파일 타임 부분을 C 표준에서 변환 환경 이라고합니다 .

예 :

  • Java 런타임은 가상 머신과 표준 라이브러리로 구성됩니다.

  • 공통 C 런타임은 로더 (운영 체제의 일부)와 컴파일러로 실행 파일에 내장되지 않은 C 언어 부분을 구현하는 런타임 라이브러리로 구성됩니다. 호스팅 환경에서 여기에는 표준 라이브러리의 대부분이 포함됩니다


내 이해에서 런타임 은 정확히 그것이 의미하는 것입니다-프로그램이 실행되는 시간. 런타임 / 런타임 또는 컴파일 타임에 어떤 일이 발생한다고 말할 수 있습니다 .

나는 런타임런타임 라이브러리 가 (두 개가 아닌 경우) 두 개의 분리 된 것이어야 한다고 생각 합니다 . "C 런타임"이 옳지 않은 것 같습니다. "C 런타임 라이브러리"라고합니다.

다른 질문에 대한 답변 : 런타임 이라는 용어 는 프로그램이 실행될 때 환경과 컨텍스트를 포함하도록 확장 될 수 있다고 생각합니다 .

  • 다른 프로세스, 운영 체제 및 사용 된 라이브러리의 상태, 기타 프로세스의 상태 등과 같이 프로그램이 실행되는 동안 "환경"이라고 할 수있는 모든 것으로 구성됩니다.
  • 일반적인 의미에서 코드와 상호 작용하지 않으며 코드가 작동하는 환경, 실행 중에 사용 가능한 코드를 정의합니다.

이 대답은 사실이나 정의가 아닌 내 의견을 확장시키는 것입니다.


매트 볼이 올바르게 대답했습니다. 나는 예를 들어 그것에 대해 말할 것입니다.

Turbo-Borland C / C ++ (1991 년의 3.1 버전) 컴파일러로 컴파일 된 프로그램을 실행하고 Win 98/2000 등과 같은 32 비트 버전의 Windows에서 실행되도록하십시오.

16 비트 컴파일러입니다. 그리고 모든 프로그램에 16 비트 포인터가있는 것을 볼 수 있습니다. OS가 32 비트 일 때 왜 그렇습니까? 컴파일러가 16 비트의 실행 환경을 설정하고 32 비트 버전의 OS가이를 지원했기 때문에.

일반적으로 JRE (Java Runtime Environment)는 Java 프로그램에 실행에 필요한 모든 자원을 제공합니다.

실제로 런타임 환경은 Virtual Machines의 핵심 아이디어입니다. 가상 머신 은 하드웨어와 프로그램 실행에 필요한 원시 인터페이스를 구현합니다 . 런타임 환경은 이러한 인터페이스를 채택하여 프로그래머가 사용할 수 있도록 제공합니다. 컴파일러 개발자는 프로그램에 실행 환경을 제공하기 위해 이러한 기능이 필요합니다.


코드가 실제로 생성되는 시간을 정확하게 실행하면 코드가하는 중요한 일을 많이 볼 수 있습니다.

런타임은 (파일 서비스, IO 서비스 .. 네트워크 서비스 등) 같은 운영 체제의 하위 시스템을 사용하여 메모리 할당, 메모리 해제, 책임이 있습니다

실제로 코드를 실행할 때까지 코드를 "작업 중"이라고합니다. 런타임은이를 해결하는 데 도움이되는 친구입니다.


런타임은 프로그램 수명의 현재 단계 (런타임 / 컴파일 시간 /로드 시간 / 링크 시간)를 나타내거나 실행 라이브러리와 인터페이스하는 기본 하위 수준 작업을 형성하는 런타임 라이브러리를 의미 할 수 있습니다. 또는 실행 시스템과 동일한 런타임 시스템을 의미 할 수 있습니다.

C 프로그램의 경우 런타임은 C 환경에서 요구하는 스택, 힙 등을 설정하는 코드입니다. 본질적으로 언어가 약속 한 환경을 설정합니다. (런타임 라이브러리 구성 요소, crt0.lib 또는 C의 경우와 유사한 것을 가질 수 있음)


나는 다음과 같은 폴더 구조 가 무엇인지 이해하는 데 매우 통찰력있는 컨텍스트를 만든다는 것을 알았습니다 runtime.

Mozilla XulRunner의 런타임

' 소스 '가 있고 ' SDK '또는 '소프트웨어 개발 키트'가있는 것을 알 수 Runtime있습니다. 런타임에 실행되는 것들. 내용은 다음과 같습니다.

런타임 폴더 내용

win32 zip에는 .exe -s 및 .dll -s가 포함됩니다.

예를 들어. C 런타임은 C 런타임 라이브러리, .so-s 또는 .dll -s와 같은 파일입니다. C 언어 ( '종이'로)를 선택한 다음 선택한 C 구현으로 구현하십시오. 그런 다음 해당 구현의 런타임을 사용하여 구현합니다.

즉, 약간의 편광으로 인해 새로운 C 기반 프로그램 사용자에게 필요한 실행 파일이 있습니다. C 기반 프로그램의 개발자로서 당신도 마찬가지이지만 C 컴파일러와 C 라이브러리 헤더도 필요합니다. 사용자는 필요하지 않습니다.


런타임은 기본적으로 프로그램이 기계의 하드웨어 및 운영 체제와 상호 작용할 때를 의미합니다. C에는 자체 런타임이 없지만 대신 운영 체제 (기본적으로 램의 일부)에서 런타임을 요청하여 자체를 실행합니다.


MSDN 설명서의 다음 섹션에서는 대부분의 질문을 다룹니다. http://msdn.microsoft.com/en-us/library/8bs2ecf4(VS.71).aspx

이게 도움이 되길 바란다.

고마워요, 데미안


런타임은 디자인 타임 및 컴파일 타임 / 링크 타임과 반대입니다. 역사적으로 기계 시간이 비싼 느린 메인 프레임 환경에서 비롯되었습니다.


런타임은 실행 중에 어떤 유형의 객체가 생성되는지 알 수없는 인스턴스이며, 객체 생성은 특정 조건 또는 일부 계산 작업을 기반으로합니다. 반대로, 컴파일 시간은 필요한 객체가 실행되기 전에 사용자가 정의한 인스턴스입니다.

참고 URL : https://stackoverflow.com/questions/3900549/what-is-runtime



반응형