자바 가입

Join Java
자바 가입
패러다임절차적, 반영적
설계자G. 스튜어트 폰 이츠슈타인
처음 등장한2000년(2000년)
웹 사이트joinjava.unisa.edu 를 참조해 주세요.au
영향을 받다
자바

Join Javajoin-calculus의 join 시멘틱스로 표준 Java 프로그래밍 언어를 확장하는 join-pattern 기반의 프로그래밍 언어입니다.이것은, South Australia University of South Australia 의 Reconfigurable Computing Lab 에서 Von Itzstein 박사에 의해서 작성되었습니다.

언어 특성

Join Java 확장에는 다음 3가지 새로운 언어 구조가 도입됩니다.

  • 결합 방식
  • 비동기 방식
  • 패턴이 일치하는 순서를 결정하는 순서 클래스 한정자

가장 인기 있는 프로그래밍 언어의 동시성은 세마포어나 모니터와 같은 구조를 사용하여 구현됩니다.라이브러리(Java 동시성 라이브러리 JSR-166 등)는 보다 높은 수준의 동시성 시멘틱스를 제공하는 새로운 라이브러리입니다.Communicating Sequential Processes(CSP), Mcountion of Communicating Systems(CCS) 및 Pi는 동시 프로세스 인터페이스에서의 이벤트 구성을 통해 암묵적으로 정의된 상위 수준의 동기화 동작을 가지고 있습니다.반면 결합 미적분에는 축소 규칙으로 정의된 이벤트의 현지화된 결합을 기반으로 명시적인 동기화가 있습니다.Join semantics는 프로세스와 채널의 동적 생성 및 파괴를 포함한 모듈화라는 객체 지향적 개념을 위반하지 않고 동기의 명시적 표현을 제공하려고 합니다.

Join Java 언어는 낮은 수준의 모니터 호출에 명시적으로 의존하지 않고 공개된 거의 모든 동시성 패턴을 표현할 수 있습니다.일반적으로 Join Java 프로그램은 Java 프로그램보다 더 간결합니다.Join 미적분으로부터 파생된 상위 수준의 식에 의해 Join Java에서 발생하는 오버헤드는 관리할 수 있습니다.보통 메서드 본문에 있는 모니터(대기 및 알림)와 관련된 동기화 표현은 메서드시그니처의 일부를 구성하는 Join Java 표현(Join 메서드)으로 대체할 수 있습니다.

결합 방식

Join 메서드는 2개 이상의 Join fragment에 의해 정의됩니다.Join 메서드는 Join 패턴의 모든 fragment가 호출되면 실행됩니다.반환 타입이 표준 Java 타입인 경우 선두 fragment는 Join 패턴이 완료되어 메서드가 실행될 때까지 발신자를 차단합니다.리턴 타입이 신호 타입일 경우 선행 fragment는 즉시 반환됩니다.후행 fragment는 모두 비동기이므로 발신자를 차단하지 않습니다.

예:

 학급 참가 예 {     인트 프래그먼트1() & 프래그먼트2(인트 x) {        //x 값이 반환됩니다.        //fragment1의 발신자에게        돌아가다 x;     }  } 

순서 수식자

Join fragment를 여러 Join 패턴으로 반복할 수 있으므로 fragment를 호출할 때 여러 Join 패턴이 완료될 수 있습니다.B(), C() 및 D()가 호출되면 다음 예에서 이러한 상황이 발생할 수 있습니다.마지막 A() fragment는 3개의 패턴을 완료하기 때문에 호출할 수 있는 메서드는 3가지가 있습니다.순서부여된 클래스 수식자는 호출할 Join 메서드를 결정하는 데 사용됩니다.디폴트 및 순서 없는 클래스 수식자는 임의의 메서드 중 하나를 선택하는 것입니다.순서가 지정된 수식자를 사용하면 선언된 순서에 따라 메서드가 우선됩니다.

예:

 학급 주문된 심플 조인 패턴 {     무효 A() & B() {     }     무효 A() & C() {     }     무효 A() & D() {     }     신호. D() & E() {     }  } 

비동기 방식

비동기 방식은 신호 반환 유형을 사용하여 정의됩니다.이는 메서드가 즉시 반환된다는 점을 제외하고는 void 유형과 동일한 특성을 가집니다.비동기 메서드가 호출되면 메서드의 본문을 실행하기 위해 새 스레드가 생성됩니다.

예:

 학급 스레드 예시 {     신호. (썸오브젝트 x) {        //이 코드는 새 스레드에서 실행됩니다.     }  } 

관련 언어

폴리폰 C 샤프는 가장 가까운 관련 언어입니다.
Polyphonic C sharp의 후속 제품인 C the.

하드웨어 Join Java 언어를 더욱 확장하여 하드웨어 의미론을 구현합니다.이 언어는 Join Java의 의미를 FPGA 애플리케이션으로 확장했습니다.

레퍼런스

  • 폰 이츠스타인, G, 스튜어트 그리고 자시우나스, M(2003)이다.Java에서의 높은 수준의 동시성 구현에 대해컴퓨터 시스템 아키텍처 2003, 아이즈 재팬, 스프링거 버락의 진보.
  • 폰 이츠스타인, G, 스튜어트, D.Kearney (2002).Join Java 어플리케이션제7회 아시아 태평양 컴퓨터 시스템 아키텍처 컨퍼런스 ACSAC'2002의 진행.멜버른, 호주, 호주 컴퓨터 협회: 1-20.
  • 폰 이츠스타인, G, 스튜어트, D.Kearney (2004년).Join Java의 공통 동시성 패턴 표현식입니다.라스베이거스 병렬 및 분산 처리 기술과 응용에 관한 국제 회의.
  • Hopf, J., von Itzstein, G, Stewart 등(2002).하드웨어 가입 Java: 재구성 가능한 하드웨어 개발을 위한 고급 언어.국제 필드 프로그래머블 테크놀로지 회의, 홍콩.

외부 링크