Blogs (1) >>
ICSE 2019
Sat 25 - Fri 31 May 2019 Montreal, QC, Canada
Fri 31 May 2019 11:00 - 11:20 at St-Denis / Notre-Dame - Concurrency Chair(s): Tuba Yavuz

Streaming APIs are becoming more pervasive in mainstream Object-Oriented programming languages. For example, the Stream API introduced in Java 8 allows for functional-like, MapReduce-style operations in processing both finite and infinite data structures. However, using this API efficiently involves subtle considerations like determining when it is best for stream operations to run in parallel, when running operations in parallel can be less efficient, and when it is safe to run in parallel due to possible lambda expression side-effects. In this paper, we present an automated refactoring approach that assists developers in writing efficient stream code in a semantics-preserving fashion. The approach, based on a novel data ordering and typestate analysis, consists of preconditions for automatically determining when it is safe and possibly advantageous to convert sequential streams to parallel and unorder or de-parallelize already parallel streams. The approach was implemented as a plug-in to the Eclipse IDE, uses the WALA and SAFE analysis frameworks, and was evaluated on 11 Java projects consisting of ~642 thousand lines of code. We found that 36.31% of candidate streams were refactorable, and an average speedup of 3.49 on performance tests was observed. The results indicate that the approach is useful in optimizing stream code to their full potential.

Fri 31 May

Displayed time zone: Eastern Time (US & Canada) change

11:00 - 12:30
ConcurrencyTechnical Track / Demonstrations / Papers at St-Denis / Notre-Dame
Chair(s): Tuba Yavuz University of Florida
Safe Automated Refactoring for Intelligent Parallelization of Java 8 StreamsArtifacts AvailableTechnical TrackIndustry Program
Technical Track
Raffi Khatchadourian City University of New York (CUNY) Hunter College, Yiming Tang City University of New York (CUNY) Graduate Center, Mehdi Bagherzadeh Oakland University, Syed Ahmed Oakland University
Pre-print Media Attached
Detecting Atomicity Violations for Event-Driven Node.js ApplicationsTechnical TrackIndustry Program
Technical Track
Xiaoning Chang Institute of Software, Chinese Academy of Sciences, Wensheng Dou Institute of Software, Chinese Academy of Sciences, Yu Gao Institute of Software, Chinese Academy of Sciences, China, Jie Wang Institute of Software, Chinese Academy of Sciences, Jun Wei Institute of Software, Chinese Academy of Sciences, China, Tao Huang Institute of Software Chinese Academy of Sciences
Parallel Refinement for Multi-Threaded Program VerificationArtifacts AvailableArtifacts Evaluated ReusableTechnical Track
Technical Track
Liangze Yin National University of Defense Technology, Wei Dong , Wanwei Liu National University of Defense Technology, Ji Wang
SWORD: A Scalable Whole Program Race Detector for JavaDemos
Yanze Li , Bozhen Liu Texas A&M University, USA, Jeff Huang Texas A&M University
Discussion Period