Our MVP is taking shape: codeyourkale.io
Principal Investigator for NSF SBIR Phase I award: Programmer-Friendly Automatic Code Fixes.
- I gave an interview to The News Gazette about my work and our upcoming startup.
I am participating, as an Entrepreneurial Lead, in the NSF I-Corps market discovery program. We are identifying problems faced by software developers which could be solved by our research.
“Are web applications ready for parallelism?”, joint with Stephan Herhut, Jaswanth Sreeram, and Danny Dig, will appear at HICSS-50.
I will receive an IBM Ph.D. Fellowship for the 2016-2017 academic year.
My M.S. thesis received the David J. Kuck Outstanding M.S. Thesis Award.
I received the Feng Chen Memorial Award in Software Engineering.
I did a summer internship at Samsung Research America, where I worked with Manu Sridharan, Satish Chandra, and Colin Gordon on program transformation inference.
“CARAMEL: Detecting and Fixing Performance That Have Non-Intrusive Fixes”, joint with Adrian Nistor, Po-Chun Chang, and Shan Lu, appeared at ICSE ‘15, and won the ACM SIGSOFT Distinguished Paper Award. See [P6].
I am a Ph.D. Student in Computer Science at University of Illinois at Urbana-Champaign, working with Prof. Grigore Rosu on program transformation using rewriting. See my CV.
My long-term research goal is to improve automatic code evolution. We transform our code to make it faster, more scalable, and easier to read. But we do these transformations mostly manually, using tools that still understand little about our intents. This is tedious and error-prone. But automating anything beyond trivial (e.g., rename) transformations is hard because the computer needs to understand the high-level semantics of the current code and of the end goal, and have a sound and efficient way of transforming the code towards satisfying the goal.
My approach to automating code evolution is based on:
- expressing transformations formally as term rewrite rules, allowing verification
- automatically learning new transformations from existing code
- exploring the space of possible transformations using evolutionary algorithms
I worked with Danny Dig on creating IteRace [P7, P2], a static race detection analysis for parallel loops. Earlier, we also worked on developing a refactoring [P1, T1] capable of automating the transformation. The master thesis presenting this work has received the David J. Kuck Outstanding M.S. Thesis Award.
I received BSc from the Polytechnic University of Timisoara in 2010 with a thesis presenting a data-flow analysis for finding races. My advisor was Marius Minea.
Kale, our first step toward allowing developers to talk with automatic program transformation tools.
Core developer. K is a rewriting-based framework for specifying executable semantics, defining type systems, and doing verification and program transformation.
A static race detector for Java parallel loops that reports a low number of warnings to the programmer, while not sacrificing safety. Static race detectors typically report an unmanageable number of warnings. IteRace attenuates this problem by increasing precision through specialization to Java constructs and libraries.