결합계산
Join-calculus![]() |
결합 계산은 IRIA에서 개발된 과정 미적분입니다.join-calculus는 분산 프로그래밍 언어의 설계에 대한 형식적인 기초를 제공하기 위해 개발되었으며, 따라서 분산 [1]환경에서 구현하기 어려운 랑데부 통신과 같은 다른 프로세스 계산에서 발견되는 통신 구조를 의도적으로 피한다.이 제한에도 불구하고 join-calculus는 완전한 "calculus"와 같이 표현됩니다.결합계산에서의 θ-calculus 부호화 및 그 반대의 부호화가 [2]실증되었습니다.
join-calculus는 프로세스 계산의 "calculus" 패밀리의 멤버이며, 그 핵심에는 다음과 같은 강력한 [3]제한이 있는 비동기 "calculus"로 간주할 수 있습니다.
- 범위 제한, 수신 및 복제된 수신이 하나의 구조(정의)로 구문적으로 병합됩니다.
- 정의된 이름에 대해서만 통신이 이루어집니다.
- 정의되어 있는 이름마다, 정확하게 1개의 수신이 복제됩니다.
단, join-calculus는 프로그래밍 언어로서 "calculus"보다 적어도1개의 편리함을 제공합니다.즉, 멀티웨이 조인 패턴을 사용하여 여러 채널에서 온 메시지와 동시에 대조할 수 있습니다.
실장
결합 계산에 기초한 언어
join-calculus 프로그래밍 언어는 join-calculus 프로세스 미적분을 기반으로 하는 새로운 언어입니다.OCaml로 기술된 인터프리터로 구현되며 정적 유형의 분산 프로그래밍, 투과적 원격 통신,[4] 에이전트 기반 모빌리티 및 일부 장애 검출을 지원합니다.
- 명시적으로 join-calculus에 근거하고 있는 것은 아니지만, CLIP의 규칙 시스템은 트리거되었을 때 모든 규칙이 해당 입력을 삭제했을 때 이를 구현합니다(실행되었을 때 관련 사실을 되돌립니다).
join-calculus의 많은 구현은 기존 프로그래밍 언어의 확장으로 이루어졌다.
- JoCaml은 join-calculus primitive를 사용하여 확장된 OCaml 버전입니다.
- Polyphonic C#과 그 후속 C'는 C#을 확장합니다.
- MC# 및 병렬 C# 확장 폴리폰 C#
- Join Java는 Java를 확장합니다.
- Join-calculus를 사용하는 동시 기본 제안
- Jerrlang(J는 Join, erjang은 JVM의 [5]Erlang)
다른 프로그래밍 언어로 임베딩
이러한 구현은 기본 프로그래밍 언어를 변경하지 않고 커스텀 라이브러리 또는 DSL을 통한 결합 미적분 연산을 도입합니다.
- ScalaJoins 및 Chymyst 라이브러리는 Scala에 있습니다.
- Einar Karttunen의 JoinHs와 Samuel Yallop의 syallop/Join-Language는 Haskell의 Join 미적분용 DSL입니다.
- Joinads - F#에서 join 미적분의 다양한 구현
- Coco Join은 iOS 및 Mac OS X용 Objective-C의 시험 구현입니다.
- Join Python 라이브러리는 Python 3에 있습니다.
- 부스트를 통한 C[6]++ (2009년 대 40년 이후 부스트의 경우, 현재(1919년 12월)는 72).
레퍼런스
- ^ Cedric Fournet, Georges Gonthier (1995). "The reflexive CHAM and the join-calculus".
{{cite journal}}
: 일기 요구(도움말), 1페이지 - ^ Cedric Fournet, Georges Gonthier (1995). "The reflexive CHAM and the join-calculus".
{{cite journal}}
: 일기 요구(도움말), 2페이지 - ^ Cedric Fournet, Georges Gonthier (1995). "The reflexive CHAM and the join-calculus".
{{cite journal}}
: 인용 저널 요구(도움말), 19페이지 - ^ Cedric Fournet, Georges Gonthier (2000). "The Join Calculus: A Language for Distributed Mobile Programming": 268–332.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "JErlang: Erlang with Joins". Archived from the original on 2017-12-08. Retrieved 2015-04-18.
- ^ Yigong Liu - Join-Asynchronous Message Coordination and Concurrency Library (비동기 메시지 참여 및 동시성 라이브러리)
외부 링크
- INRIA, 가입 미적분 홈페이지
- 마이크로소프트 리서치, 조인 미적분: 분산 모바일 프로그래밍용 언어