Domanda

questa storia su Slashdot oggi dove annunciano un nuovo linguaggio di programmazione parallela da Microsoft.

Che cosa è questo nuovo linguaggio di programmazione circa? Dice la programmazione parallela. Ma sta andando ad essere un'alternativa / sostituzione per MPI, PVM, OpenMP e librerie parallele simili / quadri?

Qualche idea?

È stato utile?

Soluzione

Axum è un linguaggio strutturato in modo tale da rendere programmazione concorrente sicuro e performante più semplice. I concetti modellati dal linguaggio evitano la necessità di effettuare la sincronizzazione dei thread esplicita attraverso l'utilizzo di lock (in C #), Monitor, ReaderWriterLockSlim, ecc ...

Si potrebbe obiettare che molte delle idee all'interno di Axum sono stati nel linguaggio di programmazione Erlang dal 1986 - un linguaggio progettato da ricercatori in Svezia per Ericsson per funzionare su switch telefonici, e quindi il supporto per un throughput sotto carico altamente concorrenti era così essenziale è creata nella lingua. Mentre molte delle idee di Axum non sono nuovi, sono certamente una novità per .NET e il CLR (almeno a livello linguistico.)

esistente librerie .NET che contengono alcune di queste idee sono:

Come Erlang, il messaggio che passa è un concetto centrale in Axum. Come Erlang, Axum è in gran parte indifferente che il destinatario del messaggio si trova in-process o in remoto. Axum attualmente fornisce l'integrazione con WCF.

Axum si differenzia dalle librerie di cui sopra, in quanto include il supporto per questi concetti a livello di linguaggio, non solo attraverso l'uso di librerie. Le offerte compilatore Axum non solo con la lingua Axum, ma anche con alcune estensioni sperimentali al C # linguaggio stesso; vale a dire la isolated e readonly parole chiave.

L'aggiunta di nuove funzionalità per una lingua non è qualcosa da prendere alla leggera. Spec # è un altro linguaggio C # -superset sviluppato presso MSR (estranei a concorrenza). Come si è visto con il supporto per gli appalti in .NET 4.0, Microsoft ha deciso per favorire l'aggiunta di una nuova API, piuttosto che nuove estensioni del linguaggio (questo va a beneficio degli utenti di tutte le lingue sul CLR.) Tuttavia, nel caso di Axum, non c'è abbastanza ricchezza nel linguaggio C # 3.0 per esprimere il tipo di vincoli immutabilità richieste di tipologie ed i loro membri per la programmazione concorrente veramente al sicuro.

Dopo aver dilettato in Erlang e simpatia quello che ho visto, sono molto eccitato di dove Axum potrebbe portarci. Alcune delle estensioni al linguaggio C # proposto dal team sono utili per regolare i progetti C # troppo.

Infine vorrei sottolineare che non c'è più a Erlang di un buon modello di concorrenza. Erlang è un rigoroso linguaggio di programmazione funzionale. Supporta il codice sostituibili a caldo, il che significa che un sistema può essere aggiornato senza mai essere fermato (una caratteristica desiderabile di un commutatore telefonico o qualsiasi altro sistema 24x7). Ho sentito un rapporto da una grande organizzazione di telecomunicazioni britannico in esecuzione di un interruttore per un anno e solo non aver percorso quattro chiamate in quel momento. Erlang ha altre caratteristiche come eccezione remoto movimentazione pure.

Altri suggerimenti

mi sembra si colpisce il chiodo sulla testa nella sua interrogazione. Sembra che la Microsoft.NET alternativa ad alcune delle lingue / quadri che hai citato. Date un'occhiata al manuale del programmatore qui:

di Axum programmatore Guida

sembra che dovrebbe giocare bene con il resto del .NET Framework. Potrebbe aprire alcune interessanti C # / F # / interazioni Axum ...

Axum è il nuovo nome per la lingua di Microsoft "Maestro", che in origine era un linguaggio di ricerca per la programmazione parallela, ma è stato "promosso" ad un linguaggio di prima classe solo di recente.

Un po 'più informazioni su Channel 9 qui:

Maestro: Un Managed Domain Specific Language Per Programmazione concorrente

... e sulla ufficiale Axum blog del team .

Ecco un aggiornamento sullo stato di Axum . Apparrently alcune delle caratteristiche di concorrenza non saranno più parte di C # / VB.Net.

  

... i concetti intorno parallelismo sicuro e   agent-based di programmazione sono stati visti da molti come troppo al di fuori del   corrente principale da adottare ora in linguaggi come C # e VB. L'idea di   Axum è stato quello di non forzare questi concetti sui linguaggi di uso generale, in modo da   quelli di noi che hanno un lavoro su Axum non sono sorpreso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top