Mining Common Syntactic Patterns used by Java']Java Programmers

被引:1
|
作者
Losada, Alvaro [1 ]
Facundo, Guillermo [1 ]
Garcia, Miguel [1 ]
Ortin, Francisco [1 ]
机构
[1] Univ Oviedo, Comp Sci Dept, C Federico Garcia Lorca 18, Oviedo 33007, Spain
关键词
!text type='Java']Java[!/text; Syntactics; Software development management; Software; IEEE transactions; Data mining; Codes; Syntactic patterns; rule mining; Abstract Syntax Trees; association rules;
D O I
10.1109/TLA.2022.9693559
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Open source code repositories provide massive data as programs that have been used to develop different tools. These kinds of works have been included in the active Big Code and Mining Software Repositories research fields. Although different machine learning works already classify the syntactic constructs used by programmers, there are no reports about the most common syntactic patterns used by Java programmers. In this article, we describe a system we build to provide such a report. Our system retrieves the syntactic patterns used by Java programmers, distinguishing those utilized by experts and beginners. We also present the anomalies found in the usage of different syntactic constructs. We modify the OpenJDK compiler to double the syntactic information included in its Abstract Syntax Tree (AST), define a mechanism to translate ASTs into n-dimensional vectors, combine the information of different syntax constructs to build heterogeneous patterns, and apply the Frequent Pattern Growth algorithm to mine the syntactic patterns as association rules. The mined patterns allow expressing hierarchical subpatterns connected to one another, providing a high level of expressiveness.
引用
收藏
页码:753 / 762
页数:10
相关论文
共 50 条
  • [1] Perceptions of Java']Java - Experienced programmers' perspective
    Benander, AC
    Benander, BA
    Lin, M
    JOURNAL OF COMPUTER INFORMATION SYSTEMS, 2003, 43 (04) : 1 - 7
  • [2] What Programmers Do with Inheritance in Java']Java
    Tempero, Ewan
    Yang, Hong Yul
    Noble, James
    ECOOP 2013 - OBJECT-ORIENTED PROGRAMMING, 2013, 7920 : 577 - 601
  • [3] An assembler and disassembler framework for Java']Java™ programmers
    Mathiske, Bernd
    Simon, Doug
    Ungar, Dave
    SCIENCE OF COMPUTER PROGRAMMING, 2008, 70 (2-3) : 127 - 148
  • [4] An interactive environment for beginning Java']Java programmers
    Goldman, KJ
    SCIENCE OF COMPUTER PROGRAMMING, 2004, 53 (01) : 3 - 24
  • [5] The expression of common concurrency patterns in join Java']Java
    Itzstein, GS
    Kearney, D
    PDPTA '04: PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED PROCESSING TECHNIQUES AND APPLICATIONS, VOLS 1-3, 2004, : 1021 - 1027
  • [6] Mining control patterns from Java']Java program corpora
    Chen, DJ
    Hwang, CC
    Huang, SK
    Chen, DTK
    JOURNAL OF INFORMATION SCIENCE AND ENGINEERING, 2004, 20 (01) : 57 - 83
  • [7] Object-orientation in Java']Java for scientific programmers
    Bishop, J
    Bishop, N
    SIGCSE 2000: PROCEEDINGS OF THE THIRTY-FIRST SIGCSE TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2000, 32 (01): : 357 - 361
  • [8] How Java']Java Programmers Test Exceptional Behavior
    Marcilio, Diego
    Furia, Carlo A.
    2021 IEEE/ACM 18TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2021), 2021, : 207 - 218
  • [9] Mining Coding Patterns to Detect Crosscutting Concerns in Java']Java Programs
    Ishio, Takashi
    Date, Hironori
    Miyake, Tatsuya
    Inoue, Katsuro
    FIFTEENTH WORKING CONFERENCE ON REVERSE ENGINEERING, PROCEEDINGS, 2008, : 123 - 132
  • [10] The Java']Java Syntactic Extender (JS']JSE)
    Bachrach, J
    Playford, K
    ACM SIGPLAN NOTICES, 2001, 36 (11) : 31 - 42