動的コンパイル
動的コンパイル(どうてきコンパイル、英: Dynamic compilation)とは、 プログラミング言語の実装で用いられる、プログラムの性能を実行時に向上させるための手法である。この技術はSelf プログラミング言語を起源とており、これを用いる最もよく知られた言語は Java である。動的コンパイルはランタイムにのみ知ることができる情報による最適化を可能にする。
通例動的コンパイルを用いる実行環境は、プログラムを開始後最初の数分間は低速で実行し、その後コンパイルと再コンパイルが完了すると、高速に実行する。このように開始直後パフォーマンスが低いことにより、動的コンパイルが好ましくない状況も存在する。また動的コンパイルの大半の実装では、初回のコンパイル時に実行可能な最適化も実行時に更なるコンパイルが行われるまで遅延させるため、不要にプログラムの動作を遅延させてしまうことがある。ジャストインタイムコンパイル (JITコンパイル) は、動的コンパイルの形態の一つである。
密接な関連のある技術として、増分コンパイルがある。増分コンパイラは、POP-2、POP-11、MaclispなどのLispの一部、またMLプログラミング言語の少なくとも一つのバージョン (Poplog) で用いられている。