Оригинальный автор(ы) | Дэниел Дж. Куинлан, Чуньхуа (Лео) Ляо, Робб П. Мацке, Маркус Шордан и др. |
---|---|
Разработчик(и) | Национальная лаборатория Лоуренса в Ливерморе |
Стабильный релиз | 0.9.13.0 / 15 декабря 2019 г. ( 2019-12-15 ) |
Предварительный релиз | 0.9.6a / 16 марта 2016 г. ( 2016-03-16 ) |
Написано в | С++ |
Операционная система | Linux , OS X |
Платформа | IA-32 , x86-64 |
Доступно в | Английский |
Тип | Компилятор |
Лицензия | BSD модифицированный |
Веб-сайт | rosecompiler.org |
Фреймворк компилятора ROSE , разработанный в Ливерморской национальной лаборатории им. Э. Лоуренса (LLNL), представляет собой инфраструктуру компилятора программного обеспечения с открытым исходным кодом для создания анализаторов и трансляторов исходного кода для нескольких исходных языков, включая C (C89, C98, Unified Parallel C (UPC)), C++ (C++98, C++11), Fortran (77, 95, 2003), OpenMP , Java , Python и PHP .
Он также поддерживает определенные двоичные файлы и авто-параллелизующие компиляторы, генерируя исходный код, аннотированный директивами OpenMP. В отличие от большинства других исследовательских компиляторов, ROSE нацелен на то, чтобы позволить неспециалистам использовать технологии компиляторов для создания собственных анализаторов и оптимизаторов программного обеспечения.
ROSE состоит из нескольких фронтендов, миденд, работающий на своем внутреннем промежуточном представлении (IR), и бэкендов, регенерирующих (неразборчивых) исходный код из IR. При желании можно использовать компиляторы поставщиков для компиляции неразобранного исходного кода в финальные исполняемые файлы.
Для анализа приложений C и C++ ROSE использует интерфейс C++ от Edison Design Group. [1] Поддержка Fortran, включая F2003 и более ранние версии 1977, 1990 и 1995 годов, основана на Open Fortran Parser (OFP), разработанном в Лос-Аламосской национальной лаборатории . [2]
ROSE IR состоит из абстрактного синтаксического дерева , таблиц символов, графа потока управления и т. д. Это объектно-ориентированный IR с несколькими уровнями интерфейсов для быстрого построения трансляторов исходного кода. Вся информация из входного исходного кода тщательно сохраняется в ROSE IR, включая структуру управления препроцессора C, исходные комментарии, информацию о позиции исходного кода и информацию шаблона C++ , например, аргументы шаблона.
ROSE выпускается под лицензией BSD-style . Он нацелен на Linux и OS X на платформах IA-32 и x86-64 . Его части Edison Design Group (EDG) являются проприетарными и распространяются в двоичной форме. Исходные файлы частей EDG могут быть получены, если пользователи имеют коммерческую или исследовательскую лицензию от EDG.
Инфраструктура компилятора ROSE получила одну из наград R&D 100 Awards 2009. [3] Награды R&D 100 Awards ежегодно вручаются журналом R&D Magazine, чтобы отметить 100 наиболее значимых доказанных достижений в области исследований и разработок, представленных за последний год. Победителей выбирает независимая экспертная группа.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка )