Type-safe higher-order channels with channel locality1

  • Authors:
  • Sungwoo Park;Hyeonseung Im

  • Affiliations:
  • Department of computer science and engineering, pohang university of science and technology, republic of korea (e-mail: gla@postech.ac.kr, genilhs@postech.ac.kr);Department of computer science and engineering, pohang university of science and technology, republic of korea (e-mail: gla@postech.ac.kr, genilhs@postech.ac.kr)

  • Venue:
  • Journal of Functional Programming
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

As a means of transmitting not only data but also code encapsulated within functions, higher-order channels provide an advanced form of task parallelism in parallel computations. In the presence of mutable references, however, they pose a safety problem because references may be transmitted to remote threads where they are no longer valid. This paper presents an ML-like parallel language with type-safe higher-order channels. By type safety, we mean that no value written to a channel contains references, or equivalently, that no reference escapes via a channel from the thread where it is created. The type system uses a typing judgment that is capable of deciding whether the value to which a term evaluates contains references or not. The use of such a typing judgment also makes it easy to achieve another desirable feature of channels, channel locality, that associates every channel with a unique thread for serving all values addressed to it. Our type system permits mutable references in sequential computations and also ensures that mutable references never interfere with parallel computations. Thus, it provides both flexibility in sequential programming and ease of implementing parallel computations.