Affiliation:
1. University of Bologna, Bologna, Italy
2. Université de Paris, Paris, France
3. Inria, Paris, France
Abstract
Programming language identification (PLI) is a common need in automatic program comprehension as well as a prerequisite for deeper forms of code understanding. Image-based approaches to PLI have recently emerged and are appealing due to their applicability to code screenshots and programming video tutorials. However, they remain limited to the recognition of a small amount of programming languages (up to 10 languages in the literature). We show that it is possible to perform image-based PLI on a large number of programming languages (up to 149 in our experiments) with high (92%) precision and recall, using convolutional neural networks (CNNs) and transfer learning, starting from readily-available pretrained CNNs. Results were obtained on a large real-world dataset of 300,000 code snippets extracted from popular GitHub repositories. By scrambling specific character classes and comparing identification performances we also show that the characters that contribute the most to the visual recognizability of programming languages are symbols (e.g., punctuation, mathematical operators and parentheses), followed by alphabetic characters, with digits and indentation having a negligible impact.
Reference39 articles.
1. Building the universal archive of source code;Abramatic;Communications of the ACM,2018
2. The debsources dataset: two decades of free and open source software;Caneill;Empirical Software Engineering,2017
3. An empirical study of programming language trends;Chen;IEEE Software,2005
4. cloc;Danial,2006
5. Content-based textual file type detection at scale;Del Bonifro,2021
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献