2012-01-18 112 views
3

我想知道在rose編譯器中對cuda的支持程度。我正在嘗試爲cuda翻譯的源代碼構建源代碼。可以使用Rose編譯器嗎?我應該使用哪種Rose編譯器的發行版?Cuda Source使用Rose編譯器進行源代碼翻譯

我知道這已經在前面討論過了(支持cuda在rose編譯器中),但是我不明白cuda支持是否存在。 Rose用戶手冊也沒有太多的信息。

回答

1

Rose有一個C++前端和一個Fortran前端,看起來很合理。玫瑰系統設計恕我直言,不容易容易集成其他前端解析器(如你需要大概解析CUDA),雖然有足夠的努力,你可以做到這一點。 (Rose最初只有C++,Fortran被嫁接)。 如果你在Rose手冊中沒有看到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在分析,分析和轉換複雜系統的能力方面有着非常不同的聯盟真實的代碼。