2012-01-18 133 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在分析,分析和转换复杂系统的能力方面有着非常不同的联盟真实的代码。