"One day the software industry will reach the same level of automation as any traditional industry, such as the production of cars, chemicals, or even computer hardware," says Assistant Professor Walid Taha, the newest computer science faculty member.
Part of the challenge in getting there, Taha says, is the elusive nature of software as a raw material for building systems. He reports that there is a rising interest in automatic program generation as a means towards making software development more systematic.
For his doctoral dissertation, Taha defined and developed a paradigm for automatic program generation called multi-stage programming. This paradigm is supported by extensions of general-purpose languages. "Multi-stage languages are designed specifically to make developing program generators both easier and more reliable," Taha explains. "For example, they provide lightweight notation for writing generators; but more importantly, generators written in such languages are guaranteed to generate only type-safe programs. This kind of quality of assurance was unheard of in industry."
Multi-stage programming has been successful, says Taha, because it not only demonstrates that specialized programming languages features can be particularly useful, but also because it demonstrates to a wide base of potential users that semantics research can be highly-relevant to their work. He explains: "It is tools like type systems and formal definitions of languages that allow us to design languages amenable to such strong claims as the ones we have made for multi-stage languages."
Taha is channeling his enthusiasm for the formal semantics of programming languages into COMP 411: Advanced Programming Languages for the spring semester in 2003. "The math behind semantics is nothing like calculus, differentiation, integration, and so on, and more like number theory or abstract algebra. It is also more related to formal logic. For me, much of semantics is like playing intellectual Legos. It's really a lot of fun!"
"We are fortunate to have Walid join the department," Chair Keith Cooper said. "His interests overlap those of faculty in several areas. His work on multi-stage programming is a natural fit with Professor Kennedy's interest in telescoping languages. His interest in resource-aware programming attracted instant attention from Professors Rixner, Pai, and Wallach. And, of course, his base strength in theoretical foundations of programming languages places him in the middle of Rice's programming language theory and implementation groups."
Taha's more recent research efforts have focused on the area of embedded systems. In collaboration with professors Vijay Pai, Scott Rixner and Dan Wallach, he is organizing COMP 517: A Graduate Seminar in Resource Aware Programming (RAP) Languages. The course explores the design space for high-level languages that can support the more specialized task of resource-aware programming, such as real-time and embedded systems.
"RAP languages give the programmer control over the resources that he or she views as critical for developing a particular application," explains Prof. Taha. "The absence of such control is one of the main reasons that developers of embedded systems shy away from traditional high-level programming languages." In this course, Taha aims to demonstrate that advantages of using advanced semantic techniques for similar situations.
Taha finds his new surroundings to be a particularly good fit. "Everyone in the department is someone I would enjoy both going out to lunch and working on a research problem with. The breadth of the various departments in the Brown School of Engineering makes it an ideal place for both faculty and students who want to undertake projects that can have an impact on the real world."
"I'm also generally impressed by the quality and dedication of the students. I intentionally started class in the fall term with a quick pace and only one student has dropped. Ending up with 14 students on an advanced graduate course on multi-stage programming (COMP 511) was really much more than I had expected."
Taha, who joined Rice University in August 2002, received a Bachelor of Science degree from Kuwait University in 1992, and a doctoral degree from the Oregon Graduate Institute in 1999. He is currently the principal investigator on a project investigating programming languages that can support multi-stage programming for embedded systems.
In his spare time, Taha hikes Texas' scenic trails and enjoys the semi-tropical weather.
December 12, 2002