데이타 병렬성과 고수준 병행제어 표현을 위한 Compositional C++언어의 확장 및 구현

병렬성과 객체 지향적인 프로그램의 작성이 모두 가능한 CC++ (Compositional C++) 언어는 몇 개의 병렬 구문 구조만을 가지고 널리 사용되는 C++ 언어를 확장하였기 때문에, 비교적 쉽게 병렬 프로그램을 작성할 수 있다. 그러나, 이 언어는 기본적으로 태스크 병렬성을 추구하도록 설계된 언어이기 때문에 이 언어를 이용하여 데이타 병렬적인 문제나 혹은 복잡한 병행 수행 제어를 필요로 하는 프로그램을 작성하기는 어렵다는 문제점을 가지고 있다. 본 논문에서는 CC++ 언어의 이런 문제점을 해결하기 위하여, 데이타 병렬성을 자연스럽게 표한할 수 있고, 사용자가 원하는 부분의 병행 수행 제어를 조절할 수 있도록 CC++ 언어를 확장하였고 실제로 구현하였다. 본 논문에서 제안한 확장에서는 데이타 병렬성의 표현을 위해서 Data_Parallel_Base라는 built-in 클래스를 정의하고, 데이타 병렬성을 표현하고자 할 때 이 클래스를 상속받음으로써 데이타 병렬성을 표현할 수 있게 하였다. 또한, 사용자가 원하는 부분의 병행수행 제어를 조절할 수 있게 하기 위하여, 고수준 병행수행 제어 도구인 semaphore와 monitor를 built-in 클래스로 제공하였으며, 이들의 인스턴스들을 사용자가 정의 또는 상속함으로써 병행수행 제어를 쉽게 표현할 수 있게 하였다. 이런 확장은 CC++의 원래 목적인 태스크 병렬성뿐만 아니라 데이타 병렬성 및 병행 수행 제어를 쉽게 표현할 수 있도록 하여주기 때문에 CC++ 언어가 더 많은 응용분야에서 사용될 수 있도록 할 수 있을 것이다.