2009-05-12 9 views
9

Ich lese this Geschichte auf Slashdot heute, wo sie eine neue parallele Programmiersprache von Microsoft ankündigen.Was ist diese neue Axum Programmiersprache?

Worum geht es in dieser neuen Programmiersprache? Es sagt Parallele Programmierung. Aber wird es eine Alternative/Ersatz für MPI, PVM, OpenMP und ähnliche parallele Bibliotheken/Frameworks sein?

Irgendwelche Gedanken?

+0

Huh. Nie zuvor von Axum gehört. Sehr interessant. Geh Microsoft! Erste ASP.NET MVC, dann F #, jetzt Axum? Böse! –

+3

Wenn irgendjemand damit etwas Interessantes gemacht hat, poste doch hier einen Link zu deinem Blogeintrag. –

+0

Das wäre nett. –

Antwort

9

Axum ist eine Sprache, die so strukturiert ist, dass sie eine sichere und performante gleichzeitige Programmierung vereinfacht. Die Konzepte der Sprache modelliert, um die Notwendigkeit zu vermeiden, um die Thread-Synchronisation explizit über die Verwendung von lock (in C#) zu machen, Monitor, ReaderWriterLockSlim, etc ...

Es könnte argumentiert werden, dass viele der Ideen in Axum wurden in die Erlang programming language seit 1986 - eine Sprache, die von Forschern entworfen wurde, die in Schweden für Ericsson arbeiten, um auf Telefonschaltern zu laufen, und folglich Unterstützung für massiven Durchsatz unter hoch konkurrierender Last war so wesentlich, dass es in die Sprache entworfen wurde. Während viele der Ideen in Axum nicht neu sind, sind sie sicherlich neu zu .NET und die CLR

Vorhandene .NET-Bibliotheken, die einige dieser Ideen enthalten sind (zumindest auf der Sprachebene.):

wie Erlang, Message Passing ist ein zentrales Konzept in Axum. Wie Erlang ist Axum weitgehend gleichgültig, ob der Empfänger der Nachricht sich in Bearbeitung oder entfernt befindet. Axum bietet derzeit die Integration mit WCF.

Axum unterscheidet sich von den oben genannten Bibliotheken dadurch, dass es die Unterstützung dieser Konzepte auf Sprachenebene bietet, nicht nur durch die Verwendung von Bibliotheken. Der Axum-Compiler beschäftigt sich nicht nur mit der Axum-Sprache, sondern auch mit einigen experimentellen Erweiterungen der C# -Sprache selbst; nämlich die isolated und readonly Schlüsselwörter.

Das Hinzufügen neuer Funktionen zu einer Sprache ist nicht leicht zu treffen. Spec# ist eine andere C# -Superset-Sprache, die unter MSR entwickelt wurde (unabhängig von Nebenläufigkeit).Wie in der Unterstützung für Code Contracts in .NET 4.0 zu sehen, hat Microsoft entschieden, eine neue API anstelle von neuen Spracherweiterungen zu bevorzugen (dies kommt allen Benutzern der CLR zugute). Im Fall von Axum ist jedoch nicht genug Reichhaltigkeit vorhanden in der C# 3.0-Sprache, um die Arten von Unveränderbarkeitseinschränkungen auszudrücken, die von Typen und ihren Mitgliedern für eine wirklich sichere gleichzeitige Programmierung erforderlich sind.

Ich habe mich in Erlang versucht und mochte, was ich gesehen habe, ich bin sehr gespannt, wohin Axum uns führen könnte. Einige der vom Team vorgeschlagenen Erweiterungen der C# -Sprache sind auch für normale C# -Projekte nützlich.

Abschließend möchte ich darauf hinweisen, dass es mehr als nur ein gutes Parallelitätsmodell zu Erlang gibt. Erlang ist eine strenge funktionale Programmiersprache. Es unterstützt hot-swap-fähigen Code, was bedeutet, dass ein System aufgerüstet werden kann, ohne dass es jemals gestoppt wird (eine wünschenswerte Eigenschaft eines Telefonschalters oder eines anderen 24x7-Systems). Ich hörte einen Bericht von einer großen britischen Telekommunikationsorganisation, der ein Jahr lang einen Switch führte und nur vier Anrufe in dieser Zeit nicht routete. Erlang hat auch andere Eigenschaften wie Remote-Exception-Handling.

+2

Huh, und ich dachte CCR stand für Credence. ;) – harpo

5

Sieht für mich wie Sie den Nagel auf den Kopf in Ihrer Frage getroffen. Sieht aus wie die Microsoft.NET-Alternative zu einigen der erwähnten Sprachen/Frameworks. Werfen Sie einen Blick auf dem Programmierhandbuch hier:

Axum Programmer's Guide

Sieht aus wie es gut mit dem Rest des .NET Framework spielen. Es könnte einige interessante C#/F #/Axum-Interaktionen eröffnen ...

+0

Ich fand das PDF, das Sie dort verlinkten, sehr lesbar und nützlich als eine allgemeine Einleitung. –

1

Hier ist ein Update für den Zustand Axum. Einige der Nebenläufigkeitsfunktionen sind jetzt nicht mehr Teil von C#/VB.Net.

... die Konzepte rund um sichere Parallelität und agentenbasierte Programmierung wurden als zu weit außerhalb des Mainstream von vielen gesehen wie C# und VB in Sprachen angenommen jetzt wird. Die Idee von Axum war, diese Konzepte nicht auf Mehrzwecksprachen zu erzwingen, also sind diejenigen von uns, die an Axum arbeiten, nicht überrascht.