RiSE CRX Compilers and Runtimes Working Group
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.

  • Parasail
    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.
  • TouchDevelop
    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
    This web page describes a collection of projects all loosely connected to F*, a new higher-order, effectful programming language (like ML) designed with program verification in mind. F* compiles to .NET bytecode in type-preserving style, and interoperates smoothly with other .NET languages, including F#, on which it is based. It also compiles securely to JavaScript, enabling safe interop with arbitrary, untrusted JavaScript libraries.
  • 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.
  • JSMeter: Measuring JavaScript Web Applications
    The 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 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.