LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. |
LLVMプロジェクトは2017年2月に入ってから「Add a prototype for clangd(rL294291)」においてClangdのプロトタイプ版を追加したことを伝えた。Clangdはプログラミング言語サーバプロトコルの実装系。現時点ではまだ本当に基本となる部分しか実装されていないものの、実装系が追加されたことが注目される。今後開発が進んだ場合、統合開発環境や多機能エディタから利用できるようになり、現在よりもインタラクティブ性の高い開発が実現するものと見られる。
Clangd、またはClangサーバのコンセプトは2012年に開発者向けのメーリングリストに投函された「[cfe-dev]RFC: A proposal for a Clang-based service architecture」にまとまっている。Clangの提供する機能をJSONベースのAPI経由で利用できるようにしようというコンセプトで、統合開発環境からの利用が想定されている。
現在主流の統合開発環境および多機能エディタでは、開発時のインタラクティブ性が向上している。リアルタイムに入力されるコードを分析し、さまざまな分析およびサジェスト機能を動作させコーディングに役立つ提案などを行っている。
Clangdはこれを実現するために利用できるサーバで、Clangの提供する機能をサーバ経由で利用できるようになる見通し。実際に統合開発環境や多機能エディタで利用できるようになるにはまだ時間がかかると思われるが、完成後には開発者の開発効率に関与する重要な部分を担当するサーバとして機能することになるだろう。