如何看待微軟新開源的P語言?

鏈接如下:

微軟開源P語言,實現安全的非同步事件驅動編程


又一個MSR做的實驗


從技術棧的角度看:

GitHub - p-org/P: The P programming language

  • 編譯器主要由C#實現:這從側面反應了對Roslyn模式及其表現的認同
  • MSBuild及Visual Studio支持:
    • 項目文件支持

&
&

    • IDE支持:P/Src/Tools/VSEditorExtensions at master · p-org/P · GitHub
    • (我覺得很多人根本就不知道微軟產品擴展性這麼強,就跟著別人說微軟封閉)
  • 編譯結果為C:
    • 所以說C是介於高級語言和機器語言中間的語言,表達能力是極大的
    • 還有編譯到.Net IL的版本P#:GitHub - p-org/PSharp: Safer asynchronous .NET programming


一個C並發庫,及其DSL


按照微軟的說法,P程序能夠使用模型檢查功能來進行核實。這樣的話,就允許開發人員確保所有的事件均能得到及時地處理。對於P程序來說,要想保證響應性,它的狀態機就要處理每個狀態上所有可以出隊(dequeue)的事件。這種做法並不一定總是可行,因此對一些事件可能會進行延遲處理。在這種情況下,語言能夠確保某個事件不會無限期延遲。P編譯器能夠核實程序的狀態,還可以生成C代碼,並交給C編譯器執行,另外,它還可以輸出Zing模型,用於系統測試。Zing是一個針對並發程序的開源模型檢查器,它能夠系統性地暴露一個模型所有可能出現的狀態。

微軟使用P語言實現和檢驗了Windows 8
USB設備驅動棧的核心功能。按照微軟的說法,工程師使用P來序列化大量來自硬體、操作系統、功能驅動以及其他驅動組件的不同事件,提升了性能和可靠性。他們尤其指出,在新的USB
hub驅動中,非法內存訪問和競態條件的數量不那麼明顯了,同時,枚舉時間快了30%,也沒有觀察到worker條目餓死的現象。


什麼P語言?!(滑稽


想知道26個英文字母被用完了沒有


貌似微軟不是一直在做這些事么。。。順便懷念一下躲在角落裡MFC..


你會用P語言么?

你才用P語言!


為Rust哀傷,突然被微軟倒插一腳~


和它的名字很契合


看起來有點像雲風的skynet


如果寫狀態機簡單,又能轉成C語言,也許在嵌入式領域有一席之地。

當然它設計的初衷是為了寫驅動,其實現在還在寫驅動程序的不多了,看能不能轉到C語言進入android世界。


推薦閱讀:

如果所有設備都換成win10會怎麼樣?
想去高通從事晶元或者通信基帶類的研發崗需要什麼條件?
針對嵌入式軟體的「白盒測試、灰盒測試、黑盒測試」的不同點,以及用到的測試方法、測試工具有哪些?

TAG:微軟Microsoft | 編程 | 嵌入式系統 | 嵌入式開發 | 事件驅動Event-driven |