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
-
- Post-Doctoral Researchers
Publications (a hopefully-complete list in reverse chronological order)
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.
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:
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.
- 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.
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.