ROSE (compiler framework)

ROSEOriginal author(s)| Daniel J. Quinlan, Chunhua (Leo) Liao, Robb P. Matzke, Markus Schordan, et al.

|

Developer(s)| Lawrence Livermore National Laboratory
Stable release|

0.9.13.0 / 15 December 2019; 6 years ago (2019-12-15)

Preview release|

0.9.6a / 16 March 2016; 10 years ago (2016-03-16)

Written in| C++
Operating system| Linux, OS X
Platform| IA-32, x86-64
Available in| English
Type| Compiler
License| BSD modified
Website| rosecompiler.org

The ROSE compiler framework, developed at Lawrence Livermore National Laboratory (LLNL), is an open-source software compiler infrastructure to generate source-to-source analyzers and translators for multiple source languages including C (C89, C98, Unified Parallel C (UPC)), C++ (C++98, C++11), Fortran (77, 95, 2003), OpenMP, Java, Python, and PHP.

It also supports certain binary files, and auto-parallelizing compilers by generating source code annotated with OpenMP directives. Unlike most other research compilers, ROSE is aimed at enabling non-experts to leverage compiler technologies to build their own custom software analyzers and optimizers.

## Contents

* 1 The infrastructure
* 2 Award
* 3 See also
* 4 References
* 5 External links

## The infrastructure

ROSE consists of multiple front-ends, a midend operating on its internal intermediate representation (IR), and backends regenerating (unparse) source code from IR. Optionally, vendor compilers can be used to compile the unparsed source code into final executables.

To parse C and C++ applications, ROSE uses the Edison Design Group's C++ front-end.[1] Fortran support, including F2003 and earlier 1977, 1990, and 1995 versions, is based on the Open Fortran Parser (OFP) developed at Los Alamos National Laboratory.[2]

The ROSE IR consists of an abstract syntax tree, symbol tables, control flow graph, etc. It is an object-oriented IR with several levels of interfaces for quickly building source-to-source translators. All information from the input source code is carefully preserved in the ROSE IR, including C preprocessor control structure, source comments, source position information, and C++ template information, e.g., template arguments.

ROSE is released under a BSD-style license. It targets Linux and OS X on both IA-32 and x86-64 platforms. Its Edison Design Group (EDG) parts are proprietary and distributed in binary form. Source files of the EDG parts can be obtained if users have a commercial or research license from EDG.

## Award

The ROSE compiler infrastructure received one of the 2009 R&D 100 Awards.[3] The R&D 100 Awards are presented annually by R&D Magazine to recognize the 100 most significant proven research and development advances introduced over the past year. An independent expert panel selects the winners.

## See also

* DMS Software Reengineering Toolkit - a source-to-source compiler framework using explicit pattern-directed rewrite rules that handles Fortran and C++

## References

1. ↑ "Edison Design Group's C++ front-end". Archived from the original on 2008-12-24. https://web.archive.org/web/20081224123854/http://www.edg.com/index.php?location=c_frontend.
2. ↑ "Open Fortran Parser (OFP)". http://fortran-parser.sourceforge.net/.
3. ↑ "Free compiler aids novices, experts". Advantage Business Media. 30 July 2009. http://www.rdmag.com/award-winners/2009/07/free-compiler-aids-novices-experts.

## External links

* Development site
* on GitHub

* v
* t
* e

Lawrence Livermore National Laboratory

Facilities|

* Mirror Fusion Test Facility
* National Atmospheric Release Advisory Center
* National Energy Research Scientific Computing Center
* National Ignition Facility

Supercomputers|

* ASC Purple
* ASCI Blue Pacific
* ASCI White
* Peloton
* Sierra

Products|

* Argus laser
* Cyclops laser
* Gist
* LLNL RISE process
* Long path laser
* LX-14
* Micropower impulse radar
* Nova
* Novette laser
* Reliable Replacement Warhead
* ROSE
* SCALD
* Shiva laser
* Silo
* Slapper detonator
* W47
* W70
* W71
* Yorick

People|

* Ernest Lawrence
* Edward Teller

Related|

* IBM Blue Gene
* Inertial confinement fusion
* Laser Inertial Fusion Energy
* Stockpile stewardship
* Sustained Spheromak Physics Experiment
* Z-Division

* v
* t
* e

Free and open-source software

General|

* Alternative terms for free software
* Comparison of open-source and closed-source software
* Comparison of source-code-hosting facilities
* Free software
* Free software project directories
* Gratis versus libre
* Long-term support
* Open-source software
* Open-source software development
* Outline

Software
packages|

* Audio
* Bioinformatics
* Codecs
* Collaboration
* Configuration management
* Device drivers
* Graphics
* Wireless
* Geophysics
* Health
* Mathematics
* Operating systems
* Programming languages
* Routing
* Statistics
* Television
* Video games
* Web applications
* Content management systems
* E-commerce
* Word processors
* Android apps
* iOS apps
* Commercial
* Trademarked
* Formerly proprietary

Community|

* Free software movement
* History
* Open-source-software movement
* Organizations
* Events

Licenses|

* AFL
* Apache
* APSL
* Artistic
* Beerware
* Boost
* BSD
* CC0
* CDDL
* EPL
* Free Software Foundation
* GNU GPL
* GNU LGPL
* ISC
* MIT
* MPL
* Ms-PL/RL
* Python
* Python Software Foundation License
* Sleepycat
* Unlicense
* WTFPL
* zlib

| Types and
standards|

* Comparison of free and open-source software licenses
* Contributor License Agreement
* Copyleft
* Debian Free Software Guidelines
* Definition of Free Cultural Works
* Free license
* The Free Software Definition
* The Open Source Definition
* Open-source license
* Permissive software license
* Public domain
* Viral license

|

Challenges|

* Digital rights management
* Firmware security
* Hardware restrictions
* License proliferation
* Mozilla software rebranding
* Proprietary device drivers
* Proprietary firmware
* Proprietary software
* SCO/Linux controversies
* Secure boot
* Software patents
* Software security
* Trusted Computing

Related topics|

* Forking
* GNU Manifesto
* Microsoft Open Specification Promise
* Open-core model
* Open-source hardware
* Shared Source Initiative
* Source-available software
* The Cathedral and the Bazaar
* Revolution OS

*   * Category
* Commons
* WikiProject
* Book

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/ROSE (compiler framework). Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:ROSE_(compiler_framework)&oldid=742184"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template