「Low Level Virtual Machine」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Administrator
1行目: 1行目:
'''Low Level Virtual Machine'''(ろーれべるばーちゃるましーん,'''LLVM''')とは、様々な[[プログラミング言語]]の様々な[[コンパイラ]]に共通の「[[最適化]]」を提供する目的で開発されているコンパイラ基盤である。
+
'''Low Level Virtual Machine'''(ろーれべるばーちゃるましーん,'''LLVM''')とは、様々な[[プログラミング言語]]の様々な[[コンパイラ]]に共通の「[[最適化]]」を提供する目的で開発されている[[オープンソース]]なコンパイラ基盤である。
  
 
LLVMでは様々な[[プログラミング言語]]に「共通」の「最適化」を提供するため、LLVM対応コンパイラからLLVMが指定する[[中間コード]]形式で出力してもらうい、LLVMはその[[中間コード]]に対してプラットフォーム非依存の最適化、プラットフォーム依存の最適化など段階的な最適化を行い、最終的に[[ネイティブコード]]を出力する。
 
LLVMでは様々な[[プログラミング言語]]に「共通」の「最適化」を提供するため、LLVM対応コンパイラからLLVMが指定する[[中間コード]]形式で出力してもらうい、LLVMはその[[中間コード]]に対してプラットフォーム非依存の最適化、プラットフォーム依存の最適化など段階的な最適化を行い、最終的に[[ネイティブコード]]を出力する。

2012年7月2日 (月) 10:24時点における版

Low Level Virtual Machine(ろーれべるばーちゃるましーん,LLVM)とは、様々なプログラミング言語の様々なコンパイラに共通の「最適化」を提供する目的で開発されているオープンソースなコンパイラ基盤である。

LLVMでは様々なプログラミング言語に「共通」の「最適化」を提供するため、LLVM対応コンパイラからLLVMが指定する中間コード形式で出力してもらうい、LLVMはその中間コードに対してプラットフォーム非依存の最適化、プラットフォーム依存の最適化など段階的な最適化を行い、最終的にネイティブコードを出力する。

LLVMはRISCと非常によく似た命令セットを持つ極めて実在のCPUネイティブコードに近い仮想マシンおよび中間コードのひとつとなっており、Java VM(とJavaバイトコード)や共通言語基盤(と共通中間言語)などと比べると抽象度は極めて低く、あくまで最適化に徹するためガベージコレクションセキュリティサンドボックスなどの余計な機構は持たないという特徴がある。

LLVMでは「様々なプログラミング言語」という建前はあるが、その実態はGPL撲滅を訴えるBSD信者たちにより、gccにとって代わるべく開発が進められているclangと呼ばれるC言語コンパイラが主軸となっており、clangの意見・要望がまず第一優先されるという事実上の同一プロジェクトであると考えてほぼ間違いない。

関連項目

参考文献


外部リンク