The WASP Group in the Department of Computer Science & Engineering
at the University of Washington conducts groundbreaking research in the design,
implementation, and theory of programming languages, compilers, programming tools, and programming environments.
We encourage you to contact group members for more information.
- Faculty
- Graduate Students
Publications (a hopefully-complete list in reverse chronological order)
This list tends to lag reality a bit, but we're excited about our
work on the following (many of which have downloads available):
- Atomic
- Language design, implementation, and semantics for transactions
in modern programming languages
- Clamp
- Module systems for systems code to encapsulate architectural assumptions
- Seminal
- An approach to searching for good compiler error-messages in advanced languages
- TE-ML
- Transactional events for a mostly-functional language
This list includes important projects pursued by us that serve as the intellectual background and foundation for our current projects:
- AliasJava
- An extension to Java with an ownership type system for controlling aliasing
- ArchJava
- An extension to Java allowing the high-level architecture of an application to be expressed directly in the code,
and checked automatically by the typechecker
- Cecil
- A purely OO language incorporating multiple dispatching, a classless object model, predicate objects,
and a flexible static type system
- Cobalt
- A framework for provably correct compiler optimizations
- Cyclone
- A safe C-level programming language with user-controlled checking and performance
- Diamond, F(EML)
- An extension to EML supporting flexible parameterized modules
- Diesel
- A next-generation object-oriented language combining modularity
with extensibility
- DyC and
Calpa
- Dynamic compilation for C
- EML
- An extension to ML that generalizes ML's datatype and function constructs to support OO-style extensibility
while retaining modular typechecking and compilation
- HydroJ
- A language for distributed messaging using semistructured data
- MultiJava and
RMJ
- Java extensions supporting multiple dispatching and open classes while retaining
modular typechecking and compilation
- Rhodium
- A framework for provably correct compiler optimizations
- SCF
- Automatically constructing staged compilers
- Vortex
- A multilingual optimizing compiler for OO languages
- Whirlwind
- A multilingual optimizing compiler supporting OO languages, staged compilation, and provably correct optimizations
Regular Activities and Courses
- CSE590P
- a graduate seminar / reading-group on programming languages, has a different theme each quarter
- CSE591PG
- the WASP Group meeting, an informal venue for work-in-progress, currently meets Mondays at 4:00PM in CSE503.
- CSE505
- a graduate "quals" course on programming-language concepts, offered annually
- CSE501
- a graduate "quals" course on program analysis and compilers, offered most years
- CSE401
- an undergraduate compilers course, offered 2-3 quarters each year
- CSE341
- an undergraduate programming-languages course, offered 3 quarters each year
- CSE303
- an undergraduate software development and tools course, offered 3 quarters each year
We also have advanced special-topics courses on a less regular schedule. Here are the most recent examples:
We are seeking new
group members, both to improve and to complement our current
initiatives. If you're excited about research that leads to better
(more reliable, more extensible, more secure, more flexible, more efficient)
software, the WASP Group might be a good match. (A partial list
of some potential project ideas may be found here,
for people at UW.)
- UW CSE Undergrads: we may have "490" projects that
meet your interests. Come talk to us.
- UW CSE Grads: Plenty of "quals" projects are
available. Come talk to us. Also, we encourage anyone interested to
attend 590P and/or the WASP Group meeting.
- Prospective Graduate Students: If you're not currently at UW
but you're thinking about graduate school and programming languages,
we encourage you to apply. Feel free to contact us with any questions about our research group or UW.
However, please understand that department admissions are handled centrally by the department, and
we cannot make any offers or guarantees regarding admission.
Information on the department's Ph.D. program and applying to it is
available here.
Collaborators
We are fortunate to enjoy strong connections with other research groups in the department, including
Software Engineering,
Computer Architecture,
Networking
and Operating Systems,
Databases, and
ZPL (a high-performance parallel programming language).
UW graduate students are encouraged to explore research areas that interest them; having "close research neighbors"
creates many opportunities.
We are proud and honored to have many great and successful former group members. Here is a list of our Ph.D. graduates: