"
Developed at Lawrence Livermore National Laboratory
(LLNL), ROSE is an open source compiler infrastructure to build
source-to-source program transformation and analysis tools for
large-scale C (C89 and C98), C++ (C++98 and C++11), UPC, Fortran
(77/95/2003), OpenMP, Java, Python and PHP applications.
The primary goal of the ROSE project is to optimize applications within the U.S. Department of Energy (DOE).
ROSE aims to be:
- A library (and set of associated tools) to quickly and easily
apply compiler techniques to your code in order to improve application
performance and developer productivity.
-
A research and development compiler infrastructure for you to write
your own custom source-to-source translators to perform source code
transformations, analyses, and optimizations.
The features:
-
Cutting-edge research on source- and high-level compiler analysis and optimization algorithms.
-
Best-practice software development to incorporate existing compiler techniques to and develop new ones.
-
Pre-built ROSE tools to perform program transformation, analysis and optimization of your code.
-
An easy-to-use API to help you to build your own customized, or domain-specific compiler-based analysis, transformation, and optimization tools.
ROSE is a library providing users access to compiler technology that was hitherto inaccessible to non-experts.
What is compiler technology? Compilers are sophisticated software
that translate source code into machine binaries. Compiler developers
have created powerful techniques to parse, analyze, transform and
optimize the input source code.
Traditional compilers like GCC use these techniques, but they are
essentially inaccessible to the user. However, even if the user had
these capabilities in gcc, evaluating the results would be extremely
difficult. The user inputs source code, the compiler outputs machine
code. The user has access to his own code and perhaps the code
generation at the assembly level, but comparing the two is extremely
difficult as the code generation involved is not for clarity, it is for
the needs of the compiler developer.
But what if a compiler returned a faithful source code representation
of the post-transformation changes? Taking the original source code to
transformed source code. A source-to-source compiler.
ROSE is a source-to-source compiler.
ROSE gives the user a library of compiler techniques. It also gives
the user access to the building blocks of source analysis, allowing the
user to create their own compilers, analyzers, translators,
preprocessors, and so on."
http://rosecompiler.org/
https://en.wikibooks.org/wiki/ROSE_Compiler_Framework
https://en.wikipedia.org/wiki/ROSE_%28compiler_framework%29
https://github.com/rose-compiler/rose
No comments:
Post a Comment