Visual StudioでC++のコードを書いていて、オブジェクトのあとに.を打つと、メンバー関数の一覧がすっと出てくる。あの補完機能IntelliSenseは、実はMicrosoftが自分で書いたコードではない。2026年9月30日、IntelliSenseが裏で頼ってきたC++解析エンジンのソースコードが、誰でも読める場所に公開された。
開発してきたのはEdison Design Group(EDG)という会社だ。30年にわたってコードを非公開にしてきたが、2026-09-30の発表でThe C++ Allianceという非営利団体に運営を引き継いだ。ライセンス料なしに、誰でも使い、改造し、商用製品に組み込めるようになった。
IntelliSenseを作ったのは誰か
MicrosoftのC++チームは、2009年5月27日の公式ブログでIntelliSenseの再構築について説明している。対象はVisual Studio 2010だ。そこで明かされているのは、Microsoftが解析エンジンを自社で書き直す代わりに、他社の部品を採用したといういきさつだ。
We identified a third and final option: licensing a front-end component for the purposes of the IDE…we knew of a state-of-the-art component built by the Edison Design Group
Microsoft公式ブログによれば、採用の決め手は、EDGの実装がIDEの機能構築に使いやすい「高レベルな情報表現」をすでに備えていたことだった。自分はこの記事を調べるまで、大手のIDE機能は自社製だろうと思い込んでいた。実際には、IntelliSenseの中核はMicrosoft製ではなく、ニュージャージー州の小さな会社が作った部品だった。
ここで次の疑問が浮かぶ。Microsoftほどの会社が、なぜC++を読み解く部分を自分で書かずに他社へ委ねたのか。
C++を読み解くコードが難しい理由
IntelliSenseは、.の前の文字列を単なる文字の並びとして見ていない。コードの構造として理解しているから、メンバーの一覧に答えられる。コンパイラやIDEの中で、ソースコードを読み、この構造を組み立てる部分には名前がある。「フロントエンド」と呼ぶ。IntelliSenseが頼ってきたのは、このフロントエンドの仕事そのものだった。
C++のフロントエンドが厄介なのは、同じソースコードでもコンパイラによって解釈が微妙に食い違う「方言」があるからだ。GCCでコンパイルが通ったコードがClangでは通らない、MSVCだけが許す書き方がある、といったずれが実際に存在する。EDGのリポジトリのREADMEには、開発の目標がこう書かれている。
its excellent parsing compatibility and bug emulation, to make sure source that compiles with Clang, GCC, and MSVC compiles with EDG
つまりEDGは、C++の文法を正しく解釈するだけの実装ではない。GCC・Clang・MSVCそれぞれの「クセ」や既知のバグまで再現し、3つのどれでも通るコードは自分も通すことを掲げてきた。だからこそ、自分で書くより、方言ごとの癖を30年分飲み込んだ1社の実装を借りる方が割に合う会社が多かった。
では、実際にどれだけの会社がEDGに頼ってきたのか。
183社が頼ったC++解析エンジン
EDG自身が公開する顧客ページには、2017年1月時点で「183 commercial licensees of the C++ Front End」がいたと明記されている。名前が挙がっている顧客を見ると、組み込み機器向けコンパイラと静的解析ツールの大手が並ぶ。
| 分野 | 名前が挙がる顧客(一部) |
|---|---|
| 組み込み機器向けコンパイラ | Green Hills Software、IAR Systems、Keil Software、TASKING、Wind River Systems |
| 静的解析・コード検査ツール | Coverity、Grammatech、Parasoft |
| 半導体・ハードウェア | Texas Instruments、Analog Devices、Cray Inc. |
このページ自体が「競合上の理由で名前を出したくない顧客もいる」と明記しており、これは公開できる範囲の部分リストにすぎない。183という数字は、IntelliSense1件にとどまらない規模を示している。
さらに興味を引かれたのは、EDGのFAQにある一文だ。顧客にIntelとMicrosoftが含まれるかという質問に対し、EDGはこう答えている。
Due to the cautious nature of lawyers, we can’t actually say whether Intel is a customer, but apparently Intel itself can
(EDG FAQより)
Microsoftについては「主要コンパイラではないが、IntelliSenseはEDGのフロントエンドを使っている」とはっきり書く。一方でIntelについては、弁護士の都合で自社から名言できないという。ただしIntel自身はどうやら公言できるらしい、というねじれた書き方になっている。
同じ技術を使う契約でも、相手先の秘密保持の方針によって、名乗れる・名乗れないが分かれる。183社という数字の裏には、表に出せない契約がまだいくつも隠れていそうだ。
これだけの会社が頼ってきたEDGが、なぜ今になってコードを手放したのか。
EDGの終わりと新しい拠点
EDGは1988年、ニュージャージー州Scotch Plainsで設立された。創業者はJ. Stephen Adamczykら(Wikipedia「Edison Design Group」)。2025年に、2026年中の会社清算とC++フロントエンドのオープンソース化を発表していた。そして2026年9月30日、公式の発表でその計画が実行に移された。
新しい拠点は非営利団体The C++ Allianceだ。EDG社長のJohn Spicerが、この団体のFiscal Sponsorship Committee(資金援助を監督する委員会)の議長を務める。EDGCPPのトップページはこう述べる。
Continuity is the point. This is a change of steward, not a change of course.
(大事なのは継続性だ。これは方針転換ではなく、管理者の交代である)
既存の商用契約はそのまま有効とした上で、コードはLLVM系(Apache License 2.0ベース)のライセンスの下に置かれた。今後の開発は3つの流れで進む。
- コミュニティからのバグ修正や機能提案
- Allianceの開発チームによる継続的なメンテナンス
- コミュニティの資金提供による大規模な機能開発
特別扱いの早期アクセスはなく、どの流れで入った変更も同じ1つの公開リポジトリに同時に反映される。
公開されたリポジトリedgcpp/compilerには、過去のバージョンも含めた履歴がそのまま持ち込まれ、6万件を超えるコミットが並ぶ。30年分の開発記録が、そのまま読める状態で置かれている計算になる。
では、この切り替えによって、今使っているツールはどう変わるのか。
今すぐ変わること・変わらないこと
今日Visual StudioやIntelのコンパイラを使っている人にとって、何かがすぐに変わるわけではない。これらの製品は、すでにコンパイル済みのバイナリとしてEDGのフロントエンドを組み込んでいる。オープンソース化によって挙動が変わったり、再ビルドが走ったりすることはない。
変わるのは、ここから先の選択肢だ。これまでEDGの実装を使うには、183社のように商用ライセンス契約を結ぶ必要があった。今はLLVM系ライセンスの下で、誰でもソースコードを読み、改造し、自分のツールや製品に組み込める。静的解析ツールを作りたい個人や小さなチームが、183社が払ってきたのと同水準のC++解析エンジンを、契約交渉なしに使える状態になったということだ。
気になるのは、ここから先の持続可能性だ。183社の中には、EDGの実装に実務上深く依存している会社が少なくないはずだ。だがThe C++ Allianceの発表には、そうした大口の利用企業が開発に資金や人員でどこまで関わるかという具体的な記述がまだない。自分はここに、オープンソース化そのものより大きな賭けがあると見ている。
まとめ
Visual StudioのIntelliSenseは、Microsoftが自社開発したコードではなく、EDGという1社のC++フロントエンドに支えられてきた。EDG自身が公開する数字では、少なくとも183社がこの実装を商用ライセンスで使っており、その中にはIntelのように名前を公にできない契約も含まれていた。2026年9月30日、EDGはこのコードをThe C++ Allianceへ引き継ぎ、LLVM系ライセンスの下で公開した。既存のツールは今すぐ変わらないが、これまで契約と費用を要した水準のC++解析エンジンを、誰でも無償で読み、使えるようになった。
コメント
気づきや感想をどうぞ記事への補足や、読んで考えたことをお寄せください。個人情報や、他の人を傷つける内容の投稿はお控えください。
投稿にはGoogleログインが必要です。
Googleでログイン投稿にはGoogleアカウントの表示名が公開されます。メールアドレスは取得・公開しません。
コメントを読み込んでいます…