| CURRENT PROJECTS |
| RTC
|
|
The Ruby Type Checker |
| Redexer
|
|
Binary rewriting for Android security |
| Otter
|
|
Symbolic execution for C programs |
| COCO
|
|
Type coercions for program rewriting |
| FindBugs
|
|
A program that finds bugs in Java programs |
| Marmoset
|
|
Mining software repositories to help students learn to program |
| Expositor
|
|
Scriptable time-travel debugging |
| SCORE
|
|
Agile Research Group Management (how we run PLUM) |
| |
| EVENTS |
| MAPLS 2013 |
|
Mid-Atlantic Programming Languages Seminar, colocated with NJPLS, April 2013 |
| POPL 2010 PC Workshop |
|
POPL 2010 Program Committee Workshop, October 2010 |
| MAPLS 2007 |
|
Mid-Atlantic Programming Languages Seminar, colocated with NJPLS, November 2007 |
| MAPLS 2005 |
|
Mid-Atlantic Programming Languages Seminar, colocated with NJPLS, November 2005 |
| |
| COURSES |
| CMSC 631 |
|
Program Analysis and Understanding
(Spring 2013,
Fall 2011,
Fall 2010,
Fall 2009,
Spring 2009,
Fall 2007,
Fall 2006,
Spring 2006,
Fall 2004,
Fall 2003)
|
| CMSC 838G |
|
Software Security (Spring 2011) |
CMSC 838F |
|
Language-Based Techniques for Concurrent and Distributed Software (Spring 2007) |
| CMSC 838F |
|
Language-Based Security (Spring 2008) |
CMSC 838F |
|
Language-Based Techniques for Concurrent and Distributed Software (Spring 2007) |
| CMSC 838Z |
|
Language-Based Security (Spring 2005) |
| CMSC 838Z |
|
Tools and Techniques for Software Dependability (Spring 2004) |
| CMSC 838P |
|
Enterprise Applications (Fall 2003) |
| CMSC 838Y |
|
Agile and Adaptive Programming Systems (Spring 2003) |
| |
| PAST PROJECTS |
| Path Projection
|
|
Visualizing program paths for user-centered static analysis |
| DRuby
|
|
A tool that blends static and dynamic analysis for Ruby |
| Ginseng
|
|
Safe on-line software updating for C programs |
| Arrowlets
|
|
Directing JavaScript with arrows |
| BEEP
|
|
Browser-enforced Embedded Policies to defeat script injection attacks |
| CMod
|
|
A tool for enforcing modular programming in C |
| SAUS
|
|
User studies exploring Industrial Experiences Using Static Analysis Tools |
| VS3
|
|
Verification and Synthesis using SMT Solvers |
| CQual
|
|
A framework for adding type qualifiers to C |
| Cyclone
|
|
A type safe dialect of C that features advanced manual memory management |
| FindLocks
|
|
A combination of static and dynamic techniques for inferring lock types in Java programs |
| Java Memory Model
|
|
Defining the interaction through memory of Java threads |
| JQual
|
|
Type qualifier inference for Java programs |
| Locksmith
|
|
Static analysis for race detection in C programs |
| MultithreadedTC
|
|
A framework for testing concurrent Java applications |
| Omega Project
|
|
Analysis and transformations of scientific programs |
| Pistachio
|
|
A rule-based static analysis tool for network protocol implementations |
| Proxyc
|
|
A tool for programming with proxies in Java |
| RX
|
|
Languages that support dynamically updating security policies. |
| Saffire
|
|
Static Analysis of Foreign Function InteRfacEs |
| SELinks
|
|
End-to-end security for web applications |
| Uno
|
|
Inferring aliasing and encapsulation for Java |