Source-to-Source Code Transformation on Rust for High-Level Stream Parallelism
Resumo
Utilizing parallel systems to their full potential can be challenging for general-purpose developers. A solution to this problem is to create high-level abstractions using Domain-Specific Languages (DSL). We create a stream-processing DSL for Rust, a growing programming language focusing on performance and safety. To that end, we explore Rust’s macros as a high-level abstraction tool to support an existing DSL language named SPar and perform source-to-source code transformations in the abstract syntax tree. We aim to assess the Rust source-to-source code transformations toolset and its implications. We highlight that Rust macros are powerful tools for performing source-to-source code transformations for abstracting structured stream processing. In addition, execution time and programmability results are comparable to other solutions.
Palavras-chave:
Domain Specific Language, Parallel Programming, Parallelism Abstraction
Publicado
25/09/2023
Como Citar
FAÉ, Leonardo G.; HOFFMAN, Renato B.; GRIEBLER, Dalvan.
Source-to-Source Code Transformation on Rust for High-Level Stream Parallelism. In: SIMPÓSIO BRASILEIRO DE LINGUAGENS DE PROGRAMAÇÃO (SBLP), 27. , 2023, Campo Grande/MS.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2023
.
p. 41–49.