RiSE CRX Compilers and Runtimes Working Group

Established: September 13, 2011

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.

People

Publications

Videos

Projects

JavaScript Time-Travel Debugger

Established: January 8, 2016

This project is focused on creating a low-overhead Time-Traveling Debugger in the Chakra JavaScript engine. This debugger supports reverse variations of the step forward operations in a debugger to enable a developer to easily reverse program execution time to see…

Uncertainty

Established: January 5, 2016

Uncertainty is a C# library that uses LINQ to let developers easily express probabilistic computations and then inference over those computations. See our recorded Research In Focus talk from the Microsoft Faculty Summit this past year for more information. Uncertain…

Parasail

Established: October 17, 2014

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…

TouchDevelop

Established: July 20, 2011

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…

The F* Project

Established: March 25, 2011

F* is a verification-oriented dialect of ML. For more information, please visit https://fstar-lang.org or click on the logo below.

JSMeter: Measuring JavaScript Web Applications

Established: March 2, 2010

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. Can you tell the JavaScript benchmark from the Real Web App?   …

Cuzz – Concurrency Fuzzing

Established: February 6, 2012

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…

Boogie: An Intermediate Verification Language

Established: December 10, 2008

Boogie is an intermediate verification language, intended as a layer on which to build program verifiers for other languages. Several program verifiers have been built in this way, including the VCC and HAVOC verifiers for C and the verifiers for…

Detection of JavaScript-based Malware

Established: December 8, 2008

Nozzle: Runtime heap spray detector Nozzle is a runtime monitoring infrastructure that detects attempts by attackers to spray the heap. Nozzle uses lightweight emulation techniques to detect the presence of objects that contain executable code. To reduce false positives, we developed…

Code Contracts

Established: October 28, 2008

Code Contracts provide a language-agnostic way to express coding assumptions in .NET programs. The contracts take the form of preconditions, postconditions, and object invariants. Contracts act as checked documentation of your external and internal APIs. The contracts are used to…

Spec#

Established: June 11, 2004

Spec# is a formal language for API contracts (influenced by JML, AsmL, and Eiffel), which extends C# with constructs for non-null types, preconditions, postconditions, and object invariants. Spec# comes with a sound programming methodology that permits specification and reasoning about…