stringtranslate.com

ROSE (marco de compilación)

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.

La infraestructura

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.

Otorgar

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.

Véase también

Referencias

  1. ^ "Interfaz C++ de Edison Design Group". Edg.com . Archivado desde el original el 24 de diciembre de 2008.{{cite web}}: CS1 maint: URL no apta ( enlace )
  2. ^ "Analizador abierto de Fortran (OFP)". Fortran-parser.sourceforge.net .
  3. ^ "Un compilador gratuito ayuda a principiantes y expertos". Revista R&D . Advantage Business Media. 30 de julio de 2009. Consultado el 18 de marzo de 2016 .

Enlaces externos