wasp mascot

WASP

Washington Advanced Systems for Programming

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.

Current Members

Publications (a hopefully-complete list in reverse chronological order)

Current Projects and Collaborators

This list tends to lag reality, but we're excited about our work on the following:

Atomic
Language design, implementation, and semantics for transactions in modern programming languages
MemModel
Dealing with relaxed memory-consistency models for high-level programming languages and modern software development
Object Ownership
Improved encapsulation for object-oriented languages
Webby
Better support for robust and secure client-side web applications (JavaScript), in collaboration with the RiSE group at Microsoft Research
Lock Capabilities
Flexible type system for preventing deadlock in multi-threaded code

Many of our current projects and members span multiple research groups. The boundaries are entirely fuzzy by design. For consistency, we host each current project on only one web page, so in addition to the projects above, be sure to check out:

Software Engineering
(see also here)
Sampa
All the current Sampa projects relate to software quality and include WASP members in the collaboration
Nuage
Primarily a databases project where we collaborate on the Parallax tools

UW graduate students are encouraged to explore research areas that interest them; having "close research neighbors" creates many opportunities.

Past Major Projects

This list includes important projects pursued by us that serve as the intellectual background and foundation for our current projects:

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
Clamp
Module systems for systems code to encapsulate architectural assumptions
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 and Cobalt
A framework for provably correct compiler optimizations
SCF
Automatically constructing staged compilers
Seminal
An approach to searching for good compiler error-messages in advanced languages
TE-ML
Transactional events for a mostly-functional language
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

Group meeting
The WASP Group meeting, an informal venue for work-in-progress, meets weekly throughout the academic year. The time and place varies each quarter to avoid other conflicts. Contact us for the current information; we would be happy to have you attend.
CSE590P
A graduate seminar / reading-group on programming languages, has a different theme each quarter
CSE505
A graduate "quals" course on programming-language concepts, offered annually
CSE501
A graduate "quals" course on program analysis and compilers, offered roughly every other year
CSE401
An undergraduate compilers course, offered 2-3 quarters each year
CSE341
An undergraduate programming-languages course, offered 3 quarters each year

We also have advanced special-topics courses on a less regular schedule. Here are the offerings from the last several years:

Joining Us

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.

Alumni

We are proud and honored to have many great and successful former group members. Here is a list of our Ph.D. graduates:

We are also proud of Craig Chambers, who advised almost all of the students above. Craig remains in contact with the group while working full-time at Google in Seattle.

Additional Information for Group Members