비평가인자 함수 언어는 비평가인자 어의로 인하여 기존의 von Neumann 형 병렬기계에서 효율적인 수행을 어렵게 하는 미세수준의 동적 스케쥴링과 동기화가 필요하다. 비평가인자 함수 프로그램을 번역할 때 순차적으로 수행될 부분을 찾아 이들을 하나의 스케쥴링 단위로 병합하는 과정이 중요하다. 이러한 과정을 스레드 분할이라 한다. 본 논문에서는 비평가인자 함수 프로그램을 스레드로 분할하는 자료형 분리집합 분할이라는 스레드 분할 알고리즘을 제안한다. 자료형 분리 집합 분할 알고리즘은 자료형을 비교할 수 없는 입력명과 출력명사이에는 잠재 간접 종속이 존재할 수 없다는 사실을 이용하여 스레드 분할을 수행한다. 이 방법을 사용하면 기존의 스레드 분할 방법에서 실패하는 스레드의 병합이 가능하며, 기존의 분할 알고리즘보다 더 큰 스레드를 생성할 수 있다.
The semantics of non-strict functional languages require fine-grain dynamic scheduling and synchronization, making an efficient implementation on conventional parallel machine difficult. In compiling these languages, the most important step is to extract the sequentially executable portions of a program and to group them into a scheduling unit. This process is called partitioning. In this paper, we propose Typed Separation Set Partitioning algorithm for partitioning non-strict functional programs into threads using type information of input names and output names. Any input cannot be indirectly dependent on outputs whose types are incompatible to those of inputs. This algorithm can generate the longer threads than other partitioning algorithms can do.