A journey among Java']Java neutral program variants

被引:15
|
作者
Harrand, Nicolas [1 ]
Allier, Simon [2 ]
Rodriguez-Cancio, Marcelino [3 ]
Monperrus, Martin [1 ]
Baudry, Benoit [1 ]
机构
[1] KTH, Stockholm, Sweden
[2] DGA, Val De Reuil, France
[3] Vanderbildt Univ, Nashville, TN USA
关键词
Neutral program variant; Program transformation; !text type='Java']Java[!/text; Code plasticity; SOFTWARE;
D O I
10.1007/s10710-019-09355-3
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Neutral program variants are alternative implementations of a program, yet equivalent with respect to the test suite. Techniques such as approximate computing or genetic improvement share the intuition that potential for enhancements lies in these acceptable behavioral differences (e.g., enhanced performance or reliability). Yet, the automatic synthesis of neutral program variants, through program transformations remains a key challenge. This work aims at characterizing plastic code regions in Java programs, i.e., the code regions that are modifiable while maintaining functional correctness, according to a test suite. Our empirical study relies on automatic variations of 6 real-world Java programs. First, we transform these programs with three state-of-the-art program transformations: add, replace and delete statements. We get a pool of 23,445 neutral variants, from which we gather the following novel insights: developers naturally write code that supports fine-grain behavioral changes; statement deletion is a surprisingly effective program transformation; high-level design decisions, such as the choice of a data structure, are natural points that can evolve while keeping functionality. Second, we design 3 novel program transformations, targeted at specific plastic regions. New experiments reveal that respectively 60%, 58% and 73% of the synthesized variants (175,688 in total) are neutral and exhibit execution traces that are different from the original.
引用
收藏
页码:531 / 580
页数:50
相关论文
共 50 条
  • [41] OBLIVE: Seamless Code Obfuscation for Java']Java Programs and Android Apps
    Pizzolotto, Davide
    Fellin, Roberto
    Ceccato, Mariano
    2019 IEEE 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER), 2019, : 629 - 633
  • [42] Certifying a java type resolution function using program transformation, annotation, and reflection
    Victor Winter
    Carl Reinke
    Jonathan Guerrero
    Software Quality Journal, 2016, 24 : 115 - 135
  • [43] Java']Java web tools for PCR, in silico PCR, and oligonucleotide assembly and analysis
    Kalendar, Ruslan
    Lee, David
    Schulman, Alan H.
    GENOMICS, 2011, 98 (02) : 137 - 144
  • [44] A JAVA']JAVA-DSP INTERFACE FOR ANALYSIS OF THE MP3 ALGORITHM
    Huang, Chih-Wei
    Thiagarajan, Jayaraman J.
    Spanias, Andreas
    Pattichis, Constantinos
    2011 IEEE DIGITAL SIGNAL PROCESSING WORKSHOP AND IEEE SIGNAL PROCESSING EDUCATION WORKSHOP (DSP/SPE), 2011, : 168 - 173
  • [45] Obfuscating Java']Java Programs by Translating Selected Portions of Bytecode to Native Libraries
    Pizzolotto, Davide
    Ceccato, Mariano
    2018 IEEE 18TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2018, : 40 - 49
  • [46] Programming multirobot applications using the ThinkingCap-II Java']Java framework
    Martinez-Barbera, H.
    Herrero-Perez, D.
    ADVANCED ENGINEERING INFORMATICS, 2010, 24 (01) : 62 - 75
  • [47] JEMMA: An extensible Java']Java dataset for ML4Code applications
    Karmakar, Anjan
    Allamanis, Miltiadis
    Robbes, Romain
    EMPIRICAL SOFTWARE ENGINEERING, 2023, 28 (02)
  • [48] HEAT AND MASS TRANSFER COURSEWARE DEVELOPMENT WITH EASY JAVA']JAVA SIMULATIONS AND MOODLE
    Hernandez-Morales, B.
    Gonzalez-Lopez, J. R.
    Fernandez-Flores, R.
    INTED2011: 5TH INTERNATIONAL TECHNOLOGY, EDUCATION AND DEVELOPMENT CONFERENCE, 2011, : 2924 - 2931
  • [49] Remodularizing Java']Java programs for improved locality of feature implementations in source code
    Olszak, Andrzej
    Jorgensen, Bo Norregaard
    SCIENCE OF COMPUTER PROGRAMMING, 2012, 77 (03) : 131 - 151
  • [50] Genetic diversity and the origin of commercial plantation of Indonesian teak on Java']Java Island
    Prasetyo, Eko
    Widiyatno
    Indrioko, Sapto
    Na'iem, Mohammad
    Matsui, Tetsuya
    Matsuo, Ayumi
    Suyama, Yoshihisa
    Tsumura, Yoshihiko
    TREE GENETICS & GENOMES, 2020, 16 (02)