• A LARA aspect-oriented programming language interpreter.

  • Larai is based on Rhino, an open-source implementation of a JavaScript interpreter written entirely in Java.

  • The main objective of larai is to provide an outer loop (external) mechanism to control the components of a toolchain.

  • LARA aspects input to larai can include instructions to execute tools, explore configurations and/or command line options, get attribute values from reports, and decide whether to continue to explore different configurations and/or options based on the results achieved at a particular stage of the design-flow.

  • Download

    Responsible: Tiago Carvalho


  • Aspect-driven C to microprocessor ISA or reconfigurable hardware circuit description compiler.

  • Constructed using the CoSy compiler development system, it relies on code generators for, but not limited to, the MicroBlaze and x86 microprocessors, and VHSIC Hardware Description Language (VHDL).

  • The compiler was created in the context of the FP7 REFLECT project, integrated in the optimization and code generation phases of an aspect-driven toolchain targetting heterogenerous reconfigurable hardware.

  • Optimization sequences are determined, as well as individual parameters of optimization engines (e.g. loop ranks and factors for loop unrolling engine), by an aspect-oriented language called LARA.

  • Online Demo

    Responsible: Ricardo Nobre


  • MATLAB to C compiler targeting embedded systems that is based on Strategic and Aspect-Oriented Programming concepts..

  • Receives as input MATLAB code and LARA aspects related to types and shapes, code insertion/removal, and specialization based directives defining default values.

  • MATISSE leverages data types and shapes to generate customized C compliant with high-level hardware synthesis tools.

  • Resulting hardware and software automatically generated implementations are comparable in terms of performance with hand-crafted solutions but derived automatically at a minute cost fraction.

  • Online Demo

    Responsible: João Bispo


  • MANET is a C-to-C compilation tool for instrumentation, controled by the AOP language LARA.

  • This tool was developed in the context of the AutoSeer .

  • Online Demo

    Responsible: Pedro Pinto

MicroBlaze Simulator

  • Cycle-accurate simulator of a 3-stage MicroBlaze processor which runs ELF files compiled with mb-gcc. Includes debugging facilities.

  • Download

    Responsible: João Bispo

Megablock Extractor

  • Runs MicroBlaze ELF files and detects MegaBlocks. Extracts megablocks information to files.

  • The Megablock extractor uses internally a version of the MicroBlaze simulator developed by João Teixeira (IST student) for his MSc dissertation.

  • Download

    Responsible: João Bispo