This series of tutorials will help you

  • Get familiar with the key concepts of ROSE

  • Write your own code analyzers

  • Build customized code translators

  • Debug your translators

  • Try out prebuilt ROSE-based tools

Hands-on Learning

Give ROSE a try with the following tutorials:

Getting Started with ROSE

ROSE - An Introduction

  • This is a short introduction to ROSE, its features and use cases, and how to use it.

Getting Familiar with the ROSE AST

  • This is a tutorial to use a few tools to visualize AST.

Traversing the ROSE AST

  • This is a tutorial to build your own tool traversing ROSE AST to find things of your interests.

Working with Complex Types

  • This is a tutorial for working with more complex types when traversing the ROSE AST.
  • Check your understanding with the Practical for this chapter.
  • Evaluate your understanding with the Exam for this chapter.

Debugging Translators

  • This is a tutorial for debugging ROSE translators.

Supporting a Clang IR

  • This is a tutorial for supporting a unknown Clang IR in ROSE.

Program Transformation and Optimization

AST Modification - Declarations and Expressions

  • This is part one of a two-part tutorial on AST modification for source-to-source transformations.

AST Modification - Functions and Function Calls

  • This is part two of a two-part tutorial on AST modification for source-to-source transformations.

Inlining Transformations

  • This is a tutorial on using the inline mechanism in ROSE for inlining transformations.

Outlining Transformations

  • This is a tutorial on using the outline mechanism in ROSE for outlining transformations.

Loop Optimization

  • This is a tutorial for performing loop optimizations with ROSE.

Parallelism

Trying autoPar - Auto Parallelization Tool in ROSE

  • This is a tool which can automatically insert OpenMP pragmas into input serial C/C++ codes.

Fixing a Bug in OpenMP Implementation

  • This tutorial is to show how to fix OpenMP implementation bugs in ROSE compiler.

Working with OpenMP Directives in the ROSE AST

  • This is a tutorial for working with OpenMP directives in ROSE.
  • Check your understanding with the Practical for this chapter.
  • Evaluate your understanding with the Exam for this chapter.

More Reading: References