dc.rights.license | CC-BY-NC-ND | |
dc.contributor.advisor | Swierstra, W.S. | |
dc.contributor.author | Faiz Ilham Muhammad, Faiz | |
dc.date.accessioned | 2025-02-13T00:01:58Z | |
dc.date.available | 2025-02-13T00:01:58Z | |
dc.date.issued | 2025 | |
dc.identifier.uri | https://studenttheses.uu.nl/handle/20.500.12932/48506 | |
dc.description.abstract | Unused values found in source code may be a source of potential bugs. This is especially true for some types of values that must be eventually used by a certain set of functions. For example, an asynchronous call must be eventually awaited or canceled, otherwise it is likely a mistake. This pattern of usage is called utilization, and the types that must be utilized are the utilizable types. We present a formalization of a data-flow analysis for statically analyzing value utilization in Kotlin programs and implement a prototype of the analysis as a Kotlin compiler plugin. We extend the function signature type in Kotlin to include annotations for utilization status requirements and status-changing effects. The annotations may also be parametric in the case of higher-order functions and special types such as collections. The analysis method checks and infers the functions' utilization annotations, in addition to warning of any incomplete utilization in the functions. | |
dc.description.sponsorship | Utrecht University | |
dc.language.iso | EN | |
dc.subject | Unused values found in source code may be a source of potential bugs. For example, an asynchronous call must be eventually awaited or canceled, otherwise it is likely a mistake. This pattern of usage is called utilization, and the types that must be utilized are the utilizable types. We present a formalization of a data-flow analysis for statically analyzing value utilization in Kotlin and implement a prototype of the analysis as a Kotlin compiler plugin. | |
dc.title | Use it or Lose it: A Kotlin Static Analysis for Identifying Unused Values | |
dc.type.content | Master Thesis | |
dc.rights.accessrights | Open Access | |
dc.subject.keywords | unused value, utilization, kotlin, data-flow analysis | |
dc.subject.courseuu | Computing Science | |
dc.thesis.id | 43053 | |