In my research, I seek to develop ways to make programming tasks easier and programmers more productive. I’m particularly interested in the user interface of programming tools, such as visualization techniques for defect detection tools, or new interaction techniques for common programming tasks such as debugging.
Current Research Works
Path Projection
Path Projection combines two techniques—function call inlining and path-derived code folding—to “project” the source code onto the error path. Code relevant to a path is placed close together, and makes it possible for programmers to follow a path by reading from top-to-bottom.
[ Website ] [ PASTE 2008 Paper ] [ Tech Report ]
Arrowlets
Arrowlets is a JavaScript library based on arrows that makes it easy to write event-driven programs. Using Arrowlets, asynchronous event listeners, synchronous event handlers or any standard JavaScript function can be written as modular units of code and flexibly composed in many different ways. Furthermore, Arrowlets eliminates the messiness of manual callback plumbing, making it easy for programmers to understand the control-flow of event-driven programs.
[ Website ] [ ICFP 2008 Poster Summary ] [ Tech Report ]
