El marco del compilador ROSE , desarrollado en el Laboratorio Nacional Lawrence Livermore (LLNL), es una infraestructura de compilador de software de código abierto para generar analizadores y traductores de código fuente a código fuente para múltiples lenguajes fuente, incluidos C (C89, C98, Unified Parallel C (UPC)), C++ (C++98, C++11), Fortran (77, 95, 2003), OpenMP , Java , Python y PHP .
También admite determinados archivos binarios y compiladores de paralelización automática mediante la generación de código fuente anotado con directivas OpenMP. A diferencia de la mayoría de los demás compiladores de investigación, ROSE tiene como objetivo permitir que los no expertos aprovechen las tecnologías de compilación para crear sus propios analizadores y optimizadores de software personalizados.
ROSE consta de varios front-ends, un midend que opera en su representación intermedia (IR) interna y backends que regeneran (analizan) el código fuente a partir de la IR. Opcionalmente, se pueden utilizar compiladores de proveedores para compilar el código fuente no analizado en ejecutables finales.
Para analizar aplicaciones C y C++, ROSE utiliza el front-end C++ de Edison Design Group. [1] El soporte de Fortran, incluyendo F2003 y versiones anteriores de 1977, 1990 y 1995, se basa en el Open Fortran Parser (OFP) desarrollado en el Laboratorio Nacional de Los Álamos . [2]
El ROSE IR consta de un árbol de sintaxis abstracta , tablas de símbolos, gráfico de flujo de control, etc. Es un IR orientado a objetos con varios niveles de interfaces para crear rápidamente traductores de código fuente a código fuente. Toda la información del código fuente de entrada se conserva cuidadosamente en el ROSE IR, incluida la estructura de control del preprocesador de C, los comentarios de código fuente, la información de posición de código fuente y la información de plantilla de C++ , por ejemplo, los argumentos de plantilla.
ROSE se publica bajo una licencia de estilo BSD . Está destinado a Linux y OS X en plataformas IA-32 y x86-64 . Sus partes de Edison Design Group (EDG) son propietarias y se distribuyen en formato binario. Los archivos fuente de las partes de EDG se pueden obtener si los usuarios tienen una licencia comercial o de investigación de EDG.
La infraestructura del compilador ROSE recibió uno de los premios R&D 100 Awards de 2009. [3] Los premios R&D 100 Awards son otorgados anualmente por la revista R&D Magazine para reconocer los 100 avances de investigación y desarrollo más significativos y probados introducidos durante el año pasado. Un panel de expertos independientes selecciona a los ganadores.
{{cite web}}
: CS1 maint: URL no apta ( enlace )