Source-to-Source Code Transformation on Rust for High-Level Stream Parallelism

  • Leonardo G. Faé PUCRS
  • Renato B. Hoffman PUCRS
  • Dalvan Griebler PUCRS


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
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.