ROSE (фреймворк компилятора)

РОЗА
Оригинальный автор(ы)Дэниел Дж. Куинлан, Чуньхуа (Лео) Ляо, Робб П. Мацке, Маркус Шордан и др.
Разработчик(и)Национальная лаборатория Лоуренса в Ливерморе
Стабильный релиз
0.9.13.0 / 15 декабря 2019 г. ; 4 года назад ( 2019-12-15 )
Предварительный релиз
0.9.6a / 16 марта 2016 г. ; 8 лет назад ( 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 наиболее значимых доказанных достижений в области исследований и разработок, представленных за последний год. Победителей выбирает независимая экспертная группа.

Смотрите также

  • DMS Software Reengineering Toolkit  – фреймворк компилятора «из исходного кода в исходный», использующий явные правила перезаписи, управляемые шаблонами, который обрабатывает Fortran и C++

Ссылки

  1. ^ "Edison Design Group's C++ front-end". Edg.com . Архивировано из оригинала 2008-12-24.{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  2. ^ "Открытый парсер Фортрана (OFP)". Fortran-parser.sourceforge.net .
  3. ^ "Бесплатный компилятор помогает новичкам и экспертам". R&D Magazine . Advantage Business Media. 30 июля 2009 г. Получено 18 марта 2016 г.
  • Официальный сайт
  • Сайт разработки
  • роза на GitHub
Получено с "https://en.wikipedia.org/w/index.php?title=ROSE_(компилятор_фреймворк)&oldid=1090394174"