Tool
Clava is a C/C++ source-to-source tool for code instrumentation and transformations controlled by the LARA language.
Clava is open-source and is available on GitHub.
Citing Clava
If you want to reference Clava in your work, please use the following publication:
João Bispo, and João MP Cardoso. Clava: C/C++ source-to-source compilation using LARA. SoftwareX, Volume 12, 2020, Article 100565. [Elsevier] [bibtex]
Acknowledgments
Clava uses Clang, a a C language family frontend for LLVM. LARA [1][2] 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.
[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. [ACM] [bibtex]
[2] Pedro Pinto, Tiago Carvalho, João Bispo, Miguel António Ramalho, João MP Cardoso. 2018. Aspect Composition for Multiple Target Languages using LARA. Computer Languages, Systems & Structures (COMLAN), Pergamon. [Elsevier] [bibtex]
Contacts
João Bispo (jbispo@fe.up.pt)