Cyrus Omar earns NSF CAREER to design live program sketching environments
Cyrus Omar, assistant professor of computer science at the University of Michigan, has received a National Science Foundation (NSF) CAREER Award to develop programming environments that help programmers understand and interactively refine program sketches. His project is titled “Live and Direct Programming Environments.”
“Programming environments typically require that you eliminate every compiler error in a program before you receive substantial feedback on any aspect of its behavior,” Omar explains. “This deferred feedback makes programming difficult for novices and experts alike because live feedback is essential to learning and creativity.”
The goal of Omar’s CAREER research is to develop programming environments that are able to understand program sketches, i.e. programs with syntactic holes and localized errors, which requires both advancing the foundational theory of programming languages and designing human-centered tools. Omar will initially focus on educational applications, evaluating these tools with students in U-M computer science courses.
Omar’s Future of Programming Lab has begun work on this vision in the form of Hazel, a live functional programming environment that is able to typecheck and run arbitrary program sketches. With Hazel, Omar and his students want to deliver on a simple promise – “there are no meaningless editor states.” It accomplishes this with a technique called structure editing. In contrast to a standard text editor, structure editors maintain a meaningful program sketch at all times.
“Our editor will help users manipulate program sketches more directly, like lego blocks,” Omar says, “all while still using their keyboard in a familiar way, or in other direct, domain-specialized ways, like by working with colors, tables, and images. And just as in creative applications like Adobe Illustrator, feedback will be available at all times, even when the program remains sketchy in some parts.”
“I think of the things that we’re doing today as laying the foundations for a programming experience that engages human creativity more directly. This will ultimately help bring the power of programming to people from diverse backgrounds working in a variety of domains, both traditional and unconventional.” Omar says.