Software: Practice and Experience

Volume 46, Issue 2
Research Article

Performance‐driven instrumentation and mapping strategies using the LARA aspect‐oriented programming approach

João M. P. Cardoso

Corresponding Author

Departamento de Engenharia Informática, Faculdade de Engenharia (FEUP), Universidade do Porto, Rua Dr. Roberto Frias, s/n 4200‐465 Porto, Portugal

Correspondence to: João M. P. Cardoso, Departamento de Engenharia Informática, Faculdade de Engenharia (FEUP), Universidade do Porto, Rua Dr. Roberto Frias, s/n 4200‐465 Porto, Portugal.

E‐mail: jmpc@acm.org

Search for more papers by this author
José G. F. Coutinho

Department of Computing, Imperial College London, 180 Queen's Gate, SW7 2BZ London, UK

Search for more papers by this author
Tiago Carvalho

Departamento de Engenharia Informática, Faculdade de Engenharia (FEUP), Universidade do Porto, Rua Dr. Roberto Frias, s/n 4200‐465 Porto, Portugal

Search for more papers by this author
Pedro C. Diniz

Information Sciences Institute, USC, Marina del Rey, Los Angeles, CA, 90089‐0911 USA

Search for more papers by this author
Zlatko Petrov

Honeywell International s.r.o, Turanka, 100 627 00 Brno, Czech Republic

Search for more papers by this author
Wayne Luk

Department of Computing, Imperial College London, 180 Queen's Gate, SW7 2BZ London, UK

Search for more papers by this author
Fernando Gonçalves

Coreworks S.A., Rua Alves Redol 9, 1000‐029 Lisboa, Portugal

Search for more papers by this author
First published: 11 December 2014
Cited by: 9

Summary

The development of applications for high‐performance embedded systems is a long and error‐prone process because in addition to the required functionality, developers must consider various and often conflicting nonfunctional requirements such as performance and/or energy efficiency. The complexity of this process is further exacerbated by the multitude of target architectures and mapping tools. This article describes LARA, an aspect‐oriented programming language that allows programmers to convey domain‐specific knowledge and nonfunctional requirements to a toolchain composed of source‐to‐source transformers, compiler optimizers, and mapping/synthesis tools. LARA is sufficiently flexible to target different tools and host languages while also allowing the specification of compilation strategies to enable efficient generation of software code and hardware cores (using hardware description languages) for hybrid target architectures – a unique feature to the best of our knowledge not found in any other aspect‐oriented programming language. A key feature of LARA is its ability to deal with different models of join points, actions, and attributes. In this article, we describe the LARA approach and evaluate its impact on code instrumentation and analysis and on selecting critical code sections to be migrated to hardware accelerators for two embedded applications from industry. Copyright © 2014 John Wiley & Sons, Ltd.

The full text of this article hosted at iucr.org is unavailable due to technical difficulties.