3

rose コンパイラでの cuda のサポート範囲について知りたいです。cuda 用のソースからソースへのトランスレータを構築しようとしています。Roseコンパイラを使用することは可能ですか? Rose コンパイラのどのディストリビューションを使用すればよいですか?

これは以前に議論されたことは知っていますが (rose コンパイラでの cuda のサポート)、cuda のサポートがあるかどうかはわかりません。Rose のユーザー マニュアルにもあまり情報がありません。

4

1 に答える 1

1

Rose には C++ フロント エンドと Fortran フロント エンドがあり、これらは適切に統合されているように見えます。Rose システム設計の IMHO は、他のフロント エンド パーサー (Cuda を解析するためにおそらく必要になるようなもの) の簡単な統合には適していませんが、十分な努力をすればそれを行うことができます。(Rose にはもともと C++ しかなく、Fortran が移植されました)。Rose のマニュアルで Cuda について明示的に言及されていない場合は、Cuda が存在しないことが原因のようです。

ソースからソースへの変換を使用して Cuda を処理する場合は、Cuda パーサーと、Rose にあるような適切な変換機構のセットの両方が必要です。

私はあなたに Cuda パーサーを提供することはできませんが、私の会社はDMS Software Reengineering Toolkitの形で産業用の強力なソースからソースへのプログラム変換システムを提供しています。

DMS は、大規模な C++ システムで大規模な変換を実行するために使用されてきたので、少なくともその目的では Rose と同じくらい有能であると言っても過言ではありません。DMS は、非常に大規模な C および Fortran システム、および Java、C#、ECMAScript、PHP、および他の多くの言語の他のコードを処理するためにも使用されているため、別のフロント エンドを DMS に統合する方がはるかに簡単であると言っても過言ではありません。 .

私が理解しているように、CudaはC99の派生物です。DMS には C フロント エンドがあり、さまざまな C 方言の構築が明示的にサポートされています。C99 のほとんどは、すでに方言メカニズムを使用して構築されています。それはかなり良い出発点かもしれません。

代わりに ANTLR などの他のツールを試すこともできますが、実際のコードの複雑なシステムを解析、分析、変換する能力に関して、ANTLR、Rose、および DMS が非常に異なるレベルにあることがすぐに明らかになると思います。

于 2012-01-19T07:17:28.643 に答える