Symposium on Software, Science and Society

Department of Computer Science and Engineering

Friday, December 5, 2003




DICK'S ACCOUNT of CSE's early history

DIRECTIONS to World Forestry Center, 4033 S.W. Canyon Road, Portland, Oregon, including MAX information. Event is in Cheatham Hall.



Friday, December 5, 2003
Cheatham Hall • World Forestry Center • Portland, Oregon

Yale University

Paul Hudak is Professor and Chair of the Department of Computer Science at Yale University, where he has been on the faculty since 1982. He received his BS from Vanderbilt University in 1973, his MS from MIT in 1974, and his PhD from the University of Utah in 1982.

His research interests center on programming language theory, design, and implementation. He was instrumental in helping to organize and chair the Haskell Committee, which in 1988 released the first version of Haskell, a pure non-strict functional programming language. His most recent interest is in the design of domain-specific languages for a variety of domains, including robotics, graphics and animation, music composition, and real-time systems. He is also interested in techniques for embedding such languages in Haskell.

Prof. Hudak has published over one hundred papers and is a recipient of an IBM Faculty Development Award and a NSF Presidential Young Investigator's Award.


Little Languages for Big Applications

In recent years there have been numerous efforts in building domain specific languages (DSLs) for many interesting, non-trivial applications. The hope is that with these "little languages" for "big applications" programmers will be able to develop robust applications more quickly and with higher degrees of reliability. Such programs are also more amenable to formal analysis and proofs of correctness.

After presenting the motivating factors behind such languages, I will discuss one popular approach to designing and implementing DSLs, namely to "embed" them in Haskell, a pure non-strict functional language whose syntactic and semantic features make such embeddings feasible. This technique facilitates experimentation in language design, and provides a common look-and-feel for a potentially "Babelesque" collection of languages.

To demonstrate these ideas, I will describe a particular programming paradigm that we have designed at Yale called "functional reactive programming," or FRP. This style of programming has proven to be a useful substrate for a family of DSLs, including: Fran (for graphics and animation), Frob (for robotics), Fvision (for computer vision), and Fruit (for graphical user interfaces). I will describe several of these languages in some detail.