我今天在slashdot上读到了this的故事,他们宣布了微软的一种新的并行编程语言。
这种新的编程语言是关于什么的?它说的是并行编程。但是它会成为MPI、PVM、OpenMP和类似的并行库/框架的替代品吗?
有什么想法吗?
发布于 2009-09-11 07:05:33
Axum是一种结构化的语言,它可以使安全和高性能的并发编程变得更简单。由该语言建模的概念避免了通过使用lock (在C#中)、Monitor、ReaderWriterLockSlim等来显式地进行线程同步。
可以说,Axum中的许多想法自1986年以来就已经在Erlang programming language中了--这是瑞典研究人员为爱立信设计的一种语言,可以在电话交换机上运行,因此在高并发负载下支持巨大的吞吐量是如此重要,以至于它被设计成了这种语言。虽然Axum中的许多想法并不新鲜,但对于.NET和CLR来说,它们肯定是新的(至少在语言级别)。
包含其中一些概念的现有.NET库包括:
与Erlang一样,消息传递是Axum中的核心概念。与Erlang一样,Axum在很大程度上不关心消息的接收者是位于进程内还是远程。Axum目前提供与WCF的集成。
Axum与上面提到的库的不同之处在于,它不仅通过使用库,还在语言级别支持这些概念。Axum编译器不仅处理Axum语言,还处理C#语言本身的一些实验性扩展;即isolated和readonly关键字。
向一种语言添加新功能不是一件可以掉以轻心的事情。Spec#是由MSR开发的另一种C#超集语言(与并发无关)。从CLR4.0对Code Contracts的支持可以看出,微软已经决定倾向于添加新的.NET而不是新的语言扩展(这对CLR4.0上所有语言的用户都有好处)。然而,在Axum的情况下,C# 3.0语言没有足够的丰富性来表达真正安全的并发编程所需的类型及其成员的不变性约束。
在涉足Erlang并喜欢我所看到的内容之后,我对Axum将带我们走向何方感到非常兴奋。该团队提出的对C#语言的一些扩展对常规C#项目也很有用。
最后,我想指出的是,Erlang不仅仅是一个好的并发模型。Erlang是一种严格的函数式编程语言。它支持热插拔代码,这意味着系统可以在不停止的情况下升级(这是电话交换机或任何其他24x7系统的理想特性)。我听到英国一家大型电信机构报告说,一台交换机运行了一年,但在这段时间里,只有四个电话未能路由。Erlang还有其他特性,比如远程异常处理。
发布于 2009-05-12 02:38:32
在我看来你的问题一针见血。看起来像是你提到的一些语言/框架的Microsoft.NET替代品。看看这里的程序员指南:
Axum Programmer's Guide
看起来它应该和.NET框架的其余部分配合得很好。它可能会开启一些有趣的C#/F#/Axum交互...
发布于 2009-05-12 02:42:26
Axum是微软"Maestro“语言的新名称,该语言最初是一种用于并行编程的研究语言,但最近被”提升“为一流语言。
有关Channel 9的更多信息,请单击此处:
Maestro: A Managed Domain Specific Language For Concurrent Programming
..。在official Axum team blog上。
https://stackoverflow.com/questions/850870
复制相似问题