Outside the Sandbox: A Study of Input/Output Methods in Java

06/20/2023
by   Matúš Sulír, et al.
0

Programming languages often demarcate the internal sandbox, consisting of entities such as objects and variables, from the outside world, e.g., files or network. Although communication with the external world poses fundamental challenges for live programming, reversible debugging, testing, and program analysis in general, studies about this phenomenon are rare. In this paper, we present a preliminary empirical study about the prevalence of input/output (I/O) method usage in Java. We manually categorized 1435 native methods in a Java Standard Edition distribution into non-I/O and I/O-related methods, which were further classified into areas such as desktop or file-related ones. According to the static analysis of a call graph for 798 projects, about 57 methods potentially call I/O natives. The results of dynamic analysis on 16 benchmarks showed that 21 called an I/O native. We conclude that neglecting I/O is not a viable option for tool designers and suggest the integration of I/O-related metadata with source code to facilitate their querying.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/20/2023

Method Chaining Redux: An Empirical Study of Method Chaining in Java, Kotlin, and Python

There are possible benefits and drawbacks to chaining methods together, ...
research
04/12/2018

The Java Build Framework: Large Scale Compilation

Large repositories of source code for research tend to limit their utili...
research
02/07/2020

SLACC: Simion-based Language Agnostic Code Clones

Successful cross-language clone detection could enable researchers and d...
research
10/27/2020

Are Multi-language Design Smells Fault-prone? An Empirical Study

Nowadays, modern applications are developed using components written in ...
research
05/01/2023

Montsalvat: Intel SGX Shielding for GraalVM Native Images

The popularity of the Java programming language has led to its wide adop...
research
10/11/2018

An Initial Step Towards Organ Transplantation Based on GitHub Repository

Organ transplantation, which is the utilization of codes directly relate...
research
11/21/2020

An Empirical Study on Failed Error Propagation in Java Programs with Real Faults

During testing, developers can place oracles externally or internally wi...

Please sign up or login with your details

Forgot password? Click here to reset