Skip to Main Content (Press Enter)

Logo UNIMI
  • ×
  • Home
  • People
  • Projects
  • Fields
  • Units
  • Outputs
  • Third Mission

Expertise & Skills
Logo UNIMI

|

Expertise & Skills

unimi.it
  • ×
  • Home
  • People
  • Projects
  • Fields
  • Units
  • Outputs
  • Third Mission
  1. Outputs

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

Academic Article
Publication Date:
2024
Citation:
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. - 215:(2024 Sep), pp. 112088.1-112088.16. [10.1016/j.jss.2024.112088]
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.
IRIS type:
01 - Articolo su periodico
Keywords:
Transpilation; Programming Languages;
List of contributors:
F. Bertolotti, W. Cazzola, D. Ostuni, C. Castoldi
Authors of the University:
CAZZOLA WALTER ( author )
Link to information sheet:
https://air.unimi.it/handle/2434/1053108
Full Text:
https://air.unimi.it/retrieve/handle/2434/1053108/3036669/1-s2.0-S016412122400133X-main.pdf
Project:
Typeful Language Adaptation for Dynamic, Interacting and Evolving Systems
  • Research Areas

Research Areas

Concepts (2)


Settore INF/01 - Informatica

Settore INFO-01/A - Informatica
  • Guide
  • Help
  • Accessibility
  • Privacy
  • Use of cookies
  • Legal notices

Powered by VIVO | Designed by Cineca | 26.4.3.0