# Transpilers: A Systematic Mapping Review of Their Usage in Research and Industry
###### Abstract  
Transpilers refer to a special type of compilation that takes source code and translates it into target source code. This type of technique has been used for different types of implementations in scientific studies. A review of the research areas related to the use of transpilers allows the understanding of the direction in this branch of knowledge. The objective was to carry out an exhaustive and extended mapping of the usage and implementation of transpilers in research studies in the last 10 years. A systematic mapping review was carried out for answering the 5 research questions proposed. The PSALSAR method is used as a guide to the steps needed for the review. In total, from 1181 articles collected, 683 primary studies were selected, reviewed, and analyzed. Proposals from the industry were also analyzed. A new method for automatic data tabulation has been proposed for the mapping objective, using a relational database and SQL language. It was identified that the most common uses of transpilers are related to performance optimizations, parallel programming, embedded systems, compilers, testing, AI, graphics, and software development. In conclusion, it was possible to determine the extent and identification of research sub-areas and their impact on the usage of the transpiilers. Future research could be considered about the usage of transpilers in transactional software, migration strategies for legacy systems, AI, math, multiplatform games and apps, automatic source code generation, and networking. Transpilers, source-to-source compiler, transcompiler; cross compiler; software architecture; systematic literature review +
Footnote †: journal:  
(accessed on 5 January 2023)), which becomes an extension of the Javascript language, adding a syntax based on types, classes, modules, and other features [11]. Typescript is widely used alone and as the programming language for frameworks such as Angular ([[https://angular.io/](https://angular.io/)]([https://angular.io/](https://angular.io/)) (accessed on 5 January 2023)), ReactJS/React Native ([[https://reactjs.org/](https://reactjs.org/)]([https://reactjs.org/](https://reactjs.org/)) (accessed on 5 January 2023)), NativeScript ([[https://nativescript.org/](https://nativescript.org/)]([https://nativescript.org/](https://nativescript.org/)) (accessed on 5 January 2023)), Redux ([[https://redux.js.org/](https://redux.js.org/)]([https://redux.js.org/](https://redux.js.org/)) (accessed on 5 January 2023)), and others. Due to the transpilers' source code translation and rewriting capabilities, transpilers have been used for several different applications, such as automatic code refactoring, source code optimizations, porting, platform compatibility preparation, front-end or gaming frameworks, and so on. An entire-topic mapping review about transpilers' usage in research last years, and also along with main applications in the industry; is considered significant because it allows for building a comprehensive overview of the usage of this technology. It also allows us to expose the categorization of recent works, recognize industry applications, and identify possible new related research areas. Those are the intended contributions of this work. Consequently, a review of all the studies that have the application of transpilers in the field of computer science in the last years in scientific databases was considered. It was designed as a wide-field review of the main topic, without applying specific segmentation or filtering toward a particular sub-specialty or any kind of application. This allows a broad spectrum mapping of its usage in research. Regarding industry applications of transpilers, we carried out an exploratory search using public search engines, frameworks documentation, and cross-reference search. This was performed as a complementary study, with the intent to show the existence of several frameworks and platforms that use transpilers inside generally available products.