Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 References  





2 External links  














Axum (programming language)






Македонски

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Axum
DeveloperMicrosoft
First appearedMay 8, 2009
Stable release

Community Technology Preview / May 8, 2009 (2009-05-08)

Platformx86, x86-64 and Itanium
OSWindows XP
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
LicenseClosed source
WebsiteAxum at DevLabs

Axum (previously codenamed Maestro) is a domain-specific concurrent programming language, based on the Actor model, that was under active development by Microsoft[1] between 2009 and 2011.[2] 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.[1]

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.[3] In Axum parlance, this is referred to as the agents executing in separate isolation domains;[3] objects instantiated within a domain cannot be directly accessed from another.[4] 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.[3] 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.[5] 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.[6] Under the hood, a schema is translated into a serializable .NET class that contains only properties and side effect-free methods.[7]

The Axum project reached the state of a prototype with working Microsoft Visual Studio integration.[8] Microsoft had made a CTP of Axum available to the public,[9] but this has since been removed. Although Microsoft decided not to turn Axum into a project,[2] some of the ideas behind Axum are used in TPL Dataflow in .Net 4.5.

References

[edit]
  1. ^ a b "Maestro: A Managed Domain Specific Language For Concurrent Programming". Channel 9. Archived from the original on 7 April 2009. Retrieved 2009-04-16.
  • ^ a b "The State of Axum". Niklas Gustafsson. Retrieved 2011-02-28.
  • ^ a b c Philips Joshua. "We haven't forgotten about other models – honest!". MSDN blogs. Archived from the original on 8 May 2009. Retrieved 2009-04-16.
  • ^ Niklas Gustafsson. "Isolation in Maestro". MSDN blogs. Archived from the original on 8 May 2009. Retrieved 2009-04-16.
  • ^ Niklas Gustafsson. "Channels". MSDN blogs. Archived from the original on 26 April 2009. Retrieved 2009-04-16.
  • ^ Joshua Philips. "Axum". Lang.NET Presentation. Archived from the original on 21 April 2009. Retrieved 2009-04-20.{{cite web}}: CS1 maint: unfit URL (link)
  • ^ Niklas Gustafsson. "Objects in Axum". MSDN Blogs. Archived from the original on 26 April 2009. Retrieved 2009-04-20.
  • ^ "Axum: Another piece of Microsoft's parallel programming puzzle". CNet blogs. Archived from the original on 17 April 2009. Retrieved 2009-04-16.
  • ^ "Axum". MSDN DevLabs. Archived from the original on 11 May 2009. Retrieved 2009-05-09.
  • [edit]
    Retrieved from "https://en.wikipedia.org/w/index.php?title=Axum_(programming_language)&oldid=1232781930"

    Categories: 
    .NET programming languages
    Object-oriented programming languages
    Concurrent programming languages
    Hidden categories: 
    CS1 maint: unfit URL
    Articles with topics of unclear notability from February 2014
    All articles with topics of unclear notability
    Products articles with topics of unclear notability
    Articles lacking reliable references from February 2014
    All articles lacking reliable references
    Articles with multiple maintenance issues
    Articles with short description
    Short description is different from Wikidata
     



    This page was last edited on 5 July 2024, at 15:32 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki