РОЗА (каркас компилятора) - ROSE (compiler framework)

РОЗА
Оригинальный автор (ы)Дэниел Дж. Куинлан, Чуньхуа (Лео) Ляо, Робб П. Мацке, Маркус Шордан и др.
Разработчики)Национальная лаборатория Лоуренса Ливермора
Стабильный выпуск
0.9.13.0 / 15 декабря 2019; 11 месяцев назад (2019-12-15)
Предварительный выпуск
0.9.6a / 16 марта 2016 г.; 4 года назад (2016-03-16)
Написано вC ++
Операционная системаLinux, OS X
ПлатформаIA-32, x86-64
Доступно ванглийский
ТипКомпилятор
ЛицензияBSD модифицированный
Интернет сайтrosecompiler.org

В РОЗА каркас компилятора, разработанный в Национальная лаборатория Лоуренса Ливермора (LLNL), является программное обеспечение с открытым исходным кодом компилятор инфраструктура для создания от источника к источнику анализаторы и переводчики для нескольких исходных языков, включая C (C89, C98, Унифицированный параллельный C (UPC)), C ++ (C ++ 98, C ++ 11), Фортран (77, 95, 2003), OpenMP, Ява, Python, и PHP.

Он также поддерживает определенные двоичные файлы и автоматическое распараллеливание компиляторы путем создания исходного кода, аннотированного директивами OpenMP. В отличие от большинства других исследовательских компиляторов, ROSE нацелен на то, чтобы дать неспециалистам возможность использовать технологии компиляторов для создания собственных программных анализаторов и оптимизаторов.

Инфраструктура

ROSE состоит из нескольких интерфейсов, одна из которых работает на внутреннем промежуточное представление (IR) и бэкэнды, регенерирующие (неанализирующий) исходный код из IR. По желанию, компиляторы поставщиков могут использоваться для компиляции неанализируемого исходного кода в окончательные исполняемые файлы.

Для синтаксического анализа приложений C и C ++ ROSE использует интерфейс C ++ от Edison Design Group.[1][2] Поддержка Fortran, включая F2003 и более ранние версии 1977, 1990 и 1995 годов, основана на Open Fortran Parser (OFP), разработанном в Лос-Аламосская национальная лаборатория.[3]

ROSE IR состоит из абстрактное синтаксическое дерево, таблицы символов, граф потока управления и т. д. объектно-ориентированный IR с несколькими уровнями интерфейсов для быстрого создания трансляторов исходного текста. Вся информация из входного исходного кода тщательно сохраняется в ROSE IR, включая структуру управления препроцессором C, комментарии к источнику, информацию о положении источника и Шаблон C ++ информация, например, аргументы шаблона.

ROSE выпущен под Лицензия в стиле BSD. Он нацелен Linux и OS X на обоих IA-32 и x86-64 платформы. Его Эдисон Дизайн Групп (EDG) части проприетарный и распространяется в двоичной форме. Исходные файлы частей EDG можно получить, если у пользователей есть коммерческая или исследовательская лицензия от EDG.

Награда

Инфраструктура компилятора ROSE получила одну из 100 наград 2009 R&D.[4] R&D 100 Awards ежегодно вручаются Журнал R&D признать 100 наиболее значимых проверенных исследования и разработки авансы, внесенные за последний год. Победителей выбирает независимая экспертная комиссия.

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

Рекомендации

  1. ^ "Интерфейс C ++ от Edison Design Group". Edg.com.
  2. ^ В архиве 2008-12-24 на Wayback Machine
  3. ^ «Открытый парсер Fortran (OFP)». Fortran-parser.sourceforge.net.
  4. ^ «Бесплатный компилятор в помощь новичкам, экспертам». Журнал R&D. Advantage Business Media. 30 июля 2009 г.. Получено 18 марта 2016.

внешняя ссылка