ROSE (platforma kompilatora)
Oryginalni autorzy | Daniel J. Quinlan, Chunhua (Leo) Liao, Robb P. Matzke, Markus Schordan i in. |
---|---|
Deweloperzy | Narodowe Laboratorium Lawrence'a Livermore'a |
Wersja stabilna | 0.9.13.0 / 15 grudnia 2019
|
Wersja podglądu | 0.9.6a / 16 marca 2016
|
Napisane w | C++ |
System operacyjny | Linuks , OS X |
Platforma | IA-32 , x86-64 |
Dostępne w | język angielski |
Typ | Kompilator |
Licencja | Zmodyfikowany BSD |
Strona internetowa |
Struktura kompilatora ROSE , opracowana w Lawrence Livermore National Laboratory (LLNL), to infrastruktura kompilatora oprogramowania typu open source do generowania analizatorów i tłumaczy źródło-źródło dla wielu języków źródłowych, w tym C (C89, C98, Unified Parallel C (UPC) ), C++ (C++98, C++11), Fortran (77, 95, 2003), OpenMP , Java , Python i PHP .
Obsługuje również niektóre pliki binarne i automatyczne kompilatory równoległe, generując kod źródłowy opatrzony adnotacjami dyrektyw OpenMP. W przeciwieństwie do większości innych kompilatorów badawczych, ROSE ma na celu umożliwienie nie-ekspertom wykorzystania technologii kompilatorów do tworzenia własnych, niestandardowych analizatorów i optymalizatorów oprogramowania.
Infrastruktura
ROSE składa się z wielu front-endów, midendu działającego na wewnętrznej reprezentacji pośredniej (IR) oraz backendów regenerujących (nieparsujący) kod źródłowy z IR. Opcjonalnie można użyć kompilatorów dostawców do skompilowania nieprzeanalizowanego kodu źródłowego w ostateczne pliki wykonywalne.
Aby przeanalizować aplikacje C i C++, ROSE używa interfejsu C++ Edison Design Group. Obsługa języka Fortran, w tym F2003 i wcześniejsze wersje 1977, 1990 i 1995, jest oparta na Open Fortran Parser (OFP) opracowanym w Los Alamos National Laboratory .
ROSE IR składa się z abstrakcyjnego drzewa składni , tablic symboli, wykresu przepływu sterowania itp. Jest to zorientowany obiektowo IR z kilkoma poziomami interfejsów do szybkiego budowania translatorów źródło-źródło. Wszystkie informacje z wejściowego kodu źródłowego są starannie zachowywane w ROSE IR, w tym struktura kontrolna preprocesora C, komentarze źródła, informacje o pozycji źródła i o szablonie C++ , np. argumenty szablonu.
ROSE jest wydawany na licencji typu BSD . Jest skierowany do systemów Linux i OS X na platformach IA-32 i x86-64 . Jej Edison Design Group (EDG) są zastrzeżone i dystrybuowane w formie binarnej. Pliki źródłowe części EDG można uzyskać, jeśli użytkownicy mają licencję komercyjną lub badawczą od EDG.
Nagroda
Infrastruktura kompilatora ROSE otrzymała jedną z nagród R&D 100 2009. Nagrody R&D 100 są przyznawane corocznie przez R&D Magazine w celu wyróżnienia 100 najbardziej znaczących, sprawdzonych postępów w dziedzinie badań i rozwoju, wprowadzonych w ciągu ostatniego roku. Niezależny panel ekspertów wybiera zwycięzców.
Zobacz też
- DMS Software Reengineering Toolkit – framework kompilatora typu „source-to-source” wykorzystujący jawne reguły przepisywania ukierunkowane na wzorce, obsługujące języki Fortran i C++