프로그램유도 컴비네이터를 이용하는 함수프로그램의 포로세스망 구성

Functional Programs as Process Networks using Program-derived Combinators

  • 신승철 (동양대학교 컴퓨터공학부) ;
  • 유원희 (인하대학교 전자계산공학과)
  • 발행 : 1996.05.01

초록

병렬 구문을 갖지 않는 함수 프로그램의 병렬 수행을 위해 람다 계산 해석법(λ- calculus encoding)이 도입되었고 이것은 함수 프로그램을 프로세스 계산(process calculus) 을 이용하여 프로세스망으로 구성하고 프로세스간의 통신 행위에 의해 결과를 얻는 새로운 계산 모델에서 사용될 수 있다. 그러나 람다 계산 해석 법은 상수식 조차도 너무 많은 통신 행위를 야기시키는 문제가 지적되어 왔다. 본 논문은병렬 구문을 갖지 않는 컴비네이터 프로그램을 위한 해석법을 제안한다. 또 이것은 프로세스망 리덕션을 결합할 수 있도록 계산 프로세스인 초어 프로세스(chore process ; chore)를 도입한다. 초어는 지역 그래프 리덕션이 가능한 상수식을 위한 그래프 리덕션 함수를 포함할 수 있으며 초어 프로세스의 생성은 주어진 컴비네이터 프로그램에 대한 표식과 변환에 의해 추출되는 컴비네이터 적용식을 포함하지 않는 G-감축가능한 (G-reducible) 부분식으로부터 이루어진다. 본 논문은 이러한 초어 프로세스를 포함하는 해석법으로 생성된 프로세스망이 초어를 갖지 않는 것보다 더 적은 통신 행위의 회수를 발생한다는 것을 보인다.

For parallel implementations of functional programs without concurrent primitives, the λ-calculus encodings have been introduced. A functional program may be trans for med into a process network using process calculiby the λ-calculus encoding and there sult of a program can be obtained by a deal of communication actions in it's process network. But the λ-calculus encodings cause too many communication actions even in constant expressions. This paper shows the encoding for a combinator program without concurrency primitives which can combine the graph reduction and the process-net reduction using computable processes,'chores'. A 'chore' may have graph reduction functions for primitive operations of constants for which local graph reduction may be possible, and be encoded from a 'G-reducible' subexpression which is obtained by an annotation and trans for mati-on for a combinator program, assuring that it does not include any combinator application. Also, we show that a process network with chores raises less commu-nication actions than one without chores.

키워드