微軟發布并行編程語言Axum
Axum目前仍然是一個試驗性的項目,微軟DevLabs表示此次發布的版本,其主要目的是希望收集來自社區的反饋:
無論Axum最終是否會成為一個產品,是否能使并行編程變得更安全、更易于擴展和更高效,(社區的)反饋都是它成功的最大因素。
Axum曾經叫做Maestro,它的目標是提供一個.NET環境下的并行編程模型,支持隔離、actor和消息傳遞。此語言借鑒了很多Erlang語言的元素,不過擁有類似C#的語法。
Axum是一個擁有類似C#語法的命令式語言,它面向actor和域(domain),而不是面向對象的,因此它擁有對象的概念,但是不能自定義類。Axum主要用途是解決并發處理問題,它基于微軟機器人實驗室的CCR,其他.NET平臺的編程語言可以通過調用Axum來實現并發處理。
并行安全的最大障礙是共享數據。在Axum中使用共享數據之前需要進行聲明,這樣運行時就會控制數據訪問的過程。語言中已經內建了并發控制機制。
Axum的主要元素是域。域是一個資源倉庫,它是數據、代理和函數的集合。域與域之間是相互隔離的,以此保護它們各自獨立或共享的數據。域中的所有代理可以共享域中的數據,代理之間通過信道(Channel)來交換消息,而域中的函數都是無狀態的。不同域的代理之間在通信時需要某種元數據來進行協調,這些元數據便是“架構(Schema)”。
基本上,一個代理就是可以和其他代理進行通信的線程,它們通過添加reader或writer的聲明來訪問共享數據:
domain A { |
域與域之間通過代理進行通信可以用下圖來表示:

您需要安裝Visual Studio 2008才能使用Axum。
【編輯推薦】