PLSE at UWbusiness
PLSE at UW is the Programming Languages and Software Engineering Lab at the University of Washington. We are a group of researchers who are software developers at heart, and our aim is to make programming better. We are interested in anything that will help programmers to be more effective. We design, build, implement, and evaluate: new programming languages; new type systems; tools for controlling concurrency; automated testing environments; IDEs; program analysis tools; security mechanisms; and much more.
We release as much code as possible under a permissive open-source license. This gives our work greater practical impact. It also supports the scientific method, which requires reproducibility and independent verification of results, and in which building on others' work should be easy to do.
We have had significant impact on both industry and academia. Here are two recent examples that are related to our proposed projects. (We have a lot of other projects going on. We tnink these are particularly good fits for GSoC.)
- Our design for type annotations has been accepted as part of Java 7, which will allow millions of programmers to prevent more errors in their code with pluggable type checking.
- Our testing techniques have been commercialized by multiple companies, and have found hundreds of bugs in well-tested software like the JDK and the .NET framework.
- Eclipse Integration for Checker Framework Overview My goal is to make pluggable type systems an ease to use for any Java developer. In order to do this, I propose to integrate the Checker framework into Eclipse so that it can automatically run type checks, detect problems in usage of types, and suggest corrections while possibly also inferring types.
- Ecloop - Eclipse Plugin for Randoop The goal of this project is to create a useful, extensible, and stable Eclipse plugin for Randoop that increases the usability of the tool and seamlessly integrates into the Eclipse environment. The plugin, titled Ecloop, will add a new layer of functionality that allows the user to easily define and manage Randoop’s input and output. By the end of this project, Ecloop will be integrated with JUnit and EclEmma to provide detailed information on the tests’ results.
- Type Inferencers in the Checker Framework for the Java Language The goal of this project is to update existing inference systems and to create new inferencers for type systems for the Java programming language. The focus is on immutability inferencing. This entails updating the Javarifier tool and creating an inference system for the IGJ immutability checker.