Harmonic: LARA Source-To-Source Weaver

Imperial College London FEUP SPeCS

C source code

Font Size

Lara Aspects

#include <stdio.h> int main(){ printf("Hello World!"); return 0; }
aspectdef aspect_name /* select */ select function.statement end /* apply */ apply insert before "/* [[$statement.IR]] */"; end /* condition */ condition $statement.IR != "BasicBlock" end end
   OR       OR   
(click the arrow to start the weaving process!)

Woven Application

Weaver Output

press F11 on the editors to switch to fullscreen mode

* This website presents a demonstration of Harmonic. It does not represent neither the current version of Harmonic nor the full LARA technology.

Version: 1.0, © Imperial College London. Online version hosted at Universidade do Porto, FEUP.

Harmonic uses the ROSE compiler infrastructure developed at Lawrence Livermore National Laboratory. LARA [1] is a domain-specific, aspect-oriented language proposed during the REFLECT project and currently being maintained and further developed by University of Porto, Porto, Portugal, and Imperial College London, UK.

For more information on LARA, please check the LARA wiki.

[1] João M.P. Cardoso, Tiago Carvalho, José G.F. Coutinho, Wayne Luk, Ricardo Nobre, Pedro Diniz, and Zlatko Petrov. 2012. LARA: an aspect-oriented programming language for embedded systems. In Proceedings of the 11th annual international conference on Aspect-oriented Software Development (AOSD '12). ACM, New York, NY, USA, 179-190. DOI=10.1145/2162049.2162071 http://doi.acm.org/10.1145/2162049.2162071 [bib]

Contact: José Gabriel de F. Coutinho (gabriel DOT figueiredo AT imperial DOT ac DOT uk)

Harmonic was developed in the context of FP7 REFLECT and FP7 HARNESS projects