A DSL-based runtime adaptivity framework for Java

This article presents Kadabra, a Java source-to-source compiler that allows users to make code queries, code analysis and code transformations, all user-programmable using the domain-specific language LARA. We show how Kadabra can be used as the basis for developing a runtime autotuning and adaptivi...

Full description

Bibliographic Details
Main Authors: Tiago Carvalho, João Bispo, Pedro Pinto, João M.P. Cardoso
Format: Article
Language:English
Published: Elsevier 2023-07-01
Series:SoftwareX
Subjects:
Online Access:http://www.sciencedirect.com/science/article/pii/S2352711023001929
_version_ 1797679433446850560
author Tiago Carvalho
João Bispo
Pedro Pinto
João M.P. Cardoso
author_facet Tiago Carvalho
João Bispo
Pedro Pinto
João M.P. Cardoso
author_sort Tiago Carvalho
collection DOAJ
description This article presents Kadabra, a Java source-to-source compiler that allows users to make code queries, code analysis and code transformations, all user-programmable using the domain-specific language LARA. We show how Kadabra can be used as the basis for developing a runtime autotuning and adaptivity framework, able to adapt existing source Java code in order to take advantage of runtime autotuning. Specifically, this article presents the framework, consisting of Kadabra and an API for runtime adaptivity. We show the use of the framework to extend Java applications with autotuning and runtime adaptivity mechanisms to target performance improvement and/or energy saving goals.
first_indexed 2024-03-11T23:14:32Z
format Article
id doaj.art-7b9bcebd81de42ee9d8b97d139d0b155
institution Directory Open Access Journal
issn 2352-7110
language English
last_indexed 2024-03-11T23:14:32Z
publishDate 2023-07-01
publisher Elsevier
record_format Article
series SoftwareX
spelling doaj.art-7b9bcebd81de42ee9d8b97d139d0b1552023-09-21T04:37:42ZengElsevierSoftwareX2352-71102023-07-0123101496A DSL-based runtime adaptivity framework for JavaTiago Carvalho0João Bispo1Pedro Pinto2João M.P. Cardoso3Corresponding author.; Faculty of Engineering, University of Porto, and INESC TEC, Rua Dr. Roberto Frias, s/n. 4200-465 Porto, PortugalFaculty of Engineering, University of Porto, and INESC TEC, Rua Dr. Roberto Frias, s/n. 4200-465 Porto, PortugalFaculty of Engineering, University of Porto, and INESC TEC, Rua Dr. Roberto Frias, s/n. 4200-465 Porto, PortugalFaculty of Engineering, University of Porto, and INESC TEC, Rua Dr. Roberto Frias, s/n. 4200-465 Porto, PortugalThis article presents Kadabra, a Java source-to-source compiler that allows users to make code queries, code analysis and code transformations, all user-programmable using the domain-specific language LARA. We show how Kadabra can be used as the basis for developing a runtime autotuning and adaptivity framework, able to adapt existing source Java code in order to take advantage of runtime autotuning. Specifically, this article presents the framework, consisting of Kadabra and an API for runtime adaptivity. We show the use of the framework to extend Java applications with autotuning and runtime adaptivity mechanisms to target performance improvement and/or energy saving goals.http://www.sciencedirect.com/science/article/pii/S2352711023001929Aspect-Oriented ProgrammingRuntime adaptivityCode specializationAutotuningSource-to-source compilersJava
spellingShingle Tiago Carvalho
João Bispo
Pedro Pinto
João M.P. Cardoso
A DSL-based runtime adaptivity framework for Java
SoftwareX
Aspect-Oriented Programming
Runtime adaptivity
Code specialization
Autotuning
Source-to-source compilers
Java
title A DSL-based runtime adaptivity framework for Java
title_full A DSL-based runtime adaptivity framework for Java
title_fullStr A DSL-based runtime adaptivity framework for Java
title_full_unstemmed A DSL-based runtime adaptivity framework for Java
title_short A DSL-based runtime adaptivity framework for Java
title_sort dsl based runtime adaptivity framework for java
topic Aspect-Oriented Programming
Runtime adaptivity
Code specialization
Autotuning
Source-to-source compilers
Java
url http://www.sciencedirect.com/science/article/pii/S2352711023001929
work_keys_str_mv AT tiagocarvalho adslbasedruntimeadaptivityframeworkforjava
AT joaobispo adslbasedruntimeadaptivityframeworkforjava
AT pedropinto adslbasedruntimeadaptivityframeworkforjava
AT joaompcardoso adslbasedruntimeadaptivityframeworkforjava
AT tiagocarvalho dslbasedruntimeadaptivityframeworkforjava
AT joaobispo dslbasedruntimeadaptivityframeworkforjava
AT pedropinto dslbasedruntimeadaptivityframeworkforjava
AT joaompcardoso dslbasedruntimeadaptivityframeworkforjava