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.
Parasail is a novel approach to parallelizing a large class of seemingly sequential applications wherein dependencies are, at runtime, treated as symbolic values. The efficiency of parallelization, then, depends on the efficiency of the symbolic computation, an active area of research in static analysis, verification, and partial evaluation. This is exciting as advances in these fields can translate to novel parallel algorithms for sequential computation.
Create apps everywhere on all your devices! For Windows Phone and the web. In the TouchDevelop programming environment you write scripts by tapping on the screen. You do not need a separate PC or keyboard. Scripts can perform various tasks similar to regular apps. Any TouchDevelop user can install, run, edit, publish scripts. You can share scripts with other people by publishing them to the TouchDevelop script bazaar, or by submitting them as an app to the Windows Store or Windows Phone Store.
- The F* Project
- Yarra: An Extension to C for Data Integrity and Partial Safety
Even 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 Infrastructure
The 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 CIL
SPUR is a research prototype of a tracing just-in-time compiler (TJIT) for CIL.
- Cuzz - Concurrency Fuzzing
Cuzz 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.
- Adrian Sampson, Pavel Panchekha, Todd Mytkowicz, Kathryn S. McKinley, Dan Grossman, and Luis Ceze, Expressing and Verifying Probabilistic Assertions, Programming Language Design and Implementation (PLDI), June 2014.
- Todd Mytkowicz, Madanlal Musuvathi, and Wolfram Schulte, Data-Parallel Finite-State Machines, Architectural Support for Programming Languages and Operating Systems (ASPLOS), March 2014.
- James Bornholt, Todd Mytkowicz, and Kathryn S. McKinley, Uncertain<T>: A First-Order Type for Uncertain Data, Architectural Support for Programming Languages and Operating Systems (ASPLOS), March 2014.
- Saeed Maleki, Madanlal Musuvathi, and Todd Mytkowicz, Parallelizing Dynamic Programming Through Rank Convergence, ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), February 2014.
- Sebastian Burckhardt, Alexey Gotsman, Hongseok Yang, and Marek Zawirski, Replicated Data Types: Specification, Verification, Optimality, in 41st Symposium on Principles of Programming Languages (POPL), ACM SIGPLAN, 22 January 2014.
- Sebastian Burckhardt, Manuel Fahndrich, Peli de Halleux, Jun Kato, Sean McDirmid, Michal Moskal, and Nikolai Tillmann, It's Alive! Continuous Feedback in UI Programming, in PLDI, ACM SIGPLAN, June 2013.
- Bin Ren, Gagan Agrawal, James R. Larus, Todd Mytkowicz, Tomi Poutanen, and Wolfram Schulte, SIMD parallelization of applications that traverse irregular data structures, in Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), vol. 0, pp. 1-10, IEEE Computer Society, Los Alamitos, CA, USA, 2013.
- Benjamin Livshits, Dynamic Taint Tracking in Managed Runtimes, no. MSR-TR-2012-114, 19 November 2012.
- Todd Mytkowicz and Wolfram Schulte, Waiting for Godot: The Right Language Abstractions for Parallel Programming Should be Here Soon, no. MSR-TR-2012-63, July 2012.
- 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.