El marco de compilación ROSE , desarrollado en el Laboratorio Nacional Lawrence Livermore (LLNL), es una infraestructura de compilación 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, C99, Unified Parallel C (UPC)), C++ (C++98, C++11), Fortran (77, 95, 2003), OpenMP , Java , Python y PHP .
También admite ciertos 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 está diseñado para que usuarios no expertos puedan aprovechar las tecnologías de compilación para crear sus propios analizadores y optimizadores de software personalizados.
La infraestructura
ROSE consta de múltiples interfaces, una interfaz intermedia que opera sobre su representación intermedia interna (IR) y subsistemas que regeneran (descomponen) el código fuente a partir de la IR. Opcionalmente, se pueden usar compiladores de terceros para compilar el código fuente descompuesto y convertirlo en ejecutables finales.
Para analizar aplicaciones C y C++, ROSE utiliza el front-end C++ de Edison Design Group. [ 1 ] La compatibilidad con Fortran, incluyendo F2003 y versiones anteriores de 1977, 1990 y 1995, se basa en el analizador Open Fortran (OFP) desarrollado en el Laboratorio Nacional de Los Alamos . [ 2 ]
El ROSE IR consta de un árbol de sintaxis abstracta , tablas de símbolos, un grafo 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, incluyendo la estructura de control del preprocesador de C, los comentarios del código fuente, la información de posición del código fuente y la información de las plantillas de C++ , como los argumentos de las plantillas.
ROSE se distribuye bajo una licencia tipo BSD . Está diseñado para Linux y OS X en plataformas IA-32 y x86-64 . Sus componentes de Edison Design Group (EDG) son propietarios y se distribuyen en formato binario. Los archivos fuente de los componentes de EDG pueden obtenerse si los usuarios cuentan con una licencia comercial o de investigación de EDG.
Otorgar
La infraestructura del compilador ROSE recibió uno de los premios R&D 100 de 2009. [ 3 ] Los premios R&D 100 son otorgados anualmente por la revista R&D para reconocer los 100 avances más significativos y comprobados en investigación y desarrollo presentados durante el último año. Un panel de expertos independientes selecciona a los ganadores.
Véase también
- DMS Software Reengineering Toolkit : un marco de compilación de código fuente a código fuente que utiliza reglas de reescritura explícitas dirigidas por patrones que maneja Fortran y C++.
Referencias
- ↑ "Interfaz de usuario en C++ de Edison Design Group" . Edg.com . Archivado del original el 24 de diciembre de 2008.
- ↑ "Analizador abierto de Fortran (OFP)" . Fortran-parser.sourceforge.net .
- ↑ "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
- Sitio web oficial
- Sitio de desarrollo
- Se elevó en GitHub
- Compiladores
- Compiladores de C (lenguaje de programación)
- compiladores de C++
- Compiladores de Fortran
- Compiladores libres y de código abierto
- Laboratorio Nacional Lawrence Livermore
- Compiladores de código fuente a código fuente
- Software que utiliza la licencia BSD.