In this work, we introduce Basilisk, a high-level architectural pattern designed to facilitate interoperability among various languages, platforms, and ecosystems. The pursuit of language-independent software development is highly desirable, enabling developers to utilize existing software products with most programming languages. Achieving platform independence is equally advantageous, allowing code deployment on different platforms effortlessly. While the development community has often aimed for either language or platform independence, Basilisk aims to combine both into a single product. To realize this dual objective, Basilisk employs two fundamental components. The first is a transpilation infrastructure used to render software products language-independent. The second is an abstraction layer over platforms, enabling the creation of platform-independent software products. To illustrate Basilisk’s potential, we introduce Hydra, a one-to-many, declarative transpilation infrastructure. Hydra has been utilized to develop transpilers from HydraKernel (source language) to various target languages, including D, C++, C#, Scala, Ruby, Hy, and Python. Additionally, we instantiate the abstraction layer in Wyvern, a low-level embedded domain-specific language for GPU programming, supporting any Vulkan-compatible GPU. With the Hydra transpilation infrastructure, Wyvern becomes available for D, C++, C#, Scala, Ruby, Hy, and Python. We evaluate Basilisk through the instantiation of Hydra and Wyvern, writing five algorithms from the Rodinia suite for the seven available languages, totaling 35 benchmarks. These benchmarks are executed on four different hardware platforms.

When the dragons defeat the knight: Basilisk an architectural pattern for platform and language independent development / F. Bertolotti, W. Cazzola, D. Ostuni, C. Castoldi. - In: THE JOURNAL OF SYSTEMS AND SOFTWARE. - ISSN 0164-1212. - (2024), pp. 1-22. [Epub ahead of print] [10.1016/j.jss.2024.112088]

When the dragons defeat the knight: Basilisk an architectural pattern for platform and language independent development

F. Bertolotti
Primo
;
W. Cazzola
Secondo
;
D. Ostuni
Penultimo
;
2024

Abstract

In this work, we introduce Basilisk, a high-level architectural pattern designed to facilitate interoperability among various languages, platforms, and ecosystems. The pursuit of language-independent software development is highly desirable, enabling developers to utilize existing software products with most programming languages. Achieving platform independence is equally advantageous, allowing code deployment on different platforms effortlessly. While the development community has often aimed for either language or platform independence, Basilisk aims to combine both into a single product. To realize this dual objective, Basilisk employs two fundamental components. The first is a transpilation infrastructure used to render software products language-independent. The second is an abstraction layer over platforms, enabling the creation of platform-independent software products. To illustrate Basilisk’s potential, we introduce Hydra, a one-to-many, declarative transpilation infrastructure. Hydra has been utilized to develop transpilers from HydraKernel (source language) to various target languages, including D, C++, C#, Scala, Ruby, Hy, and Python. Additionally, we instantiate the abstraction layer in Wyvern, a low-level embedded domain-specific language for GPU programming, supporting any Vulkan-compatible GPU. With the Hydra transpilation infrastructure, Wyvern becomes available for D, C++, C#, Scala, Ruby, Hy, and Python. We evaluate Basilisk through the instantiation of Hydra and Wyvern, writing five algorithms from the Rodinia suite for the seven available languages, totaling 35 benchmarks. These benchmarks are executed on four different hardware platforms.
No
English
Transpilation; Programming Languages;
Settore INF/01 - Informatica
Articolo
Esperti anonimi
Ricerca di base
Pubblicazione scientifica
   Typeful Language Adaptation for Dynamic, Interacting and Evolving Systems
   T-LADIES
   MINISTERO DELL'ISTRUZIONE E DEL MERITO
   2020TL3X8X_001
2024
20-mag-2024
Elsevier
1
22
22
Epub ahead of print
Periodico con rilevanza internazionale
https://www.sciencedirect.com/science/article/pii/S016412122400133X/pdfft?md5=3c4ee0668e1e7655f0acbd4a1aaeaa65&pid=1-s2.0-S016412122400133X-main.pdf
  
crossref
Aderisco
info:eu-repo/semantics/article
When the dragons defeat the knight: Basilisk an architectural pattern for platform and language independent development / F. Bertolotti, W. Cazzola, D. Ostuni, C. Castoldi. - In: THE JOURNAL OF SYSTEMS AND SOFTWARE. - ISSN 0164-1212. - (2024), pp. 1-22. [Epub ahead of print] [10.1016/j.jss.2024.112088]
open
Prodotti della ricerca::01 - Articolo su periodico
4
262
Article (author)
Periodico con Impact Factor
F. Bertolotti, W. Cazzola, D. Ostuni, C. Castoldi
File in questo prodotto:
File Dimensione Formato  
jss23-third.pdf

accesso aperto

Tipologia: Post-print, accepted manuscript ecc. (versione accettata dall'editore)
Dimensione 1.95 MB
Formato Adobe PDF
1.95 MB Adobe PDF Visualizza/Apri
Pubblicazioni consigliate

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2434/1053108
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact