|
UCSD Programming Systems
|
The Programming Systems Group in the
Department of Computer Science & Engineering
at the University of California, San Diego
is interested in developing new languages, compilers,
program analysis techniques and development environments
for making software systems easier to build, maintain and understand.
Faculty
- Jeanne Ferrante
- Optimizing Compilers, High Performance Computing
- Bill Griswold
- Evolution of Large Software Systems,
Aspect-oriented Software Development
- Ranjit Jhala
- Software Verification, Model Checking, Program Analysis, Automated Deduction
- Ingolf Krueger
- Design, Implementation, and
Verification of Distributed, Reactive Systems
- Sorin Lerner
- Compiler Correctness, Software Verification,
Program Analysis, Domain-specific Languages
Affiliated Faculty
- Brad Calder
- Computer Architecture, Compiler Optimizations, Virtual Machines
- Alin Deutsch
- Privacy in Database Publishing, Interactive Tools for Data Integration,
Specification and Verification of Database-powered
Web Applications
- Rajesh Gupta
- Embedded System Specification, Embedded System Modeling and Synthesis,
System-level Power Management
-
Yannis
Papakonstantinou
- Web & Databases, Data Integration
space
- Allan Snavely
- High-performance Computing
- Dean Tullsen
- Computer Architecture, Simultaneous (and other) Mulithreading
Processors, Compiling for Multithreaded Architectures and
Low-power Processor Architectures
- Amin Vahdat
- Distributed Systems, Computer Networks, Operating Systems,
Programming Tools for Implementing and Verifying
Distributed Systems
- Victor Vianu
- Database Systems and Theory, Querying Semi-structured Data,
Static Analysis for XML-based Mediators
Projects
- BLAST
- A verification tool for C programs based on Lazy (Predicate)
Abstraction
- Rhodium
- A framework for provably correct compiler optimizations
- Mace
- A toolkit and language for building distributed systems
- WAVE
- A system for specifying and verifying interactive
database-powered web applications
- Trident
- Event-driven compilation framework that allows compilation and
execution to take place concurrently on a hardware multithreaded
architecture.
- BugNet
- Software and hardware support for debugging
-
Aspect Browser
- A tool for visualizing, organizing, and
manipulating crosscutting concerns
-
SOSA-ADL
- A language for describing the architecture of service-based
applications
-
Service Semantics
- A precise mathematical foundation for formalizing the notion of
service
-
Entropia VM
- A virtual machine for enabling safe desktop grid computing
- LENS
- A program-data manipulation framework to increase the flow of
information between compilers and other tools
- PSI
- An assertion verifier for C programs based on Structural Invariants
- PolicyL
- A language and system for defining, manipulating, and checking
security policies
- Collider
- A next-generation compilation system, successor to the Rhodium
language and system
Courses Offered Regularly
- CSE 230
- graduate course on programming-language concepts,
offered annually
- CSE 231
- graduate course on program analysis and compilers,
offered annually
- CSE 290
- programming systems reading group offered every quarter
- CSE 130
- undergrad programming-languages course, offered 3
quarters each year
- CSE 131A
- undergraduate compilers course focusing on the front-end,
offered 2 quarters each year
- CSE 131B
- undergraduate compilers course focusing on
the back-end, offered 2 quarters each year
Special-topics Courses
- Spring 2006
- Software
Reliability Methods (Ingolf Krueger, Ranjit Jhala, Sorin Lerner)
- Winter 2006
-
Applied Automated Theorem Proving (Sorin Lerner)
- Spring 2005
-
Software Reliability Methods (Ingolf Krueger)
- Winter 2005
- Static
Analysis of Systems Code (Ranjit Jhala)
Join us
We are looking for new group members! If you are interested in the
the research that we are working on, and would like to join our
group, please let us know.
- UCSD CSE Undergrads: If you are interested in doing a project
for CSE 199 credits, come talk to us.
- UCSD CSE Grads: We have many projects that you can work
on. Come talk to us.
- Prospective Graduate Students: If you're considering graduate
school, and are interested in programming systems, we encourage
you to apply to the UCSD graduate program. Feel free to contact
us with any questions about our research group or UCSD.