At the RiSE group at Microsoft Research (MSR), we conduct fundamental research into formal methods, programming languages, and software engineering (including emerging agentic systems), with a ...
A proof-of-concept C compiler written entirely in Lean 4, with a built-in memory-safety verifier. The compiler catches buffer overflows, use-after-free, double free, and null dereference bugs at ...
In the landscape of C programming, functions, much like variables, occupy space within the computer's memory and possess unique addresses.1 This fundamental characteristic allows for a powerful ...
Creating a new programming language is an ambitious and complex endeavor. It requires a deep understanding of not only coding and software engineering but also the principles that make a programming ...
Whenever we’re working with data that is not arranged in a sequential or linear manner, a good idea is to use structures such as trees, graphs and linked lists given that their size and structure can ...
The compiler supports writing programs in mixed Compis and C; you can mix .c and .co source files. It accomplishes this by bundling some LLVM tools, like clang and lld into one executable. The LLVM ...
Go is a programming language created at Google in late 2007 and released as open source in November 2009. Since then, it has operated as a public project, with contributions from thousands of ...
There is a longstanding tension in programming language design between two seemingly irreconcilable desiderata. Rust is the first industry-supported programming language to overcome the longstanding ...
This blog post outlines the work that Microsoft is doing to eliminate uninitialized stack memory vulnerabilities from Windows and why we’re on this path. None of this work would have been possible ...
The Flame worm (detected by ESET as Win32/Flamer) is one of the most interesting targeted threats of this year. Although several articles about it have been published, many of the facts about the ...
Some results have been hidden because they may be inaccessible to you
Show inaccessible results