係統粉 > IT資訊 > 微軟資訊

微軟研究院開源編程語言Verona,借鑒Rust、Cyclone等特性

發布時間:2020-01-22    瀏覽數:
機器之心報道

作者:一鳴、Jamin

近日,微軟研究院開源了一個名為 Verona 的項目。這是一個麵向研究的編程語言,旨在解決內存管理和計算機安全方麵的問題,並借鑒了 Rust 等的新特性。

計算機安全中很多問題都和內存管理相關,很多相關研究機構正在探究一些方法。近日,微軟研究院開源了一個研究型的編程語言項目——Verona。
Verona 語言是一個開源項目,微軟研究院希望通過這個項目幫助學界研究更好的內存管理方法。據悉,該項目吸收了 Rust、Cyclone 的一些特點。
開源地址:https://github.com/microsoft/verona
Verona 語言是什麼
Verona 是一個微軟研究院發起的項目,用於研究並發方麵的問題。研究者希望提供一種新的並發模型,能夠無縫地和所有權結合。
根據微軟給出的介紹,Verona 項目旨在探索有關語言和 runtime 方麵的研究,以實現安全的可擴展內存管理和分區工作。
主要的研究問題如下:

如果設計的語言沒有並發突變,是否可以構建可擴展的內存管理;能否在不犧牲內存管理的情況下,使用線性區域來消除每個對象線性度的限製;能否使用語言級別的分隔?


目前 Verona 仍然是一個處於很早期的研究類項目,部分類型檢查器還有待實現,同時實現的語言功能也較少。
社區評價
項目開源後引起了社區的討論。一些開發者認為,Verona 嚐試抽象所有者模型,更接近人們的使用習慣,能夠在不失安全性的情況下創建數據結構,但是是否能夠成功有待觀察。

微軟研究院開源編程語言Verona,借鑒Rust、Cyclone等特性(1)

微軟研究院開源編程語言Verona,借鑒Rust、Cyclone等特性(2)


還有開發者認為,從微軟本身(而不是微軟研究院)的角度來看,建立一個像 Go 語言那樣的原生語言也是應該的。

微軟研究院開源編程語言Verona,借鑒Rust、Cyclone等特性(3)


Verona 要解決的問題
「係統編程語言」是一個有著廣泛範圍的問題。從高級關鍵性能係統到低級的內存管理器,以及內核模塊都有所涉及。係統編程有兩個不同的方麵:
可預測性

延遲資源占用


原始訪問(Raw access)

可將內存直接視作位(bits)和字節(bytes)硬件層麵使用更少的抽象(甚至完全不需要)


並發突變和內存安全
在 Verona 項目中,研究者認為放棄並發型突變(concurrent mutation)是可擴展內存管理的必要一步。通過消除並發型突變,開發者就不能將並發實現成庫。通常情況下有兩種選擇,暴露「unsafe」以啟用不安全的庫去實現並發(如 Rust),或者為語言提供一個並發模型(如 Pony)。
前者意味著編程語言隻能依賴較少的不變量,因為它無法理解那些非安全模塊中的代碼是如何提供並發能力的。後者意味著需要一個驚人的 Concurrency Story,因為隻能有一個 Concurrency Story。
共享所有權
在 Verona 中,研究者引入一種新的並發型編程模型:並發所有者,簡稱 cowns。它封裝了一些資源集(如內存區域),同時確保了每次由一個執行線程訪問這些資源。
在 Verona 中,我們可以將一個對象包裝在 cown 中,使其並發。


據項目介紹稱,這一項目希望能夠通過開源和研究界展開更多的合作。目前項目仍在早期階段,對於微軟本身使用的工程項目不會有影響。

上一篇:微軟即日起開始向所有用戶全量推送Windows101909小型更新 下一篇:微軟Windows7係統發現高危漏洞,存在巨大的惡意軟件挖礦風險

相關資訊

最新熱門應用

電腦問答