Readablewiki

ROSE (compiler framework)

Content sourced from Wikipedia, licensed under CC BY-SA 3.0.

ROSE is an open-source compiler framework from Lawrence Livermore National Laboratory that helps developers create custom code analyzers and translators. It focuses on making compiler technology accessible to non-experts so you can build your own tools for analyzing and transforming software.

What ROSE does
- Supports multiple languages: C (including C89, C99, UPC), C++ (C++98, C++11), Fortran (various standards), OpenMP, Java, Python, and PHP. It can also work with certain binary formats and can help generate OpenMP directives to parallelize code.
- Uses a front-end/mid-end/back-end structure. It parses source code, processes it in an internal intermediate representation (IR), and regenerates source code from that IR. You can optionally use vendor compilers to produce final executables.
- Front-ends and IR: ROSE uses the EDG front-end for C/C++, the Open Fortran Parser (OFP) for Fortran, and an object-oriented IR that includes an abstract syntax tree, symbol tables, and a control-flow graph. The IR preserves all input details, including preprocessor constructs, comments, source positions, and C++ template information.
- Accessibility and customization: The goal is to enable researchers and developers to build their own analyzers and optimizers without needing deep compiler expertise.

License, platform, and components
- License: BSD-style license.
- Platforms: Linux and macOS on IA-32 and x86-64.
- EDG components: Some EDG parts are proprietary and distributed in binary form; full source for those parts is available under license.
- Language of implementation: Written in C++.

Release history
- Stable release: 0.9.13.0 (December 15, 2019).
- Preview release: 0.9.6a (March 16, 2016).

Recognition
- ROSE has received industry recognition, including a 2009 R&D 100 Award for significant advances in research and development.


This page was last edited on 3 February 2026, at 03:16 (CET).