Yale University.  
Computer Science.  
     
Computer Science
Main Page
Academics
Graduate Program
Undergraduate Program
Course Information
Course Web Pages
Research
Our Research
Research Areas
Technical Reports
People
Faculty
Graduate Students
Research and Technical Staff
Administrative Staff
Alumni
Degree Recipients
Resources
Calendars
Computing Facilities
CS Talks Mailing List
Yale Computer Science FAQ
Yale Workstation Support
Computing Lab
AfterCollege Job Resource
Graduate Writing Center
Department Information
Contact Us
History
Life in the Department
Life About Town
Directions
Job Openings
Faculty Positions
Useful Links
City of New Haven
Yale Applied Mathematics
Yale C2: Creative Consilience of
Computing and the Arts
Yale Faculty of Engineering
Yale GSAS Staff Directory
Yale University Home Page
Google Search
Yale Info Phonebook
Internal
Internal
 

Paul Hudak
Professor of Computer Science

B.S., Vanderbilt University, 1973
M.S., Massachusetts Institute of Technology, 1974
Ph.D., University of Utah, 1982
Joined Yale Faculty 1982

Personal Homepage

Office Location: AKW 308
Telelphone: 203.432.1235

Paul Hudak.

Why is computer hardware so much more reliable than computer software? One reason is that there is much less formality and rigor in software development. Prof. Hudak addresses this problem through the design, analysis, implementation, and application of modern, higher-order, typed programming languages such as Haskell. Programs can be written in such languages more quickly, succinctly, and with specification-like quality. The use of a static type system eliminates many common programming errors and guarantees run-time type safety. It is also easier to reason about such programs; proofs of correctness can be developed for non-trivial properties of complex programs.

Another reason for the unreliable nature of software is the ease with which we can change it! This "advantage" often destroys previously well-designed properties, and introduces bugs that are not immediately obvious. Thus, Prof. Hudak studies the use of advanced abstraction techniques that anticipate change in software structure. Higher-order techniques, whether for functions, types, or modules, are at the core of this technology. Continuations, monads and their transformers exploit abstract algebraic properties of programs. But the ultimate abstraction of an application is a domain specific language (DSL). Prof. Hudak has recently been involved in the design of DSLs for graphics, animation, robotics, computer vision, autonomous control, and computer music.

Most recently, Prof. Hudak and his colleagues have developed a DSL called Yampa, a refinement of previous work on FRP (Functional Reactive Programming), which has notions of both continuous values and discrete events. This novel language is ideal for programming hybrid systems such as found in robotics and other control applications. Many interesting theoretical and practical issues arise in its design and implementation. For example, how does one define a denotational or operational semantics for a language with continuous values? An implementation must approximate continuous values, but then in what sense is it faithful to the semantics? How does one express transformations in time and in space? And how can such languages be used to program real-time embedded systems, where guarantees on execution time and space are critical to proper performance?

Prof. Hudak was one of the principal organizers of the "Haskell Committee," an international group of computer scientists who designed Haskell. He is co-Editor-in-Chief for the Journal of Functional Programming, Editor for the Journal of Higher-Order and Symbolic Logic, and charter member of IFIP Working Group 2.8 on Functional Programming. He is a recipient of an NSF Presidential Young Investigator Award and an IBM Faculty Development Award, and in 2004 was elected as a Fellow of the ACM. Prof. Hudak was also Chairman of the Department of Computer Science at Yale from 1999 to 2005.

Representative Publications:

Bullet.

The Haskell School of Expression: Learning Functional Programming through Multimedia, Cambridge University Press, New York, 2000.

Bullet.

Robots, Arrows, and Functional Reactive Programming, with Antony Courtney, Henrik Nilsson, and John Peterson, in Summer School on Advanced Functional Programming, Springer Verlag, LNCS 2638, 2003.

Bullet.

Polymorphic Temporal Media, in Proceedings of 6th International Workshop on Practical Aspects of Declarative Languages, Springer Verlag LNCS, June 2004.

Bullet.

Describing and Interpreting Music in Haskell, in the Fun of Programming, Chapter 4, ed. by Jeremy Gibbons and Oege de Moor, Palgrave, 2003.

Bullet.

"A Language for Declarative Robotic Programming, with J. Peterson and G. Hager, International Conference on Robotics and Automation, 1999.

Top of Page.