Home Biography Research Publications

Mohsen Vakilian's Research

Mohsen's research interests are in software engineering, human-computer interaction, and parallel computing. His adviser is Ralph Johnson. Mohsen was a member of the Universal Parallel Computing Research Center (UPCRC), and worked in the Deterministic Parallel Java (DPJ) group on refactoring tools for parallelism. He is now working on ways to promote the use of refactoring tools.

Mohsen has been recently involved in the following projects:

Refactoring Tools for Deterministic Parallel Java (DPJ)

Mohsen and his collaborators, Danny Dig, Robert Bocchino, Jeffrey Overbey, Vikram Adve, and Ralph Johnson have published a paper at ASE 2009. This paper introduces a novel interactive program transformation tool that helps programmers write correct parallel programs in an object-oriented programming language. This tool targets object-oriented languages that are extended by an effect system. Effect systems provide safety guarantees for parallel programs. However, they require the programmer to write some annotations. The tool improves the productivity of programmers by inferring some of the annotations. Currently, Mohsen and his collaborators at UPCRC are extending this program transformation tool to infer more of the type annotations required by effect systems.

Parallelizing Refactoring Tools for X10

X10 is a parallel object-oriented programming language from IBM Research. In summer 2010, I did an internship in the X10DT group at the Watson Research Center working with Bob Fuhrer and Evelyn Duesterwald. During my internship, I worked on parallelizing refactorings for X10.

Analyzing the Usage of Eclipse

Nicholas Chen, Roshanak Zilouchian, Stas Negara, Balaji Ambresh Rajkumar, Ralph Johnson, and I have been working on CodingSpectator. CodingSpectator is an unobtrusive Eclipse plug-in that collects some of the interactions of programmers with Eclipse.

Keshmesh

Stas Negara, Samira Tasharofi, Ralph Johnson, and I have been working on Keshmesh. Keshmesh is a static analysis tool for finding and fixing Java concurrency bug patterns.