RiSE CRX Compilers and Runtimes Working Group
The Compiler and Runtime (CRx) working group addresses problems related to performance, energy efficiency, scalability, security, and privacy via fundamental advances to compiler and runtime technology. We tackle scenarios ranging from mobile devices to datacenters, leveraging our research expertise in language translation, optimization, virtual machines, garbage collection, static analysis and runtime monitoring.
Projects
- TouchDevelopScript your phone! Write code for your phone, on your phone! TouchDevelop is a radically new software development environment on the Windows Phone, bringing the excitement of the first programmable personal computers to the phone.
- F*: A Verifying ML Compiler for Distributed ProgrammingF* is a new dependently typed language for secure distributed programming. It's designed to be enable the construction and communication of proofs of program properties and of properties of a program's environment in a verifiably secure way. F* compiles to .NET bytecode in type-preserving style, and interoperates smoothly with other .NET languages, including F#, on which it is based.
- Yarra: An Extension to C for Data Integrity and Partial SafetyEven with protections like array-bounds checking in place, C programs remain vulnerable to errors in untrusted third-party libraries. Yarra is a new extension to C that uses a combination of static and dynamic techniques to protect the integrity of critical data structures in a C program from corruption by buggy libraries. We have used Yarra to harden applications ranging from SSH, FTP, and HTTP servers to memory allocators like BGET from non-control data attacks in third party code.
- Common Compiler InfrastructureThe Common Compiler Infrastructure (CCI) is a set of libraries and an application programming interfaces (API) that supports some of the functionality that is common to compilers and related programming tools.
- SPUR: A Trace-Based JIT Compiler for CILSPUR is a research prototype of a tracing just-in-time compiler (TJIT) for CIL.
- JSMeter: Measuring JavaScript Web ApplicationsThe goal of JSMeter is to measure the runtime behavior of JavaScript programs. Our ultimate goal is to improve the quality of JavaScript engine implementations.
- Cuzz - Concurrency FuzzingCuzz is a very effective tool for finding concurrency bugs. Cuzz works on unmodified executables and is designed for maximizing concurrency coverage for your existing (unmodified) tests. It randomizes the thread schedules in a systematic and disciplined way, using an algorithm that provides probabilistic coverage guarantees.
- RobustHeap: using the heap to improve reliability and securityRobustHeap and DH (formerly DieHard) are memory allocators that include a number of features to provide tolerance or detection of memory errors related to out-of-bounds writes and use of dangling pointers.
Publications
- Sebastian Burckhardt, Manuel Fahndrich, Daan Leijen, and Benjamin P. Wood, Cloud Types for Eventual Consistency, in Proceedings of the 26th European Conference on Object-Oriented Programming (ECOOP), Springer, 15 June 2012
- Manuel Fahndrich, Michael Barnett, Daan Leijen, and Francesco Logozzo, Integrating a Set of Contract Checking Tools into Visual Studio, in Proceedings of the 2012 Second International Workshop on Developing Tools as Plug-ins (TOPI 2012), IEEE, 3 June 2012
- Ting Coa, Tiejin Gao, Stephen M. Blackburn, and Kathryn S. McKinely, The Yin and Yang of Power and Performance for Asymmetric Hardware and Managed Software, in ACM/IEEE International Symposium on Computer Architecture, June 2012
- Sebastian Burckhardt, Manuel Fahndrich, Daan Leijen, and Mooly Sagiv, Eventually Consistent Transactions, in Proceedings of the 22n European Symposium on Programming (ESOP), Springer, 24 March 2012
- Sebastian Burckhardt, Manuel Fahndrich, Daan Leijen, and Mooly Sagiv, Eventually Consistent Transactions (full version), no. MSR-TR-2011-117, October 2011
- Benjamin S. Lerner, Brian Burg, Wolfram Schulte, and H Venter, C3: An Experimental, Extensible, Reconfigurable Platform for HTML-based Applications, in 2nd USENIX Conference on Web Application Development, USENIX, 15 June 2011
- Mike Barnett, Manuel Fahndrich, K. Rustan M. Leino, Peter Mueller, Wolfram Schulte, and Herman Venter, Specification and Verification: The Spec# Experience, in Communications of the ACM, vol. 54, no. 6, pp. 81--91, Association for Computing Machinery, Inc., June 2011
- Benjamin S. Lerner, Herman Venter, and Dan Grossman, Supporting Dynamic, Third-Party Code Customizations in JavaScript Using Aspects, in OOPSLA 2010, Association for Computing Machinery, Inc., 17 October 2010
- Mike Barnett and K. Rustan M. Leino, To Goto Where No Statement Has Gone Before, in VSTTE 2010, August 2010
- Nikolai Tillmann, Michal Moskal, Wolfram Schulte, Herman Venter, and Manuel Fahndrich, The Unthinkable: Automated Theorem Provers for (Tracing) Just-in-time Compilers, 24 May 2010



