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 条
  • [41] Automatic verification of Java']Java design patterns
    Blewitt, A
    Bundy, A
    Stark, I
    16TH ANNUAL INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2001), PROCEEDINGS, 2001, : 324 - 327
  • [42] How Weak Reference is Used in Java']Java Projects?
    Higo, Yoshiki
    Matsumoto, Shinsuke
    Kim, Taeyoung
    Kusumoto, Shinji
    2020 27TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2020), 2020, : 445 - 449
  • [43] How Fields are Used in Java']Java: An Empirical Study
    Tempero, Ewan
    ASWEC 2009: 20TH AUSTRALIAN SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2009, : 91 - 100
  • [44] A Functional Approach to Parallelizing Data Mining Algorithms in Java']Java
    Kholod, Ivan
    Shorov, Andrey
    Gorlatch, Sergei
    PARALLEL COMPUTING TECHNOLOGIES (PACT 2017), 2017, 10421 : 459 - 472
  • [45] Java']Java as a basis for parallel data mining in workstation clusters
    Gimbel, M
    Philippsen, M
    Haumacher, B
    Lockemann, PC
    Tichy, WF
    HIGH-PERFORMANCE COMPUTING AND NETWORKING, PROCEEDINGS, 1999, 1593 : 884 - 894
  • [46] Data mining for clustering naming of the village at Java']Java Island
    Abdullah, Atje Setiawan
    Ruchjana, Budi Nurani
    Hidayat, Akik
    Akmal
    Setiana, Deni
    ASIAN MATHEMATICAL CONFERENCE 2016 (AMC 2016), 2017, 893
  • [47] Gold Mining and Changing Perceptions of Risk in West Java']Java
    Soemarwoto, Rini
    Ellen, Roy
    HUMAN ORGANIZATION, 2010, 69 (03) : 233 - 241
  • [48] Building Java']Java Intelligent Applications Data Mining for Java']Java Type-2 Fuzzy Inference Systems
    Castanon-Puga, Manuel
    Miguel Flores-Parra, Josue
    Ramon Castro, Juan
    Gaxiola-Pacheco, Carelia
    Enrique Palafox-Maestre, Luis
    INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE, ICCS 2015 COMPUTATIONAL SCIENCE AT THE GATES OF NATURE, 2015, 51 : 2719 - 2728
  • [49] Exploring Java']Java Software Vocabulary: A Search and Mining Perspective
    Linstead, Erik
    Hughes, Lindsey
    Lopes, Cristina
    Baldi, Pierre
    2009 ICSE WORKSHOP ON SEARCH-DRIVEN DEVELOPMENT-USERS, INFRASTRUCTURE, TOOLS AND EVALUATION, 2009, : 29 - +
  • [50] Experience with Pedagogical Patterns in Introductory Java']Java Course
    Djordjevic, Mirela
    Innovative Techniques in Instruction Technology, E-learning, E-assessment and Education, 2008, : 338 - 341