12 papers · ranked by Valyu relevance
Stefan Schott, Serena Elisa Ponta, W. Fischer, Jonas Klauke + 1 more
On average, 71% of the code in typical Java projects comes from open-source software (OSS) dependencies, making OSS dependencies the dominant component of modern software code bases. This high degree of OSS reliance comes with a considerable security risk of adding known security vulnerabilities to a code base. To…
Akshatha Shenoy, Carlo A. Furia
The landscape of automated formal verification is populated by techniques that make prominently different trade-offs: some focus on expressiveness and precision, supporting the verification of complex properties; others favor scalability and practicality, so that they are applicable to larger programs using different…
Joel Nyholm, Wojciech Mostowski, Christoph Reichenbach
Energy consumption is a growing concern in several fields, from mobile devices to large data centers. Developers need detailed information on the energy consumption of their software to mitigate consumption issues. Previous approaches mainly have a broader focus, such as on specific functions or complete programs…
Mst Eshita Khatun, Lamine Noureddine, Zhiyong Sui, Aisha Ali-Gombe
—With the exponential growth in mobile applications, protecting user privacy has become even more crucial. Android applications are often known for collecting, storing, and sharing sensitive user information such as contacts, location, camera, and microphone data—often without the user's clear consent or…
Zichen Liu, Shao Yang, Xusheng Xiao
Mobile app markets host millions of apps, yet undesired behaviors (e.g., disruptive ads, illegal redirection, payment deception) remain hard to catch because they often do not rely on permission-protected APIs and can be easily camouflaged via UI or metadata edits. We present BINCTX, a learning approach that builds…
Serena Cofano, Daniel B. Williams, Aman Sharma, Martin Monperrus
Runtime introspection of dependencies, i.e., the ability to observe which dependencies are currently used during program execution, is fundamental for Software Supply Chain security. Yet, Java has no support for it. We solve this problem with Classport, a system that embeds dependency information into Java class files…
Alessandro Botta, Shiven Garisa, Jaya Vardhini Akurathi, Ahsanul Ameen Sabit + 2 more
Software-engineering assistants often need method-level context beyond an isolated body, including enclosing-class information, documentation, callers, callees, type hierarchy, and structural characteristics. Manually collecting this context is time-consuming, inconsistent, and difficult to reproduce across large Java…
Rui Li, Wenrui Diao, Debin Gao
Android has adopted Kotlin alongside Java across apps and core system components. During this shift, we observe parallel implementations in the Android Open Source Project (AOSP) where the same component is implemented in both Java and Kotlin. In principle, their functional purposes are identical. In practice, subtle…
Aman Sharma, Martin Monperrus
Applications are built from many dependencies. Each dependency is distributed by package registries but it only contains compiled code and does not ship execution state, so runtimes rebuild that state from scratch on every startup. Execution caching records this preparation result so subsequent starts can skip it, but…
Gupta, Aryan, Reddy, Y. Raghu
—The automated translation of C code to Java code is a notoriously difficult task, fraught with challenges stemming from fundamental paradigm shifts (procedural vs. Object Oriented), memory models (manual pointers vs. Garbage Collection), and incompatible data types. This paper investigates the efficacy of 19 small…
Yusheng Zheng, Zhengjie Ji, Weichen Tao, Hao Sun + 3 more
eBPF safely extends OS kernels in domains such as networking, observability, and security. The safety comes from an in-kernel compilation pipeline where a verifier checks every program, and a kernel just-in-time compiler (JIT) translates the verified bytecode to native code. The kernel keeps the JIT simple to stay…
Filippo Schiavio, Lubomír Bulej, Walter Binder
Developers often use microbenchmarks to choose the most performant implementation of a method or a class. On the Java Virtual Machine (JVM), this is commonly done using the Java Microbenchmark Harness (JMH) which addresses common pitfalls of measuring code performance on the JVM. However, even using JMH guidelines…