# Transpilers: A Systematic Mapping Review of Their Usage in Research and Industry
## 2 Methods and Execution
### Synthesis
#### 2.6.2 Categorize the Data  
The data categorization process begins with the generation of the base terms list, in which each term is representative of a specific subarea of research. In this case, a general reading and a review of all the downloaded articles have been taken as a reference and a list has been generated based on the author's understanding. The topics were selected based on the understanding of certain research areas known to be related to the use of transpilers.  
A word list was created. All the titles and the abstracts of the articles were extracted as separated plain texts and processed in a qualitative tabulation tool. Numbers, hyphens, and common words from the English language were removed. Once the word list was generated, it was exported to Excel. Table 5 shows the manual processing carried out with the data later, where it was incorporated with the \"Language\" mark when it is a non-representative language element, \"Generic\" when it is a term that does not determine a particular topic, and \"Base List\" when it is a representative element.  
A word cloud was created, the objective being a visual representation of the words that have the highest recurrence among the base articles of the study. Figure 3 shows the cloud of words generated using the qualitative tabulation tool. In this, it is possible to see agreement with the word list, so several additional terms were chosen to add to the list of classification terms.  
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Word** & **Length** & **Matches** \\ \hline performance & 11 & 541 \\ source-to-source & 16 & 471 \\ compiler & 8 & 450 \\ programming & 11 & 399 \\ parallel & 8 & 307 \\ software & 8 & 278 \\ memory & 6 & 271 \\ framework & 9 & 258 \\ transformation & 14 & 254 \\ hardware & 8 & 234 \\ optimization & 12 & 215 \\ development & 11 & 214 \\ gpu & 3 & 162 \\ algorithm & 9 & 156 \\ quantum & 7 & 138 \\ opencl & 6 & 134 \\ openmp & 6 & 133 \\ compilers & 9 & 123 \\ hls & 3 & 118 \\ architecture & 12 & 115 \\ gpus & 4 & 108 \\ javascript & 10 & 107 \\ kernels & 7 & 104 \\ simulation & 10 & 97 \\ fpga & 4 & 94 \\ kernel & 6 & 91 \\ semantics & 9 & 91 \\ cuda & 4 & 82 \\ learning & 8 & 82 \\ accelerators & 12 & 80 \\ benchmarks & 10 & 78 \\ mobile & 6 & 78 \\ power & 5 & 76 \\ network & 7 & 71 \\ space & 5 & 67 \\ benchmark & 9 & 66 \\ java & 4 & 66 \\ web & 3 & 66 \\ fpgas & 5 & 63 \\ graph & 5 & 62 \\ hpc & 3 & 62 \\ openacc & 7 & 61 \\ python & 6 & 61 \\ cloud & 5 & 59 \\ matlab & 6 & 59 \\ intel & 5 & 58 \\ polyhedral & 10 & 55 \\ low-level & 9 & 54 \\ portability & 11 & 54 \\ accelerator & 11 & 52 \\ translator & 10 & 51 \\ \hline \hline \end{tabular}
\end{table}
Table 5: Terms extracted from the word list processingTerms commonly used to define methods, techniques, platforms, or technologies were incorporated. In this case, these were mainly relationships with different operating systems, specific types of hardware or software, and elements of hardware and software architecture, among others.  
Cleaning and ordering were carried out to choose the terms that could cause difficulties in their search, due to their easy coincidence or their short length.  
Figure 4 shows the final list of tags used for data classification. The relationship procedure was executed through SQL queries. A temporary table was created with all the terms and a textual search was made in the title and abstract of each article, looking for the determined terms. In case of a match, a record in the relationship table (EntryTag) is created to indicate that relationship with the term. An article could have many relationships with the terms executed since the mixture and co-occurrence of terms in the same article will allow commonly combined themes to be determined.  
Figure 3: Word cloud