読み方 : クラン

Clang

概要

Clangとは、C言語、C++言語、Objective-Cなどのプログラミング言語用に開発されたコンパイラフロントエンド。LLVMプロジェクトの一部として開発されており、ソースコードLLVMの中間表現に変換する。
Clangのイメージ画像

LLVMLow Level Virtual Machine)ではコンパイラの役割が「フロントエンド」と「バックエンド」に分かれており、Clangはフロントエンドとしてソースコード字句解析構文解析意味解析を行い、LLVMの内部的な中間表現(IR:Intermediate Representation)を生成する。

この中間表現をLLVMバックエンドが受け取り、x86やARMRISC-Vなど各CPUアーキテクチャ向けのネイティブコードを生成する。フロントエンドバックエンドが分離しているため、単一のコードで様々な機種に対応でき、新しいハードウェアアーキテクチャへの対応を追加しやすい。

古くから存在する有力なコンパイラgcc」(GNU Compiler Collection)と比べると、コンパイル速度が比較的速く、モジュール機能やプリコンパイルヘッダなどを活用することで大規模プロジェクトビルド時間を短縮できる。エラーメッセージや警告メッセージの表示も詳細で読みやすいとされる。

オープンソースとして公開されており、LinuxWindows、macOSなど様々な環境で利用できる。macOSとiOS向けの開発では米アップル(Apple)社がClangをXcodeのデフォルトコンパイラとして採用しており、Objective-CおよびSwiftコンパイルにも使用されている。FreeBSDもシステムのデフォルトコンパイラをgccからClangに移行している。

静的解析ツールの「Clang Static Analyzer」や、C++言語のコードフォーマッタである「clang-format」、コード補完や定義ジャンプなどの言語サーバ機能を提供する「clangd」もClangを基盤としており、IDEエディタのC++対応機能として広く使われている。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。