[현재 기본적으로 사용되지 않는 다른 답변에 대해서는 편집 기록을 참조하십시오.]
예, C 및 / 또는 C ++ 용 JIT 컴파일러가 있습니다.
CLing (게임에서 짐작할 수 있듯이)은 Clang / LLVM을 기반으로합니다. 통역사처럼 행동합니다. 즉, 소스 코드를 제공하고 실행할 명령을 실행하면 실행됩니다. 여기서 강조는 최대 최적화가 아니라 편의성 및 빠른 컴파일에 주로 중점을 둡니다. 따라서 기술적으로 질문 자체에 대한 답변이지만 OP의 의도와는 잘 맞지 않습니다.
또 다른 가능성은 NativeJIT 입니다. 이것은 질문에 다소 다르게 적용됩니다. 특히 C 또는 C ++ 소스 코드를 허용하지 않고 컴파일하여 실행합니다. 오히려 C ++ 프로그램으로 컴파일 할 수있는 작은 컴파일러입니다. C ++ 프로그램 내에서 기본적으로 EDSL로 표현되는 표현식을 받아 들여 실제 머신 코드를 생성하여 실행할 수 있습니다. 이것은 일반적인 컴파일러로 대부분의 프로그램을 컴파일 할 수 있지만 런타임까지 알 수없는 몇 가지 표현을 가지고 있으며 최적의 실행 속도에 근접한 것으로 실행하려는 프레임 워크에 훨씬 적합합니다.
원래 질문의 명백한 의도에 관해서는, 나는 원래의 대답의 기본 요점이 여전히 존재한다고 생각합니다 .JIT 컴파일러 는 한 실행에서 다음 실행까지 다양하거나 단일 실행 동안 동적으로 변하는 데이터와 같은 것들에 적응할 수 있습니다 . 현실은 이것이 적어도 일반적으로 최소한의 차이를 만든다는 것입니다. 대부분의 경우 컴파일러를 런타임에 실행하면 상당히 많은 최적화를 포기해야하므로 일반적으로 기대하는 최선의 방법은 일반적인 컴파일러가 생성하는 속도만큼 빠르다는 것입니다.
JIT 컴파일러 가 사용할 수있는 정보 가 기존 컴파일러보다 실질적으로 더 나은 코드를 생성 할 수 있는 상황을 가정 할 수 는 있지만 실제로 이런 경우는 매우 드문 것으로 보입니다 (대부분의 경우 검증 할 수있는 경우) 정적 컴파일 모델이 아닌 소스 코드의 문제로 인해 실제로 발생했습니다.)