Understanding software-2.0: A study of machine learning library usage and evolution

M Dilhara, A Ketkar, D Dig - ACM Transactions on Software Engineering …, 2021 - dl.acm.org
Enabled by a rich ecosystem of Machine Learning (ML) libraries, programming using
learned models, ie, Software-2.0, has gained substantial adoption. However, we do not …

An empirical study of refactorings and technical debt in machine learning systems

Y Tang, R Khatchadourian… - 2021 IEEE/ACM …, 2021 - ieeexplore.ieee.org
Machine Learning (ML), including Deep Learning (DL), systems, ie, those with ML
capabilities, are pervasive in today's data-driven society. Such systems are complex; they …

Discovering repetitive code changes in python ml systems

M Dilhara, A Ketkar, N Sannidhi, D Dig - Proceedings of the 44th …, 2022 - dl.acm.org
Over the years, researchers capitalized on the repetitiveness of software changes to
automate many software evolution tasks. Despite the extraordinary rise in popularity of …

[HTML][HTML] Safe automated refactoring for intelligent parallelization of Java 8 streams

R Khatchadourian, Y Tang, M Bagherzadeh - Science of Computer …, 2020 - Elsevier
Streaming APIs are becoming more pervasive in mainstream Object-Oriented programming
languages and platforms. For example, the Stream API introduced in Java 8 allows for …

Inferring and applying type changes

A Ketkar, O Smirnov, N Tsantalis, D Dig… - Proceedings of the 44th …, 2022 - dl.acm.org
Developers frequently change the type of a program element and update all its references to
increase performance, security, or maintainability. Manually performing type changes is …

Synthesis-powered optimization of smart contracts via data type refactoring

Y Chen, Y Wang, M Goyal, J Dong, Y Feng… - Proceedings of the ACM …, 2022 - dl.acm.org
Since executing a smart contract on the Ethereum blockchain costs money (measured in
gas), smart contract developers spend significant effort in reducing gas usage. In this paper …

Understanding type changes in java

A Ketkar, N Tsantalis, D Dig - Proceedings of the 28th ACM Joint Meeting …, 2020 - dl.acm.org
Developers frequently change the type of a program element and update all its references
for performance, security, concurrency, library migration, or better maintainability. Despite …

[PDF][PDF] An Empirical Study on the Use and Misuse of Java 8 Streams.

R Khatchadourian, Y Tang, M Bagherzadeh, B Ray - FASE, 2020 - library.oapen.org
Streaming APIs allow for big data processing of native data structures by providing
MapReduce-like operations over these structures. However, unlike traditional big data …

recode: A lightweight find-and-replace interaction in the ide for transforming code by example

W Ni, J Sunshine, V Le, S Gulwani, T Barik - The 34th Annual ACM …, 2021 - dl.acm.org
Software developers frequently confront a recurring challenge of making code
transformations—similar but not entirely identical code changes in many places—in their …

MLCatchUp: Automated update of deprecated machine-learning APIs in Python

SA Haryono, F Thung, D Lo, J Lawall… - 2021 IEEE International …, 2021 - ieeexplore.ieee.org
Machine learning (ML) libraries are gaining vast popularity, especially in the Python
programming language. Using the latest version of such libraries is recommended to ensure …