Cuda Source to Source перевод с использованием компилятора Rose - PullRequest
3 голосов
/ 19 января 2012

Хотелось бы узнать о степени поддержки cuda в компиляторе rose.Я пытаюсь построить переводчик исходного кода для cuda.Возможно ли использовать компилятор Rose?Какой дистрибутив Rose должен использовать?

Я знаю, что это обсуждалось ранее (поддержка cuda в компиляторе rose), но я не могу понять, есть ли поддержка cuda или нет.Руководство пользователя Rose также не содержит много информации.

1 Ответ

1 голос
/ 19 января 2012

Rose имеет интерфейс C ++ и интерфейс Fortran, которые кажутся достаточно хорошо интегрированными.Конструкция системы Rose IMHO не поддается простой интеграции других синтаксических анализаторов (таких как, вероятно, вам понадобится для анализа Cuda), хотя при достаточных усилиях вы можете это сделать.(Изначально у Роуз был только C ++, и на Фортран привили).Если вы не видите явного упоминания Cuda в руководствах Rose, это похоже на то, что его просто нет.

Если вы хотите обработать 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 находятся в совершенно разных лигах с точки зренияих способность анализировать, анализировать и преобразовывать сложные системы реального кода.

...