ROSE (platforma kompilatora)

RÓŻA
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 ; 3 lata temu ( 2019-12-15 )
Wersja podglądu
0.9.6a / 16 marca 2016 ; 6 lat temu ( 2016-03-16 )
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 rosecompiler.org _

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++

Linki zewnętrzne