question: java creates code just before it is fully compiled to machine code
passage: JIT compilation is a combination of the two traditional approaches to translation to machine code -- ahead-of-time compilation (AOT), and interpretation -- and combines some advantages and drawbacks of both. Roughly, JIT compilation combines the speed of compiled code with the flexibility of interpretation, with the overhead of an interpreter and the additional overhead of compiling (not just interpreting). JIT compilation is a form of dynamic compilation, and allows adaptive optimization such as dynamic recompilation -- thus in theory JIT compilation can yield faster execution than static compilation. Interpretation and JIT compilation are particularly suited for dynamic programming languages, as the runtime system can handle late-bound data types and enforce security guarantees.
question_kg: Java машина кодуна толук компиляцияланганга чейин эле код түзөбү?
passage_kg: JIT компиляциясы машина кодуна которуунун эки салттуу ыкмасынын – алдын ала компиляциялоо (AOT) жана интерпретациялоонун – айкалышы болуп саналат жана экөөнүн тең айрым артыкчылыктарын жана кемчиликтерин бириктирет. Болжол менен, JIT компиляциясы компиляцияланган коддун ылдамдыгын интерпретациянын ийкемдүүлүгү менен, интерпретатордун кошумча чыгымы жана компиляциялоонун (интерпретациялоо гана эмес) кошумча чыгымы менен айкалыштырат. JIT компиляциясы динамикалык компиляциянын бир түрү болуп саналат жана динамикалык кайра компиляциялоо сыяктуу адаптивдүү оптимизацияга жол берет – ошентип, теориялык жактан JIT компиляциясы статикалык компиляцияга караганда тезирээк аткарууну камсыз кыла алат. Интерпретация жана JIT компиляциясы динамикалык программалоо тилдери үчүн өзгөчө ылайыктуу, анткени runtime системасы кеч байланган маалымат түрлөрүн иштетип, коопсуздук кепилдиктерин камсыз кыла алат.