Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
143 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
46 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Depends-Kotlin: A Cross-Language Kotlin Dependency Extractor (2401.16865v3)

Published 30 Jan 2024 in cs.SE

Abstract: Since Google introduced Kotlin as an official programming language for developing Android apps in 2017, Kotlin has gained widespread adoption in Android development. However, compared to Java, there is limited support for Kotlin code dependency analysis, which is the foundation to software analysis. To bridge this gap, we develop Depends-Kotlin to extract entities and their dependencies in Kotlin source code. Not only does Depends-Kotlin support extracting entities' dependencies in Kotlin code, but it can also extract dependency relations between Kotlin and Java. Using three open-source Kotlin-Java mixing projects as our subjects, Depends-Kotlin demonstrates high accuracy and performance in resolving Kotlin-Kotlin and Kotlin-Java dependencies relations. The source code of Depends-Kotlin and the dataset used have been made available at https: //github.com/XYZboom/depends-kotlin. We also provide a screen-cast presenting Depends-Kotlin at https://youtu.be/ZPq8SRhgXzM.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (16)
  1. [n. d.]. Depends. https://github.com/multilang-depends/depends/
  2. [n. d.]. DV8. https://archdia.com/
  3. [n. d.]. Structure101. "https://structure101.com/"
  4. [n. d.]. Understand. https://scitools.com/
  5. Effectiveness of Kotlin vs. Java in android app development tasks. Information and Software Technology 127 (2020), 106374.
  6. Leveraging design rules to improve software architecture recovery. In Proceedings of the 9th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA). ACM, 133–142.
  7. Investigating the impact of multiple dependency structures on software defects. In Proceedings of the 41st IEEE/ACM International Conference on Software Engineering (ICSE). IEEE, 584–595.
  8. Mohammed El Arnaoty and Francisco Servant. 2024. OneSpace: Detecting cross-language clones by learning a common embedding space. Journal of Systems and Software 208 (2024), 111911.
  9. ENRE: a tool framework for extensible eNtity relation extraction. In Proceedings of the 41st IEEE/ACM International Conference on Software Engineering: Companion Proceedings (ICSE-Companion). IEEE, 67–70.
  10. Multi-programming-language commits in OSS: an empirical study on apache projects. In Proceedings of the 29th IEEE/ACM International Conference on Program Comprehension (ICPC). IEEE, 219–229.
  11. Bruno Gois Mateus and Matias Martinez. 2020. On the adoption, usage and evolution of Kotlin features in Android development. In Proceedings of the 14th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). IEEE, 1–12.
  12. Learning migration models for supporting incremental language migrations of software applications. Information and Software Technology 153 (2023), 107082.
  13. George Mathew and Kathryn T Stolee. 2021. Cross-language code search using static and dynamic analyses. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE). ACM, 205–217.
  14. Architecture Anti-patterns: Automatically Detectable Violations of Design Principles. IEEE Transactions on Software Engineering 47, 5 (2019), 1008–1028.
  15. A component plug-in architecture for the. net platform. In Proceedings of the 7th Joint Modular Languages Conference (JMLC). Springer, 287–305.
  16. Detecting the Locations and Predicting the Costs of Compound Architectural Debts. IEEE Transactions on Software Engineering 48, 9 (2022), 3686–3715.

Summary

We haven't generated a summary for this paper yet.

Github Logo Streamline Icon: https://streamlinehq.com