Paul Krill
Editor at Large

Microsoft readies new language for safe programming

news
Dec 5, 20192 mins

Soon to be open source, Project Verona takes a different approach to object ownership and concurrency to ensure safe memory management

Secured data transfer 184744560
Credit: Thinkstock

Microsoft has found that approximately 70 percent of the security vulnerabilities it addresses are due to memory safety issues. To make it easier to write safer code, the company is developing a language designed for safe infrastructure programming. 

Due to be open-sourced soon, the first version of the new language, called Project Verona, incorporates three core ideas:

  • Data-race freedom, which gives up concurrent, arbitrary mutation to enable scalable memory management with temporal safety without global synchronization.
  • Concurrent owners, which provides a new concurrency model that offers lightweight, asynchronous coordination of resources.
  • Linear regions, with the ownership model based on groups of objects. This differs from the memory-safe Rust language, which is based on a single object, Microsoft explained. In Verona, there are memory management strategies per region. Also featured is compartmentalization for legacy components.

Verona explores compartmentalization at the language design level. With Verona, there are threads that can access regions. Any region can be accessed by only one thread. There is a linear entry point into a region, and regions can be nested within other regions. A shared immutable region can maintain items not being mutated.

Further, pervasive sandboxing is used to run untrusted legacy code. Sandboxed libraries can be embedded in a Verona program.

Project Verona includes a production-quality runtime and a prototype interpreter and type-checker. Plans call for a compiler and open sourcing to GitHub to enable collaboration.

As part of its memory safety efforts, Microsoft has been exploring the use of Rust for building new components and rewriting legacy components. Microsoft has pointed out that systems software has been the domain of languages like C and C++, which were not inherently designed for safety. 

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

More from this author