|
Programming Systems Group
|
The Programming Systems Group in the Department of
Computer Science and 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.
Core Faculty
Affiliated Faculty
PhD Students
Recent alumni
News
 |
|
(07/17/12) Ross Tate
defended fearlessly today, and is heading to Cornell in the fall to start as Assistant Professor. Ross, it's time to start wearing shoes! |
|
(07/03/12) Pat Rondon
defended eloquently today, and is heading to Google New York. I'm sure you'll be looking back fondly on the days when you could wear those sunglasses year-round...
|
|
 |

|
|
(02/04/11) UCSD grad students and faculty on
three PLDI 2011 papers. Awesome job everybody!
|

|
|
(12/02/10) Our JavaScript work, published
at CCS 2010, is
getting a fair bit of press coverage:
Forbes,
The Wall Street Journal,
Associated Press,
The BBC,
The Register,
PC World,
The Telegraph,
Network World,
TechDirt,
Technology Review,
MediaPost,
The Huffington Post,
Slashdot,
Jamie
Zawinski’s blog,
Boing Boing,
and UCSD's own
press release.
|
|
(02/12/10) UCSD has four papers accepted to PLDI 2010. Congrats to all!
|
|
|

|
|
(10/05/09) The UCSD Programming Systems group has
two papers accepted to POPL 2010. Congrats to all!
|
|
(08/15/09) Macneil Shonle
has graduated and will start as an Assistant Professor at UT
San Antonio. Awesome job Macneil!
|
|
|

|
|
(08/01/09) Sudipta Kundu did a fantastic
job at defending his thesis. He is going to join Synopsis. Congrats Sudipta!
|

|
|
(01/27/09) The UCSD Programming Systems group has
three papers accepted to PLDI 2009. Congrats to all!
|
Recent Publications
Latent Variable
Models for Predicting File Dependencies in Large-Scale Software
Development ,
D. J. Hu,
L. J. P. van der
Maaten,
Y. Cho,
L. K. Saul, and
S. Lerner,
NIPS, 2010.
An Empirical Study of Privacy-Violating Information Flows in JavaScript Web Applications, Dongseok Jang, Ranjit Jhala, Sorin Lerner, and Hovav Shacham,
CCS, 2010.
Finding Latent Performance Bugs in Systems Implementations, Charles Killian, Karthik Nagaraj, Salman Pervez, Ryan Braud, James Anderson, and Ranjit Jhala,
FSE, 2010.
Software Data Spreading: Leveraging Distributed Caches in Multicore Systems to Improve Single Thread Performance, Md Kamruzzaman, Steve Swanson, and Dean Tullsen,
PLDI, 2010.
Inferable Object-Oriented Typed Assembly Language, Ross Tate, Juan Chen, and Chris Hawblitzel,
PLDI, 2010.
Bringing Extensibility to Verified Compilers, Zachary Tatlock and Sorin Lerner,
PLDI, 2010.
Type-preserving Compilation for End-to-end Verification of Security Enforcement, Juan Chen, Ravi Chugh, and Nikhil Swamy,
PLDI, 2010.
Dsolve: Safety Verification Using Liquid Types, Patrick Rondon, Ming Kawaguchi, and Ranjit Jhala,
CAV, 2010.
Enforcing Stateful Authorization and Information Flow Policies in Fine, Nikhil Swamy, Juan Chen, and Ravi Chugh,
ESOP, 2010.
Low-level Liquid Types, Patrick Rondon, Ming Kawaguchi, and Ranjit Jhala,
POPL, 2010.
Generating Compiler Optimizations from Proofs, Ross Tate, Michael Stepp, and Sorin Lerner,
POPL, 2010.
 |
Arccos
The goal of this project is to provide strong
guarantees about the High-Level Sythesis process (HLS). As a
starting point, we are exploring the idea of performing
translation validation for HLS, which consists of
showing, for each translation that the HLS tool performs,
that the output program produced by the tool has the same
behavior as the original program.
[read more...] |
 |
Arcum
Arcum is an extension to the refactoring paradigm that
provides for the modular maintenance of crosscutting design
idioms, supporting both substitutability of design idiom
implementations and the checking of essential constraints.
[read more...] |
|
Collider
The Collider project investigates techniques for automatically
generating efficient, scalable, correct, and precise dataflow analyzers
and optimizers from a very high-level specification.
[read more...] |
 |
Quail
The goal of the Quail project is to develop techniques for deep
typechecking and refactoring for systems that combine Java
code with a database back-end using the Java Persistence
API.
[read more...] |
|
Liquid Types
Liquid Types is a system that combines Hindley-Milner type
inference with Predicate Abstraction to automatically infer
dependent types precise enough to prove a variety of safety
properties.
[read more...] |
 |
Radar
The Radar project aims to automatically generate precise and scalable
concurrent analyses from their sequential counterparts, thereby
making concurrent analyses much easier to write, and allowing
compiler writers and analysis writers to easily adapt current
analyses to account for concurrency.
[read more...] |
 |
Javascript Security
The goal of this project is to use program analysis
techniques to improve the reliability and security of
Javascript code.
[read more...] |
Annual Courses
The following core courses are regularly offered each academic year.
Topics Courses
Several topics courses are also offered on a less regular basis.
|