Cross-Language Dependencies: An Empirical Study of Kotlin-Java
- URL: http://arxiv.org/abs/2405.04602v2
- Date: Fri, 26 Jul 2024 17:07:02 GMT
- Title: Cross-Language Dependencies: An Empirical Study of Kotlin-Java
- Abstract summary: Since Google introduced Kotlin as an official programming language for developing Android apps in 2017, Kotlin has gained widespread adoption in Android development.
There is limited research on how Java and Kotlin interact with each other in real-world projects.
We conducted an empirical study of 23 Kotlin-Java real-world projects with 3,227 Java and 8,630 Kotlin source files.
- Score: 1.5680371708311132
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Background: Since Google introduced Kotlin as an official programming language for developing Android apps in 2017, Kotlin has gained widespread adoption in Android development. The inter-operability of Java and Kotlin's design nature allows them to coexist and interact with each other smoothly within a project. Aims: However, there is limited research on how Java and Kotlin interact with each other in real-world projects and what challenges are faced during these interactions. The answers to these questions are key to understanding these kinds of cross-language software systems. Methods: In this paper, we implemented a tool named DependEx-tractor, which can extract 11 kinds of Kotlin-Java dependencies, and conducted an empirical study of 23 Kotlin-Java real-world projects with 3,227 Java and 8,630 Kotlin source files. Results: Our findings revealed that Java and Kotlin frequently interact with each other in these cross-language projects, with access and call dependency types being the most dominant. Compared to files interacting with other files in the same language, Java/Kotlin source files, which participate in the cross-language interactions, undergo more commits. Additionally, among all Kotlin-Java problematic interactions, we identified seven common mistakes, along with their fixing strategies. Conclusions: The findings of this study can help developers understand and address the challenges in Kotlin-Java projects.
Related papers
- CrossLangFuzzer: Differential Testing of Cross-Language JVM Compilers [6.138794721766494]
CrossLangFuzzer is a differential testing framework for cross-language compilation.<n>It synthesizes cross-language test programs using the Kotlin compiler's unified intermediate representation.<n>CrossLangFuzzer uncovered 32 confirmed bugs, including 15 in Kotlin, 4 in Groovy, 7 in Scala 3, 2 in Scala 2, and 4 in Java.
arXiv Detail & Related papers (2026-06-26T14:33:52Z) - Lost in Migration: Exposing Android Framework Vulnerabilities in Parallel Java-Kotlin Implementations [9.349014404468695]
We observe parallel implementations in the Android Open Source Project (AOSP) where the same component is implemented in both Java and Kotlin.<n>Such divergences are not vulnerabilities by themselves, but they provide useful clues that may reveal flaws in surrounding enforcement logic.<n>This paper presents the first systematic study of Java-Kotlin parallel implementations in the Android framework and examines their security implications.
arXiv Detail & Related papers (2026-06-05T16:15:03Z) - Classport: Designing Runtime Dependency Introspection for Java [8.337857900646346]
introspection, i.e., the ability to observe which dependencies are currently used during program execution is fundamental for Software Supply Chain security.<n>We solve this problem with Classport, a system that embeds dependency information into Java class files, enabling the retrieval of dependency information at runtime.<n>We evaluate Classport on six real-world projects, demonstrating the feasibility in identifying dependencies at runtime.
arXiv Detail & Related papers (2025-10-23T08:39:30Z) - Finding Compiler Bugs through Cross-Language Code Generator and Differential Testing [4.072167151876496]
CrossLangFuzzer generates cross-language test programs with diverse type parameters and complex inheritance structures.<n>It successfully uncovered 10 confirmed bugs in the Kotlin compiler, 4 confirmed bugs in the Groovy compiler, 7 confirmed bugs in the Scala 3 compiler, 2 confirmed bugs in the Scala 2 compiler, and 1 confirmed bug in the Java compiler.
arXiv Detail & Related papers (2025-07-09T06:33:06Z) - SwingArena: Competitive Programming Arena for Long-context GitHub Issue Solving [90.32201622392137]
We present SwingArena, a competitive evaluation framework for Large Language Models (LLMs)<n>Unlike traditional static benchmarks, SwingArena models the collaborative process of software by pairing LLMs as iterations, who generate patches, and reviewers, who create test cases and verify the patches through continuous integration (CI) pipelines.
arXiv Detail & Related papers (2025-05-29T18:28:02Z) - KwaiChat: A Large-Scale Video-Driven Multilingual Mixed-Type Dialogue Corpus [69.46707346122113]
We propose a novel task and create a human-to-human video-driven multilingual mixed-type dialogue corpus.
The KwaiChat corpus contains a total of 93,209 videos and 246,080 dialogues, across 4 dialogue types, 30 domains, 4 languages, and 13 topics.
An analysis of 7 distinct LLMs on KwaiChat reveals that GPT-4o achieves the best performance but still cannot perform well in this situation.
arXiv Detail & Related papers (2025-03-10T04:05:38Z) - LitmusKt: Concurrency Stress Testing for Kotlin [0.8312192184427764]
We present LitmusKt - the first tool for testing concurrent programs in Kotlin.
Our tool allows litmus tests in a single custom DSL, and these tests are then run in Kotlin/Native and Kotlin/JVM.
Using LitmusKt, we discovered novel bugs in the Kotlin compiler, which we then fixed and they are no longer present.
arXiv Detail & Related papers (2025-01-13T16:40:34Z) - How Do Developers Use Type Inference: An Exploratory Study in Kotlin [3.382017614888546]
Kotlin is the default language for Android development, one of the largest software marketplaces.
We conduct a large-scale empirical study using Boa, a tool for mining software repositories.
Our findings reveal that type inference is frequently employed for local variables and variables with method calls declared outside the file.
arXiv Detail & Related papers (2024-10-30T18:07:21Z) - Local Software Buildability across Java Versions (Registered Report) [0.0]
We will try to automatically build every project in containers with Java versions 6 to 23 installed.
Success or failure will be determined by exit codes, and standard output and error streams will be saved.
arXiv Detail & Related papers (2024-08-21T11:51:00Z) - JavaBench: A Benchmark of Object-Oriented Code Generation for Evaluating Large Language Models [22.95865189208591]
We propose JavaBench, a project-level Java benchmark that exercises OOP features.
It comprises four Java projects with 389 methods in 106 Java classes.
It is attested by 282 undergraduate students, reaching a 90.93/100 average score.
arXiv Detail & Related papers (2024-06-10T06:43:25Z) - Depends-Kotlin: A Cross-Language Kotlin Dependency Extractor [3.0915964434574175]
Depends-Kotlin supports extracting entities' dependencies in Kotlin code.
It can also extract dependency relations between Kotlin and Java.
Depends-Kotlin demonstrates high accuracy and performance in resolving Kotlin-Kotlin and Kotlin-Java dependencies relations.
arXiv Detail & Related papers (2024-01-30T10:15:35Z) - Learning From Free-Text Human Feedback -- Collect New Datasets Or Extend
Existing Ones? [57.16050211534735]
We investigate the types and frequency of free-text human feedback in commonly used dialog datasets.
Our findings provide new insights into the composition of the datasets examined, including error types, user response types, and the relations between them.
arXiv Detail & Related papers (2023-10-24T12:01:11Z) - Sparkles: Unlocking Chats Across Multiple Images for Multimodal Instruction-Following Models [60.81438804824749]
Multimodal instruction-following models extend capabilities by integrating both text and images.
Existing models such as MiniGPT-4 and LLaVA face challenges in maintaining dialogue coherence in scenarios involving multiple images.
We introduce SparklesDialogue, the first machine-generated dialogue dataset tailored for word-level interleaved multi-image and text interactions.
We then present SparklesChat, a multimodal instruction-following model for open-ended dialogues across multiple images.
arXiv Detail & Related papers (2023-08-31T05:15:27Z) - LongBench: A Bilingual, Multitask Benchmark for Long Context Understanding [58.20031627237889]
LongBench is the first bilingual, multi-task benchmark for long context understanding.
It comprises 21 datasets across 6 task categories in both English and Chinese, with an average length of 6,711 words (English) and 13,386 characters (Chinese)
arXiv Detail & Related papers (2023-08-28T11:53:40Z) - InterCode: Standardizing and Benchmarking Interactive Coding with
Execution Feedback [50.725076393314964]
We introduce InterCode, a lightweight, flexible, and easy-to-use framework of interactive coding as a standard reinforcement learning environment.
Our framework is language and platform agnostic, uses self-contained Docker environments to provide safe and reproducible execution.
We demonstrate InterCode's viability as a testbed by evaluating multiple state-of-the-art LLMs configured with different prompting strategies.
arXiv Detail & Related papers (2023-06-26T17:59:50Z) - Automatic Specialization of Third-Party Java Dependencies [3.7973152331947815]
Large-scale code reuse significantly reduces both development costs and time.
Massive share of third-party code in software projects poses new challenges, especially in terms of maintenance and security.
We propose a novel technique to specialize dependencies of Java projects, based on their actual usage.
arXiv Detail & Related papers (2023-02-16T15:37:49Z) - KETOD: Knowledge-Enriched Task-Oriented Dialogue [77.59814785157877]
Existing studies in dialogue system research mostly treat task-oriented dialogue and chit-chat as separate domains.
We investigate how task-oriented dialogue and knowledge-grounded chit-chat can be effectively integrated into a single model.
arXiv Detail & Related papers (2022-05-11T16:01:03Z) - Reasoning in Dialog: Improving Response Generation by Context Reading
Comprehension [49.92173751203827]
In multi-turn dialog, utterances do not always take the full form of sentences.
We propose to improve the response generation performance by examining the model's ability to answer a reading comprehension question.
arXiv Detail & Related papers (2020-12-14T10:58:01Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.