Note: When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher.
Some full text articles may not yet be available without a charge during the embargo (administrative interval).
What is a DOI Number?
Some links on this page may take you to non-federal websites. Their policies may differ from this site.
-
Statically typed languages offer numerous benefits to developers, such as improved code quality and reduced runtime errors, but they also require the overhead of manual type annotations. To mitigate this burden, language designers have started incorporating support for type inference, where the compiler infers the type of a variable based on its declaration/usage context. As a result, type annotations are optional in certain contexts, and developers are empowered to use type inference in these situations. However, the usage patterns of type annotations in languages that support type inference are unclear. These patterns can help provide evidence for further research in program comprehension, in language design, and for education. We conduct a large-scale empirical study using Boa, a tool for mining software repositories, to investigate when and where developers use type inference in 498,963 Kotlin projects. We choose Kotlin because it is the default language for Android development, one of the largest software marketplaces. Additionally, Kotlin has supported declaration-site optional type annotations from its initial release. Our findings reveal that type inference is frequently employed for local variables and variables initialized with method calls declared outside the file are more likely to use type inference. These results have significant implications for language designers, providing valuable insight into where to allow type inference and how to optimize type inference algorithms for maximum efficiency, ultimately improving the development experience for developers.more » « less
-
Nickel (Ni) and its alloys are important multifunctional materials for the fabrication of integrated circuits, as either the absorber for the extreme ultraviolet lithography masks and/or interconnect metals at the nanometer scale. However, these applications require that Ni to be patterned controllably, selectively, and anisotropically—requirements that can only be met with a plasma based atomic layer etch (ALE) process. In this work, a plasma-thermal ALE approach is developed to pattern Ni, utilizing a nitrogen plasma to form NixN at the surface, formic acid (FA) vapor to selectively remove the NixN layer, and a low-energy Ar+ sputter process to remove carbon residue left by the FA prior to the subsequent nitridation step. This three step ALE process was shown effective to etch Ni with a rate of 1.3 ± 0.17 nm/cycle while maintaining surface smoothness.more » « less
An official website of the United States government

Full Text Available