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.

People Publications Projects Courses

Core Faculty

Affiliated Faculty

PhD Students

Recent alumni

Recent Publications

Deep Typechecking and Refactoring,
Zachary Tatlock, Chris Tucker, David Shuffelton, Ranjit Jhala, and Sorin Lerner, OOPSLA, 2008.

Liquid Types, Patrick Rondon, Ming Kawaguchi, and Ranjit Jhala, Proceedings of Programming Languages Design and Implementation (PLDI), June 2008.

Dataflow Analysis For Concurrent Programs using Datarace Detection, Ravi Chugh, Jan Voung, Ranjit Jhala, and Sorin Lerner, Proceedings of Programming Languages Design and Implementation (PLDI), June 2008.

Validating High Level Synthesis, Sudipta Kundu, Sorin Lerner, and Rajesh Gupta, In CAV. , editor. Springer, 2008.

[Publication Archive]

Projects

Arccos

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
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

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

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

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

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...]

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.