В Microsoft пришли к выводу, что примерно 70% возникающих сегодня проблем с безопасностью связаны с вопросами безопасности памяти. Для упрощения процесса написания безопасного кода компания разрабатывает специальный язык, предназначенный для безопасного программирования инфраструктуры.

Уже в первой версии нового языка, исходный код которого предполагается в ближайшее время открыть, будут реализованы три основные идеи.

  • Свободное наращивание объемов данных, предусматривающее отказ от параллельного внесения произвольных изменений и переход к масштабируемому управлению памятью с обеспечением временной безопасности без глобальной синхронизации.
  • Параллельное владение с новой моделью параллелизма и упрощенной асинхронной координацией ресурсов.
  • Выделение линейных областей с моделью владения, основанной на группах объектов. Отличие от языка Rust с безопасным управлением памятью заключается в том, что он базируется на единственном объекте. Verona же предлагает стратегии управления памятью для каждой области. Кроме того, поддерживается разделение унаследованных компонентов.

Разделение заложено на уровне проектирования языка. В Verona введены потоки, получающие доступ к областям. Любая область доступна только одному потоку. В каждой области имеется линейная точка входа, а сами области могут быть вложены одна в другую. Общая неизменяемая область содержит элементы, не подверженные изменениям.

Для запуска ненадежного унаследованного кода используется так называемая проникающая песочница. Библиотеки песочницы можно встраивать в программы, написанные на Verona.

Project Verona предлагает готовую исполняемую среду, а также интерпретатор и средство контроля типов. Дальнейшие планы предусматривают создание компилятора и размещение его открытого кода в GitHub для дальнейшей совместной работы.

В рамках обеспечения безопасности памяти Microsoft изучает возможность разработки новых и переписывания унаследованных компонентов на основе Rust. В Microsoft подчеркивают, что ранее при написании системного программного обеспечения широко использовались языки Си и C++, изначально не предназначавшиеся именно для безопасного программирования.