Axum (programming language)

Axum (programming language)

Axum (previously codenamed Maestro) is a domain-specific concurrent programming language, based on the Actor model, that was under active development by Microsoft between 2009 and 2011. It is an object-oriented language based on the .NET Common Language Runtime using a C-like syntax which, being a domain-specific language, is intended for development of portions of a software application that is well-suited to concurrency. But it contains enough general-purpose constructs that one need not switch to a general-purpose programming language (like C#) for the sequential parts of the concurrent components.

Comment
enAxum (previously codenamed Maestro) is a domain-specific concurrent programming language, based on the Actor model, that was under active development by Microsoft between 2009 and 2011. It is an object-oriented language based on the .NET Common Language Runtime using a C-like syntax which, being a domain-specific language, is intended for development of portions of a software application that is well-suited to concurrency. But it contains enough general-purpose constructs that one need not switch to a general-purpose programming language (like C#) for the sequential parts of the concurrent components.
Depiction
Axum Banner.png
Developer
Microsoft
Developer
Microsoft
Has abstract
enAxum (previously codenamed Maestro) is a domain-specific concurrent programming language, based on the Actor model, that was under active development by Microsoft between 2009 and 2011. It is an object-oriented language based on the .NET Common Language Runtime using a C-like syntax which, being a domain-specific language, is intended for development of portions of a software application that is well-suited to concurrency. But it contains enough general-purpose constructs that one need not switch to a general-purpose programming language (like C#) for the sequential parts of the concurrent components. The main idiom of programming in Axum is an Agent (or an Actor), which is an isolated entity that executes in parallel with other Agents. In Axum parlance, this is referred to as the agents executing in separate isolation domains; objects instantiated within a domain cannot be directly accessed from another. Agents are loosely coupled (i.e., the number of dependencies between agents is minimal) and do not share resources like memory (unlike the shared memory model of C# and similar languages); instead a message passing model is used. To co-ordinate agents or having an agent request the resources of another, an explicit message must be sent to the agent. Axum provides Channels to facilitate this. Channels can be regarded as a directional pathway to communicate between agent instances. The member functions of a Channel object, after it has been bound to an agent instance, can be used to communicate with it. A Channel contains input and output ports, which are queues which are used to send data to an agent or receive data from one. To co-ordinate the communication between agents, Axum allows each channel to have a user-defined protocol for communication. The protocol is defined as a state machine. The data sent over a channel can be optionally restricted to conform to a certain pre-defined schema. The compiler and runtime will enforce the conformance with the schema. Under the hood, a schema is translated into a serializable .NET class that contains only properties and side effect-free methods. The Axum project reached the state of a prototype with working Microsoft Visual Studio integration. Microsoft had made a CTP of Axum available to the public, but this has since been removed.Although Microsoft decided not to turn Axum into a project, some of the ideas behind Axum are used in in .Net 4.5.
Homepage
msdn.microsoft.com/en-us/devlabs/dd795202.aspx
Hypernym
Language
Is primary topic of
Axum (programming language)
Label
enAxum (programming language)
LatestReleaseDate
8 May 2009
Latest release date
8 May 2009
LatestReleaseVersion
Community Technology Preview
Latest release version
Community Technology Preview
License
Closed source
License
Closed source
Link from a Wikipage to an external page
download.microsoft.com/download/B/D/5/BD51FFB2-C777-43B0-AC24-BDE3C88E231F/Axum%20Programmers%20Guide.pdf
msdn.microsoft.com/en-us/devlabs/dd795202.aspx
Link from a Wikipage to another Wikipage
.NET Framework
Actor model
C (programming language)
Category:.NET programming languages
Category:Concurrent programming languages
Category:Object-oriented programming languages
Class (computing)
Closed source
Common Language Runtime
Community Technology Preview
Concurrent programming
C Sharp (programming language)
Domain-specific language
File:Axum Banner.png
Itanium
Message passing
Microsoft
Microsoft Visual Studio
Object-oriented programming
Programming language
Queue (data structure)
Serialization
Shared memory (interprocess communication)
State machine
TPL Dataflow
Windows 7
Windows Server 2003
Windows Server 2008
Windows Vista
Windows XP
X86
X86-64
Logo
150
Name
enAxum
Name
enAxum
OperatingSystem
Windows 7
Windows Server 2003
Windows Server 2008
Windows Vista
Windows XP
Page
msdn.microsoft.com/en-us/devlabs/dd795202.aspx
Platform
enx86, x86-64 and Itanium
Released
8 May 2009
Release date
8 May 2009
SameAs
4URdX
m.05ztn31
Q4830701
Subject
Category:.NET programming languages
Category:Concurrent programming languages
Category:Object-oriented programming languages
Thumbnail
Axum Banner.png?width=300
WasDerivedFrom
Axum (programming language)?oldid=1119640769&ns=0
Website
dd795202.aspx
WikiPageLength
7679
Wikipage page ID
22433033
Wikipage revision ID
1119640769
WikiPageUsesTemplate
Template:Common Language Infrastructure
Template:Infobox programming language
Template:Multiple issues
Template:Notability
Template:Primary sources
Template:Reflist
Template:Release date
Template:Short description