Axum(프로그래밍 언어)
Axum (programming language)| 개발자 | 마이크로소프트 |
|---|---|
| 처음 등장한 | 2009년 5월 8일 |
| 안정된 릴리스 | 커뮤니티 테크놀로지 프리뷰 / 2009년 5월 8일 ( |
| 플랫폼 | x86, x86-64 및 Itanium |
| OS | 윈도 XP Windows Server 2003 윈도 비스타 Windows Server 2008 윈도 7 |
| 면허증. | 폐쇄 소스 |
| 웹 사이트 | DevLabs의 Axum |
Axum(이전의 코드네임 Maestro)은 2009년부터 [2]2011년 사이에 마이크로소프트에 의해[1] 활발하게 개발되었던 Actor 모델에 기반한 도메인별 동시 프로그래밍 언어입니다.에 기반한 객체 지향 언어입니다.도메인 고유의 언어인 C와 같은 구문을 사용하는 NET 공통 언어 런타임은 동시성에 적합한 소프트웨어 응용 프로그램의 일부를 개발하는 것을 목적으로 합니다.그러나 여기에는 동시 [1]컴포넌트의 순차적인 부분에 대해 범용 프로그래밍 언어(C# 등)로 전환할 필요가 없을 만큼 충분한 범용 구성 요소가 포함되어 있습니다.
Axum 프로그래밍의 주요 관용구는 Agent(또는 Actor)로, 다른 [3]Agent와 병렬로 실행되는 독립 엔티티입니다.Axum 용어로 이를 별도의 분리 [3]도메인에서 실행되는 에이전트라고 합니다. 도메인 내에서 인스턴스화된 개체는 다른 [4]개체에서 직접 액세스할 수 없습니다.에이전트는 느슨하게 결합되어 있으며(즉 에이전트 간의 의존관계 수가 최소화됨), 메모리와 같은 리소스를 공유하지 않습니다(C# 및 유사한 언어의 공유 메모리 모델과 달리). 대신 메시지 전달 모델이 사용됩니다.[3]에이전트를 조정하거나 에이전트가 다른 리소스를 요구하도록 하려면 명시적 메시지를 에이전트에 전송해야 합니다.Axum은 이를 촉진하기 위한 채널을 제공합니다.
채널은 에이전트인스턴스 간에 통신하기 위한 방향 경로로 간주할 수 있습니다.Channel 객체의 멤버 함수는 에이전트인스턴스에 바인드된 후 통신에 사용할 수 있습니다.채널에는 입력 포트와 출력 포트가 있습니다.이 포트는 에이전트에 데이터를 전송하거나 에이전트로부터 데이터를 수신하기 위해 사용되는 큐입니다.에이전트 간의 통신을 조정하기 위해 Axum은 각 채널이 통신을 위한 사용자 정의 프로토콜을 가질 수 있도록 합니다.프로토콜은 상태 [5]시스템으로 정의됩니다.채널을 통해 전송되는 데이터는 선택적으로 사전 정의된 특정 스키마에 적합하도록 제한할 수 있습니다.컴파일러와 런타임은 [6]스키마와의 적합성을 강제합니다.후드 아래에서 스키마는 시리얼화 가능한 것으로 변환됩니다.속성 및 부작용이 없는 [7]메서드만 포함하는 NET 클래스.
Axum 프로젝트는 Microsoft Visual Studio와의 [8]통합을 통해 프로토타입의 상태에 도달했습니다.마이크로소프트는 Axum의 CTP를 [9]일반에 공개했지만, 그 이후 이 기능은 삭제되었다.마이크로소프트는 Axum을 [2]프로젝트로 만들지 않기로 결정했지만, Axum의 배후에 있는 아이디어 중 일부는 의 TPL Dataflow에서 사용되고 있습니다.넷 4.5
레퍼런스
- ^ 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.
- ^ 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.