ROSE (фреймворк компилятора)
Эта статья нуждается в дополнительных цитатах для проверки . ( май 2018 г. ) |
Оригинальный автор(ы) | Дэниел Дж. Куинлан, Чуньхуа (Лео) Ляо, Робб П. Мацке, Маркус Шордан и др. |
---|---|
Разработчик(и) | Ливерморская национальная лаборатория Лоуренса |
Стабильная версия | 0.9.13.0 / 15 декабря 2019 г |
Предварительный выпуск | 0.9.6а / 16 марта 2016 г |
Написано в | С++ |
Операционная система | Линукс , ОС Х |
Платформа | ИА-32 , x86-64 |
Доступно в | Английский |
Тип | Компилятор |
Лицензия | BSD модифицирован |
Веб-сайт | компилятор роз |
Структура компилятора 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 . Он предназначен для 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 ++.
Ссылки [ править ]
- ^ «Внешний интерфейс C++ Edison Design Group» . Edg.com . Архивировано из оригинала 24 декабря 2008 г.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ) - ^ «Открытый парсер Фортрана (OFP)» . Fortran-parser.sourceforge.net .
- ^ «Бесплатный компилятор поможет новичкам и экспертам» . Журнал НИОКР . Преимущество Бизнес Медиа. 30 июля 2009 года . Проверено 18 марта 2016 г.
Внешние ссылки [ править ]
