23

私自身の教育のために、どのコンパイラーがどの C++ フロントエンドとバックエンドを使用しているかに興味があります。次のテクノロジーがどこで使用されているか、またそれらの特徴/利点があれば教えてください。

  • Open64 - バックエンド、フロントエンド、またはその両方ですか? どのコンパイラがそれを使用していますか? CUDAコンパイラで遭遇しました。

  • EDG - 私が知る限り、これは Intel コンパイラと Comeau によるフロントエンドの使用です。他のコンパイラはそれを使用しますか? ブーストのソース コードでかなりの数の参照を見つけました。

  • ANTLR - これは一般的なパーサーです。一般的なコンパイラはそれを使用しますか?

コンパイラについて:

  • gccコンパイラスイートはフロントエンド/バックエンドで使用しますか? 他のコンパイラと共通の遺産がありますか?

  • フロントエンド/バックエンドの PGI および PathScale コンパイラは何を使用しますか?

  • フロントエンド/バックエンド XL コンパイラーが使用するもの (IBM オファリング)。

インターネットまたはあなたの個人的なノウハウに関する詳細なリンクは素晴らしいでしょう. Google で検索しましたが、一般的に目にする情報はかなり表面的なものでした。

ありがとう。

4

4 に答える 4

13

EDG は Intel と Comeau が使用するフロントエンドです。他のユーザーについては、EDG の顧客リストを参照してください。

ANTLR はパーサー ジェネレーターです。私は、ANTLR で構築されたパーサーを中心に構築された C++ コンパイラを認識していません (存在しないという意味ではありません)。

GCC はコンパイラのスイートで、C、C++、Fortran、Ada、Java などのフロント エンドと、私が考えているよりも多くのプロセッサのバックエンドを備えています。

Open64 は、いくつかのフロントエンド (C、C++、Fortran、およびおそらく現時点では覚えていないその他のもの) とバックエンド (X64、Itanium、ARM、およびおそらくその他のものを対象とする) を含むコンパイラのスイートでもあります。覚えていない、または知らない)。私は、その起源 (意図されていないしゃれ) は SGI のコンパイラであると信じています。Open64がGCCフロントエンドのいくつかのバージョンから派生したことを示唆する何かを読んだことを覚えているようですが、1) GCCと内部的にどれだけ似ているか、または2) GCCのバージョンが元になっているかはわかりません派生 -- しかし、最新では GCC 3.x であり、おそらく GCC 2.x であると推測できるほど長い間使用されてきました。

PathScale は Open64 から派生したコンパイラを少なくとも 1 つ作成したと思いますが、他のコンパイラも作成している可能性があります。

私の知る限り、IBM のコンパイラは完全に自社製です。IBM の (現在は廃止されている) VisualAge for C++は XL C++ といくつかの遺産/開発/コードを共有していると思いますが、それが正しいと仮定しても、その範囲を推測することさえできません。 .

于 2010-04-11T20:34:34.350 に答える
8

Clangプロジェクトは、 LLVMバックエンドの上に C/C++/Objective C の新しいフロントエンドを提供します。LLVM プロジェクトは、GCC フロントエンドと LLVM バックエンドを使用して、LLVM-gcc も提供します。DragonEggプロジェクトは、GCC バックエンドを LLVM に置き換えようとしています

Codeplay VectorC、Sieve、およびOffloadコンパイラは、カスタム フロントエンドとバックエンドを使用します。

于 2010-04-11T20:28:29.387 に答える
7

フロントエンド/バックエンドでgccコンパイラスイートは使用しますか?他のコンパイラと共通の遺産がありますか?

頭字語「GCC」は「GNUコンパイラコレクション」(元々は「GNUCコンパイラ」)の略で、これはすでにヒントを与えています。GNUコンパイラはコンパイラのコレクションであり、特にCとC ++だけでなく、Fortran、Objective-C、その他。それらは、GCCのために特別に開発された共通のバックエンドおよび中間表現を共有します。

フロントエンドはすべてGCC用にカスタム作成されています。一部はサードパーティによって提供されました。特に、Appleによって提供されたObjective-Cフロントエンドです。

于 2010-04-11T20:16:29.130 に答える
5

Visual Studioは、インテリセンス エンジンにEDGを使用しています。

于 2010-04-11T20:33:19.023 に答える