きりかノート 3冊め

おあそびプログラミング

Chris Hanson - LLVM terminology

最近とりあげることの多いLLVM(というかclang)について、簡潔な説明が"Chris Hanson - LLVM terminology"にあがってた。
Cocoa勉強会で自分も似たような話をしたけれど、こちらのほうがまとまっていてわかりやすい。

かなりてきとーだけど、英語のままよりアクセシビリティが上がると思うので訳しておく。訂正等歓迎。

LLVM terminology (LLVM用語集)

I thought the proper terminology was worth pointing out, since I've seen — and heard — some misuses lately.

私は適切な用語を示す必要があると考えています。ここのところ誤用を目(もしくは耳)にするようになったからです。

LLVM is the Low-Level Virtual Machine and the project surrounding it.

LLVMは低レベルの仮想マシンで、LLVMプロジェクトの中心になります。

LLVM-GCC is a compiler that uses GCC for its front-end and LLVM for its back-end.

LLVM-GCCGCCをフロントエンドに、バックエンドをLLVMとして利用するコンパイラです。

Clang is the C language family front-end that is part of the LLVM project. It's a parser, semantic analyzer, and code generator — in other words, a compiler front-end that uses LLVM for its back-end.

Clangは、C言語系のフロントエンドで、LLVMプロジェクトの一部です。Clangは、パーサ、構文解析、コードジェネレータで、言い換えると、LLVMをバックエンドとして利用するコンパイラフロントエンドです。

The Clang Static Analyzer is what people have been trying out lately, to find subtle bugs in their and other projects. It's a great tool.

Clangの静的解析は、人々が最近挑戦しているもので、彼ら自身や他のプロジェクトの微妙なバグを見つけることができます。これはすばらしいツールです。

I just thought this was important to mention, because people have been referring to "LLVM" instead of "LLVM-GCC" in reference to the compiler included in Xcode 3.1, and people have been referring to "Clang" instead of "the Clang Static Analyzer" in reference to what they've been using to find bugs in their projects.

私は以上のことに言及する価値があると考えています。人々が"LLVM"という語をXcode 3.1に含まれるコンパイラ"LLVM-GCC"のこととして言及していて、"Clang"という語をプロジェクトのバグを見つけるのに使う"the Clang Static Analyzer"のこととして言及しているからです。

よけいなお世話だけど訳注

フロントエンド・バックエンドという組み合わせで見ると、

フ\バGCCLLVM
GCCふつうのGCCLLVM-GCC (Xcode3.1で登場)
Clang(存在しない)コンパイラとしてのClang

ということになる。LLVMはその名のとおり仮想マシンコンパイラではない。コンパイラが生成したバイトコードを実行するものだ。

the Clang Static Analyzerにはこの機能名のようなものしかなく、最近急激に利用者が増えている(コンパイラとしての利用はごく少数のまま)のが混乱を助長している。
ぼくは静的解析の際に実行するコマンド名をとって、"clang scan-build"と書くようにしているけれど、これは正式な呼称とかではないので注意。
誰か早く名前をつけて…