DocumentCode :
700358
Title :
Does JavaScript software embrace classes?
Author :
Silva, Leonardo Humberto ; Ramos, Miguel ; Valente, Marco Tulio ; Bergel, Alexandre ; Anquetil, Nicolas
Author_Institution :
Fed. Inst. of Northern Minas Gerais, Brazil
fYear :
2015
fDate :
2-6 March 2015
Firstpage :
73
Lastpage :
82
Abstract :
JavaScript is the de facto programming language for the Web. It is used to implement mail clients, office applications, or IDEs, that can weight hundreds of thousands of lines of code. The language itself is prototype based, but to master the complexity of their application, practitioners commonly rely on informal class abstractions. This practice has never been the target of empirical research in JavaScript. Yet, understanding it is key to adequately tuning programming environments and structure libraries such that they are accessible to programmers. In this paper we report on a large and in-depth study to understand how class emulation is employed in JavaScript applications. We propose a strategy to statically detect class-based abstractions in the source code of JavaScript systems. We used this strategy in a dataset of 50 popular JavaScript applications available from GitHub. We found four types of JavaScript software: class-free (systems that do not make any usage of classes), class-aware (systems that use classes, but marginally), class-friendly (systems that make a relevant usage of classes), and class-oriented (systems that have most of their data structures implemented as classes). The systems in these categories represent, respectively, 26%, 36%, 30%, and 8% of the systems we studied.
Keywords :
Java; programming languages; GitHub; JavaScript software; World Wide Web; class-aware type; class-based abstraction; class-free type; class-friendly type; class-oriented type; programming language; source code; Data structures; Engines; Libraries; Prototypes; Software; Standards; Syntactics; Class-based languages; JavaScript; Reverse Engineering;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Analysis, Evolution and Reengineering (SANER), 2015 IEEE 22nd International Conference on
Conference_Location :
Montreal, QC
Type :
conf
DOI :
10.1109/SANER.2015.7081817
Filename :
7081817
Link To Document :
بازگشت