프로그램 변환을 이용한 병렬수행 컴비네이터의 생성

함수언어의 컴비네이터 리덕션을 위해서는 람다리프팅(lambda lifting)이 요구되며 컴비네이터의 리덕션 과정에서 동일한 작업의 중복수행을 방지하기 위하여 람다리프팅을 변형한 완전지연 람다리프팅 방법이 널리 사용되고 있다. 또한 병렬수행 환경에서 컴비네이터 내부에 내재될 수 있는 병렬성을 잃어버리지 않도록 순차컴비네이트(serial combinator) 개념이 도입되었다. 본 논문에서는 이러한 두가지 조건을 만족하는 컴비네이터 생성을 위해 프로그램 변환(program transformation)과 단순 람다리프팅(simple lambda lifting)으로 구성된 모듈화(modular)된 방법에 관하여 기술한다. 본 연구는 완전지연성을 위한 변환을 람다리프팅과정에서 분리해낸 Peyton Jones의 모듈화 완전지연 람다리프터로부터 착안하였다.