Что это за новый язык программирования Axum? - PullRequest
9 голосов
/ 12 мая 2009

Сегодня я прочитал эту историю на slashdot, где они анонсировали новый язык параллельного программирования от Microsoft.

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

Есть мысли?

Ответы [ 4 ]

9 голосов
/ 11 сентября 2009

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

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

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

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

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

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

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

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

5 голосов
/ 12 мая 2009

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

Руководство программиста Axum

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

4 голосов
/ 12 мая 2009

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

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

Maestro: управляемый домен для параллельного программирования

... и в официальном блоге команды Axum .

1 голос
/ 01 апреля 2013

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

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

...