2009-05-12 2 views
9

Я прочитал this рассказ о slashdot сегодня, где они объявляют о новом параллельном языке программирования Microsoft.Что это за новый язык программирования Axum?

О чем этот новый язык программирования? В нем говорится о параллельном программировании. Но это будет альтернатива/замена для MPI, PVM, OpenMP и подобных параллельных библиотек/фреймворков?

Любые мысли?

+0

Huh. Никогда не слышал об Аксуме раньше. Очень интересно. Пойдите Microsoft! Первый ASP.NET MVC, затем F #, теперь Axum? Злая! –

+3

Если кто-нибудь сделал что-то интересное, сообщите нам об этом. –

+0

Было бы хорошо. –

ответ

9

Axum - это язык, структурированный таким образом, чтобы упростить безопасное и эффективное совместное программирование. Понятия моделируемых языка избежать необходимости сделать синхронизацию потоков явной посредством использования lock (в C#), Monitor, ReaderWriterLockSlim и т.д ...

Можно утверждать, что многие из идей в Аксуме были в Erlang programming language с 1986 года - язык, разработанный исследователями, работающими в Швеции для Ericsson, для работы на телефонных коммутаторах, и, следовательно, поддержка массивной пропускной способности при высокой одновременной нагрузке была настолько существенной, что она была разработана на языке. Хотя многие из идей в Аксум не являются новыми, они, конечно, новичок в .NET и в CLR

Существующие библиотеки .NET, которые содержат некоторые из этих идей (по крайней мере, на уровне языка.):

Как Erlang, передача сообщений является центральным понятием в Аксум. Как и Эрланг, Аксум в значительной степени безразличен относительно того, находится ли получатель сообщения в процессе или удаленно. В настоящее время Axum обеспечивает интеграцию с WCF.

Axum отличается от упомянутых выше библиотек тем, что включает поддержку этих концепций на уровне языка, а не только через использование библиотек. Компилятор Axum занимается не только языком Axum, но и некоторыми экспериментальными расширениями для самого языка C#; а именно ключевые слова isolated и readonly.

Добавление новых функций на язык не является чем-то, что нужно воспринимать легкомысленно. Spec# - еще один язык C# -superset, разработанный по адресу MSR (не связанный с параллелизмом).Как видно из поддержки Code Contracts в .NET 4.0, Microsoft решила одобрить добавление нового API, а не новых языковых расширений (это приносит пользу пользователям всех языков в CLR.) Однако в случае Axum недостаточно богатства на языке C# 3.0, чтобы выразить типы ограничений непреложности, необходимых для типов и их членов для действительно безопасного параллельного программирования.

Погрузившись в Эрланг и полюбив увиденное, я очень взволнован тем, что Аксум может забрать нас. Некоторые из расширений языка C#, предложенные командой, также полезны для обычных проектов C#.

Наконец, я хотел бы отметить, что для Erlang больше, чем для хорошей модели параллелизма. Erlang - строгий функциональный язык программирования. Он поддерживает код с возможностью «горячей замены», что означает, что система может быть обновлена ​​без остановки (желательная функция телефонного коммутатора или любой другой системы 24x7). Я слышал отчет от крупной британской телекоммуникационной организации, в которой работает коммутатор на год, и только в то время не выполнял четырех вызовов. У Erlang есть другие характеристики, такие как удаленная обработка исключений.

+2

Да, и я думал, что CCR стояла за Credence. ;) – harpo

5

Похоже, вы нанесли удар по гвоздю на голове в своем вопросе. Похож на альтернативу Microsoft.NET на некоторые из языков/фреймворков, о которых вы говорили. Посмотрите на Руководство программиста здесь:

Axum Programmer's Guide

Похоже, он должен играть хорошо с остальной частью .NET Framework. Он может открыть некоторые интересные взаимодействия C#/F #/Axum ...

+0

Я нашел PDF, с которым вы связались, там очень читабельны и полезны в качестве общего введения. –

4

Axum - это новое название для языка «Maestro» Microsoft, который первоначально был языком исследований для параллельного программирования, но был «продвинут» на первый взгляд, класса совсем недавно.

Немного больше информации о канале 9 здесь:

Maestro: A Managed Domain Specific Language For Concurrent Programming

... и в official Axum team blog.

1

Информация о штате Axum. По-видимому, некоторые из функций параллелизма больше не будут частью C#/VB.Net.

... понятия вокруг безопасной параллельности и агентного программирования рассматривалось многими как слишком далеко за пределами мейнстрим, которые будут приняты сейчас в таких языках, как C# и VB. Идея Axum заключалась в том, чтобы не форсировать эти понятия на языках общего назначения, поэтому те из нас, кто работают на Axum, не удивлены.