# Transpiler-Based Architecture Design Model for Back-End Layers in Software Development
## 5 Discussion
### About the Related Articles
* High-Performance GPU-to-CPU Transpilation and Optimization via High-Level Parallel Constructs [54] This article proposes an automated method to convert programs written in one programming model, such as CUDA, to another model, such as CPU threads, using Polygeist/MLIR, which can achieve performance portability and eliminate the need for manual application portability. This framework allows compiler transformations to be applied seamlessly, including parallelism-specific optimizations. The approach was evaluated by converting and optimizing the CUDA Rodinia benchmark suite for a multicore CPU, resulting in a 58% speedup compared with handwritten OpenMP code. Additionally, this article demonstrates how PyTorch CUDA kernels can run efficiently and scale on a CPU-only supercomputer without user intervention, outperforming PyTorch's native CPU back-end. This approach differs from a software architecture design that uses transpilers for back-end layer development, as it focuses on automatically translating code from one programming model to another rather than developing a shared model that can be transpiled to equivalent versions in different languages. * Program Transformation Techniques Applied to Languages Used in High-Performance Computing [55]This article presents an approach to improving the quality of software in high-performance computing (HPC) through meta-programming. Meta-programming allows for the manipulation and generation of programs in order to extend their behavior. The authors introduced the OpenFortran and OpenC frameworks, which enable transparent program transformation for application programmers. In addition, they suggested a generalized meta-programming framework to allow program transformation for any programming language with the aim of solving concerns related to efficiency, scalability, and adaptation in HPC software. This approach differs from a software architecture design that uses transpilers for back-end layer development in that it emphasizes program transformation and generation in HPC rather than language translation. * Multi-Language Static Code Analysis on the LARA Framework [56] This study proposes a method for enhancing source-code analysis to support multiple languages by utilizing the LARA framework to create a language specification for object-oriented programming languages. The authors demonstrated that this approach allows language specifications to be shared between LARA source-to-source compilers and enables the mapping of a virtual abstract syntax tree over the nodes of Abstract Syntax Trees (ASTs) provided by different parsers. To evaluate their approach, the authors implemented a library of eighteen software metrics using the proposed language specification and applied these metrics to the source code in four programming languages (C, C++, Java, and JavaScript), then compared the results to those of other tools. This approach is distinct from software architecture design that uses transpilers for back-end development, as it focuses on abstract syntax tree mapping and analysis rather than automatic language translation and software architecture design patterns. * Beyond @CloudFunction: Powerful Code Annotations to Capture Serverless Runtime Patterns [57] This article delves into the importance of simplicity in the development of elastically scalable applications and addresses how Function-as-a-Service (FaaS), a form of serverless computing, can alleviate this problem. FaaSification frameworks have been introduced to simplify the offloading of code methods as cloud functions; however, as applications become more complex, runtime patterns with background activities require more complex infrastructure orchestration. To address this challenge, the authors of this study proposed a novel approach that uses infrastructure-as-code concepts to simplify orchestration patterns through powerful code annotations. The proposed solution was demonstrated using FaaS Fusion, an annotation library, and a transpiler framework for JavaScript.