Аксум (програмски јазик)

Axum
Развивач:Microsoft
Последно издание:Community Technology Preview / мај 8, 2009; пред 15 години (2009-05-08)
Оперативен систем:Windows XP
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
Лиценци:Closed source
Веб страница:Axum at DevLabs

Аксум (претходно со кодно име Maestro) е специфичен домеснки програмски јазик, базиран на моделот Actor, кој бил во активен развој од Microsoft[1] помеѓу 2009 и 2011 година.[2] Тој е објектно-ориентиран јазик заснован на .NET Common Language Runtime со користење на синтакса слична на C, која, како јазик специфичен за домен, е наменет за развој на делови од софтверска апликација која истовремено е добро прилагодена. Но, содржи доволно конструкции за општа намена што не треба да се префрли на програмски јазик за општа намена (како C# ) за секвенцијалните делови од истовремените компоненти.[1]

Главниот идиом на програмирањето во Аксум е Агент (или Актор), кој е изолиран ентитет кој се извршува паралелно со другите агенти.[3] На јазикот на Аксум, ова се нарекува агенти кои извршуваат посебни изолациски домени;[3] објектите инстанцирани во домен од страна на други не можат директно да се пристапат.[4] Агентите се лабаво поврзани (т.е., бројот на зависности помеѓу агентите е минимален) и не споделуваат ресурси како меморија (за разлика од моделот за заедничка меморија на C# и слични јазици); наместо тоа се користи модел за пренесување пораки.[3] За да се координираат агентите или да има некој агент да бара ресурси од друг, мора да се испрати експлицитна порака до агентот. Аксум обезбедува канали за да го олесни ова.

Каналите може да се сметаат како насочувачки пат за комуникација помеѓу инстанци на агенти. Функциите за член на објектот на Каналот, откако ќе се врзат за пример на агент, може да се користат и за комуникација со него. Каналот содржи влезни и излезни порти, кои се редици кои се користат за испраќање податоци до агент или примање податоци од еден. За да ја координира комуникацијата помеѓу агентите, Аксум дозволува секој канал да има протокол за комуникација дефиниран од корисникот. Протоколот е дефиниран како државна машина.[5] Податоците испратени преку канал може опционално да се ограничат за да одговараат на однапред одредена дефинирана шема. Компајлерот и времето за извршување ќе ја наметнат усогласеноста со шемата.[6] Под хаубата, шемата е преведена во серијализирање. NET класа која содржи само својства и методи без несакани ефекти.[7]

Проектот Аксум достигна состојба на прототип со работна интеграција на Microsoft Visual Studio.[8] Мајкрософт го направи CTP на Аксум достапен за јавноста,[9] но тој оттогаш е отстранет. Иако Microsoft одлучи да не го претвори Аксум во проект,[2] некои од идеите зад него се користат во TPL Dataflow во Net 4,5.

  1. 1,0 1,1 „Maestro: A Managed Domain Specific Language For Concurrent Programming“. Channel 9. Архивирано од изворникот на 7 April 2009. Посетено на 2009-04-16.
  2. 2,0 2,1 „The State of Axum“. Niklas Gustafsson. Посетено на 2011-02-28.
  3. 3,0 3,1 3,2 Philips Joshua. „We haven't forgotten about other models – honest!“. MSDN blogs. Архивирано од изворникот на 8 May 2009. Посетено на 2009-04-16.
  4. Niklas Gustafsson. „Isolation in Maestro“. MSDN blogs. Архивирано од изворникот на 8 May 2009. Посетено на 2009-04-16.
  5. Niklas Gustafsson. „Channels“. MSDN blogs. Архивирано од изворникот на 26 April 2009. Посетено на 2009-04-16.
  6. Joshua Philips. „Axum“. Lang.NET Presentation. Архивирано од изворникот на 21 April 2009. Посетено на 2009-04-20.
  7. Niklas Gustafsson. „Objects in Axum“. MSDN Blogs. Архивирано од изворникот на 26 April 2009. Посетено на 2009-04-20.
  8. „Axum: Another piece of Microsoft's parallel programming puzzle“. CNet blogs. Архивирано од изворникот на 17 April 2009. Посетено на 2009-04-16.
  9. „Axum“. MSDN DevLabs. Архивирано од изворникот на 11 May 2009. Посетено на 2009-05-09.