Retrofitting concurrency for android applications through refactoring

Y Lin, C Radoi, D Dig - Proceedings of the 22nd ACM SIGSOFT …, 2014 - dl.acm.org
Running compute-intensive or blocking I/O operations in the UI event thread of smartphone
apps can severely degrade responsiveness. Despite the fact that Android supports writing …

Exploiting load testing and profiling for performance antipattern detection

C Trubiani, A Bran, A van Hoorn, A Avritzer… - Information and …, 2018 - Elsevier
Context: The performance assessment of complex software systems is not a trivial task since
it depends on the design, code, and execution environment. All these factors may affect the …

A refactoring approach to parallelism

D Dig - IEEE software, 2010 - ieeexplore.ieee.org
In the multicore era, a major programming task will be to make programs more parallel. This
is tedious because it requires changing many lines of code; it's also error-prone and …

Translating imperative code to MapReduce

C Radoi, SJ Fink, R Rabbah, M Sridharan - Proceedings of the 2014 …, 2014 - dl.acm.org
We present an approach for automatic translation of sequential, imperative code into a
parallel MapReduce framework. Automating such a translation is challenging: imperative …

A study and toolkit for asynchronous programming in C#

S Okur, DL Hartveld, D Dig, A Deursen - Proceedings of the 36th …, 2014 - dl.acm.org
Asynchronous programming is in demand today, because responsiveness is increasingly
important on all modern devices. Yet, we know little about how developers use …

Automatic migration from synchronous to asynchronous JavaScript APIs

S Gokhale, A Turcotte, F Tip - Proceedings of the ACM on Programming …, 2021 - dl.acm.org
The JavaScript ecosystem provides equivalent synchronous and asynchronous Application
Programming Interfaces (APIs) for many commonly used I/O operations. Synchronous APIs …

Mining semantic loop idioms

M Allamanis, ET Barr, C Bird, P Devanbu… - IEEE Transactions …, 2018 - ieeexplore.ieee.org
To write code, developers stitch together patterns, like API protocols or data structure
traversals. Discovering these patterns can identify inconsistencies in code or opportunities to …

Refactoring Java programs for flexible locking

M Schäfer, M Sridharan, J Dolby, F Tip - Proceedings of the 33rd …, 2011 - dl.acm.org
Recent versions of the Java standard library offer flexible locking constructs that go beyond
the language's built-in monitor locks in terms of features, and that can be fine-tuned to suit …

Practical simd vectorization techniques for intel® xeon phi coprocessors

X Tian, H Saito, SV Preis, EN Garcia… - … on Parallel & …, 2013 - ieeexplore.ieee.org
Intel® Xeon Phi coprocessor is based on the Intel® Many Integrated Core (Intel® MIC)
architecture, which is an innovative new processor architecture that combines abundant …

LAMBDAFICATOR: from imperative to functional programming through automated refactoring

L Franklin, A Gyori, J Lahoda… - 2013 35th international …, 2013 - ieeexplore.ieee.org
Java 8 introduces two functional features: lambda expressions and functional operations like
map or filter that apply a lambda expression over the elements of a Collection. Refactoring …