The Programming Language and Analysis group is performing research in new programming language features, compilation, optimization, static analysis, type systems, and static verification.
Recent Interns
Diego Garbervetsky |
Mike Carbin |
Pietro Ferrara |
Dana Xu |
Wouter Swierstra |
Edsko deVries |
Frances Perry |
Projects
|
Code Contracts provide a language-agnostic way to express coding assumptions in .NET programs. The contracts take the form of pre-conditions, post-conditions, and object invariants. Contracts act as checked documentation of your external and internal APIs. The contracts are used to improve testing via runtime checking (via code rewriting), enable static contract verification (e.g. via abstract interpretation), and documentation generation. |
|
|
Task Parallel Library, strutured concurrency
The Task Parallel Library is designed to make it much easier to write managed code that can automatically use multiple processors. Using the library, you can conveniently express potential parallelism in existing sequential code, where the exposed parallel tasks will be run concurrently on all available processors. The TPL can be seen as a domain specific embedded language for expressing concurrency through the use of first-class anonymous functions (delegates) and parametric polymorphism (generics). Currently, the TPL library is part of the Parallel extensions to .NET that ships as part of .NET 4.0. |
|
|
We study techniques to guarantee safety properties of native code through typed intermediate languages and Typed Assembly Languages (TAL). TAL requires that the compiler generate native code with type annotations and a verifier check the annotated native code. This way, we do not have to trust the compiler. We focus on large-scale optimizing object-oriented compilers. |
|
|
Type inference systems for functional languages are usually based on Hindley-Milner. Unfortunately, polymorphism in Hindley-Milner is restricted to let-bound values only which restricts expressiveness. An long standing research challenge is to do type inference for full System-F where polymorphism is first-class and where polymorphic values can be passed as arguments or be part of data structures. Since type inference for System-F is undecidable in general, the question is how to use the minimal amount of type annotations to make type inference decidable. We designed two systems HMF and HML that both reside at interesting corners of the design space. |
|
|
Singularity, operating system prototype
Singularity is a research project focused on the construction of dependable systems through innovation in the areas of systems, languages, and tools. We are building a research operating system prototype (called Singularity), extending programming languages, and developing new techniques and tools for specifying and verifying program behavior. |
|
- Mike Barnett, Manuel Fahndrich, and Francesco Logozzo, Embedded Contract Languages, in ACM SAC - OOPS, Association for Computing Machinery, Inc., March 2010
- Vincent Laviron and Francesco Logozzo, Refining Abstract Interpretation-based Static Analyses with Hints, in Seventh Asian Symposium on Programming Languages and Systems (APLAS 2009), Springer Verlag, December 2009
- Songtao Xia, Manuel Fahndrich, and Francesco Logozzo, Infer Dataflow Properties of User Defined Table Processors, in Proceeding of the 16th International Static Analysis Symposium (SAS'09), Springer Verlag, August 2009
- Juan Chen, A Typed Intermediate Language for Supporting Interfaces, in 11th Workshop on Formal Techniques for Java-like Programs (FTfJP 2009), Association for Computing Machinery, Inc., July 2009
- Michael Barnett, Manuel Fahndrich, Francesco Logozzo, Peli de Halleux, and Nikolai Tillmann, Exploiting the Synergy between Automated-Test-Generation and Programming-by-Contract, in Proc. 31st International Conference on Software Engineering (ICSE'2009) , IEEE, May 2009
- Francesco Logozzo and Vincent Laviron, SubPolyhedra: A (more) scalable approach to infer linear inequalities, in Proceedings of the 10th International Conference on Verification, Model Checking and Abstract Interpretation (VMCAI'09), Springer Verlag, January 2009
- Part of RiSE
- Publications















