Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Axum (programming language)

From Wikipedia, the free encyclopedia
This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages)
The topic of this articlemay not meet Wikipedia'snotability guidelines for products and services. Please help to demonstrate the notability of the topic by citingreliable secondary sources that areindependent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to bemerged,redirected, ordeleted.
Find sources: "Axum" programming language – news ·newspapers ·books ·scholar ·JSTOR
(February 2014) (Learn how and when to remove this message)
icon
This articlerelies excessively onreferences toprimary sources. Please improve this article by addingsecondary or tertiary sources.
Find sources: "Axum" programming language – news ·newspapers ·books ·scholar ·JSTOR
(February 2014) (Learn how and when to remove this message)
(Learn how and when to remove this message)
Domain specific concurrent programming language originally developed by Microsoft
Axum
DeveloperMicrosoft
First appearedMay 8, 2009
Stable release
Community Technology Preview / May 8, 2009 (2009-05-08)
Platformx86,x86-64 andItanium
OSWindows XP
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
LicenseClosed source
WebsiteAxum at DevLabs

Axum (previously codenamedMaestro) is adomain-specificconcurrentprogramming language, based on theActor model, that was under active development byMicrosoft[1] between 2009 and 2011.[2] It is anobject-oriented language based on the.NETCommon Language Runtime using aC-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 (likeC#) for the sequential parts of the concurrent components.[1]

The main idiom of programming in Axum is anAgent (or anActor), 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 separateisolation 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 theshared memory model ofC# and similar languages); instead amessage 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 providesChannels to facilitate this.

Channels can be regarded as a directional pathway to communicate between agent instances. The member functions of aChannel object, after it has been bound to an agent instance, can be used to communicate with it. AChannel contains input and outputports, which arequeues 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-definedprotocol for communication. The protocol is defined as astate machine.[5] The data sent over a channel can be optionally restricted to conform to a certain pre-definedschema. The compiler and runtime will enforce the conformance with the schema.[6] Under the hood, aschema is translated into aserializable .NETclass that contains only properties and side effect-free methods.[7]

The Axum project reached the state of a prototype with workingMicrosoft Visual Studio integration.[8] Microsoft had made aCTP 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 inTPL Dataflow in .Net 4.5.

References

[edit]
  1. ^ab"Maestro: A Managed Domain Specific Language For Concurrent Programming".Channel 9.Archived from the original on 7 April 2009. Retrieved2009-04-16.
  2. ^ab"The State of Axum". Niklas Gustafsson. Retrieved2011-02-28.
  3. ^abcPhilips Joshua."We haven't forgotten about other models – honest!".MSDN blogs.Archived from the original on 8 May 2009. Retrieved2009-04-16.
  4. ^Niklas Gustafsson."Isolation in Maestro".MSDN blogs.Archived from the original on 8 May 2009. Retrieved2009-04-16.
  5. ^Niklas Gustafsson."Channels".MSDN blogs.Archived from the original on 26 April 2009. Retrieved2009-04-16.
  6. ^Joshua Philips."Axum". Lang.NET Presentation. Archived from the original on 21 April 2009. Retrieved2009-04-20.
  7. ^Niklas Gustafsson."Objects in Axum".MSDN Blogs.Archived from the original on 26 April 2009. Retrieved2009-04-20.
  8. ^"Axum: Another piece of Microsoft's parallel programming puzzle".CNet blogs. Archived fromthe original on 17 April 2009. Retrieved2009-04-16.
  9. ^"Axum". MSDN DevLabs. Archived fromthe original on 11 May 2009. Retrieved2009-05-09.

External links

[edit]
Architecture
Components
Implementations
Microsoft
Other
Languages
Major
Other
Comparison
Retrieved from "https://en.wikipedia.org/w/index.php?title=Axum_(programming_language)&oldid=1318448521"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp