Harmonia Research Projects
Society is increasingly dependent on the robustness, reliability, and evolvability of software systems. Better support for software development and maintenance is essential to the health of our economy and our society. Despite an impressive body of research on software development environments and software tools, most working programmers use software manipulation tools reminiscent of those available decades earlier. Our belief, based on considerable research, is that well-designed language-aware interactive tools that go beyond syntax can increase the productivity of proficient programmers. Other uses of the same underlying language technology can improve the education and training of future software developers.We are currently pursuing two research projects that utilize our incremental program analysis technology to support high-level interactive transformations and programming by voice. Our research in interactive program transformations focuses on the problem of programmers' expression and interaction with a programming tool. We are combining the results from psychology of programming, user-interface design, software visualization, program analysis, and program transformation to create a novel programming environment that enables the programmer to express source code manipulations in a high-level conceptual manner. Programming by voice research augments traditional text editing by allowing the developer dictate chunks of program source code as well as verbalize high-level editing operations. This research helps to lower frustrating barriers for software developers that suffer from repetitive strain injuries and other related disabilities that make typing difficult or impossible.