РОЗА (каркас компилятора) - ROSE (compiler framework)
Эта статья нужны дополнительные цитаты для проверка.Май 2018) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Оригинальный автор (ы) | Дэниел Дж. Куинлан, Чуньхуа (Лео) Ляо, Робб П. Мацке, Маркус Шордан и др. |
---|---|
Разработчики) | Национальная лаборатория Лоуренса Ливермора |
Стабильный выпуск | 0.9.13.0 / 15 декабря 2019 |
Предварительный выпуск | 0.9.6a / 16 марта 2016 г. |
Написано в | C ++ |
Операционная система | Linux, OS X |
Платформа | IA-32, x86-64 |
Доступно в | английский |
Тип | Компилятор |
Лицензия | BSD модифицированный |
Интернет сайт | rosecompiler |
В РОЗА каркас компилятора, разработанный в Национальная лаборатория Лоуренса Ливермора (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 наиболее значимых проверенных исследования и разработки авансы, внесенные за последний год. Победителей выбирает независимая экспертная комиссия.
Смотрите также
- Набор инструментов для реинжиниринга программного обеспечения DMS - фреймворк компилятора от исходного кода к исходному с использованием явных правил перезаписи на основе шаблонов, которые обрабатывают Fortran и C ++.
Рекомендации
- ^ "Интерфейс C ++ от Edison Design Group". Edg.com.
- ^ В архиве 2008-12-24 на Wayback Machine
- ^ «Открытый парсер Fortran (OFP)». Fortran-parser.sourceforge.net.
- ^ «Бесплатный компилятор в помощь новичкам, экспертам». Журнал R&D. Advantage Business Media. 30 июля 2009 г.. Получено 18 марта 2016.