Axum
Website: Axum at DevLabs
Axum (anterior numit Maestro) este un limbaj de programare concomitent specific domeniului, bazat pe modelul de actor, care a fost în curs de dezvoltare activă de Microsoft între 2009 și 2011.
Este un limbaj orientat pe obiect bazat pe .NET Common Language Runtime folosind un timp de rulare.
Sintaxa asemănătoare cu C, care, fiind un limbaj specific domeniului, este destinat dezvoltării porțiunilor unei aplicații software care este potrivită pentru concordanță.
Dar conține suficiente construcții cu scop general, încât nu trebuie să trecem la un limbaj de programare cu scop general (cum ar fi C#) pentru părțile secvențiale ale componentelor concomitente.
este o entitate izolată care se execută în paralel cu alți agenți.
În limbajul Axum, aceasta este denumită agenți care se execută în domenii de izolare separate; Obiectele instantanee într -un domeniu nu pot fi accesate direct de la altul.
Agenții sunt cuplați în mod vag (adică numărul de dependențe între agenți este minim) și nu partajează resurse precum memoria (spre deosebire de modelul de memorie partajat de C# și limbi similare); În schimb, se folosește un model de trecere a mesajului.
Pentru a coordona agenții sau a solicita un agent să solicite resursele altuia, un mesaj explicit trebuie să fie trimis agentului.
Axum oferă canale pentru a facilita acest lucru.
Canalele pot fi considerate o cale direcțională pentru a comunica între instanțele de agent.
Funcțiile de membru ale unui obiect de canal, după ce a fost legat de o instanță de agent, pot fi utilizate pentru a comunica cu acesta.
Un canal conține porturi de intrare și ieșire, care sunt cozi care sunt utilizate pentru a trimite date către un agent sau pentru a primi date de la unul.
Pentru a coordona comunicarea dintre agenți, Axum permite fiecărui canal să aibă un protocol definit de utilizator pentru comunicare.
Protocolul este definit ca o mașină de stat.
Datele trimise pe un canal pot fi opțional limitate pentru a se conforma unei anumite scheme predefinite.
Compilatorul și timpul de rulare vor aplica conformitatea cu schema.
Sub capotă, o schemă este tradusă într-o clasă .NET serializabilă care conține doar proprietăți și metode fără efect secundar.
Proiectul Axum a atins starea unui prototip cu integrarea Microsoft Visual Studio de lucru.
Microsoft a pus la dispoziția publicului un CTP de Axum, dar de atunci a fost eliminat.
Deși Microsoft a decis să nu transforme Axum într -un proiect, unele dintre ideile din spatele Axum sunt utilizate în TPL DataFlow în .NET 4.5.