research overview
- I enjoy doing research in Software Engineering (SE) and Programming Languages (PL) in general, particularly in interactive program analysis and transformation.It is widely known that at least two-thirds of software costs are due to evolution, with some industrial surveys claiming 90%. For example, software evolves to add features, fix bugs, support new hardware (e.g., multi-cores), new versions of operating systems and libraries, and new user interfaces for new platforms (e.g., web or mobile devices). Although change is the heart of software development, programmers perform most software changes manually, through low-level text edits. This makes software development more expensive, time-consuming, and error-prone than it should be. My research enables programmers to interactively and safely change large programs via refactoring tools that preserve the existing behavior while improving other qualities (e.g., performance, readability, reliability, privacy and security).