|
Main
Page
Graduate
Program
Undergraduate
Program
Course Information
Course
Web Pages
Our
Research
Research
Areas
Technical
Reports
Faculty
Graduate
Students
Research
and Technical Staff
Administrative
Staff
Alumni
Degree
Recipients
Calendars
Computing
Facilities
CS
Talks Mailing List
Yale
Computer Science FAQ
Yale Workstation Support
Computing
Lab
AfterCollege
Job Resource
Graduate
Writing Center
Contact
Us
History
Life in the Department
Life About Town
Directions
Faculty
Positions
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 |
|
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
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: |
 |
The Haskell School of
Expression: Learning Functional Programming through Multimedia,
Cambridge University Press, New York, 2000. |
 |
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. |
 |
Polymorphic Temporal Media,
in Proceedings of 6th International Workshop on Practical Aspects
of Declarative Languages, Springer Verlag LNCS, June 2004. |
 |
Describing and Interpreting
Music in Haskell, in the Fun of Programming, Chapter 4, ed. by Jeremy
Gibbons and Oege de Moor, Palgrave, 2003. |

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

|
 |