An Efficient Compilation Framework For Parallel Programming Languages Based On A Concurrent Process Calculus

Saved in:
Bibliographic Details
Title: An Efficient Compilation Framework For Parallel Programming Languages Based On A Concurrent Process Calculus
Authors: Yoshihiro Oyama
Contributors: The Pennsylvania State University CiteSeerX Archives
Source: ftp://ftp.yl.is.s.u-tokyo.ac.jp/pub/papers/oyama-master-thesis-a4.ps.gz
Publication Year: 1998
Collection: CiteSeerX
Description: This thesis proposes a framework for compiling programming languages based on concurrent process calculi, in which computation is expressed by a combination of dynamically created processes and first-class channels. Our framework is based on a compile-time process scheduling and unboxed channels. The compile-time scheduling enables us to execute multiple concurrent processes without a scheduling pool operation. Unboxed channels allow us to create a channel without memory allocations and to communicate values on registers. These techniques correctly implement the semantics of first-class channels that appear in concurrent process calculi such as ß- calculus and HACL, and they are powerful in optimizing the performance in common programming idioms. In particular, a frequent idiom in which we create a new channel, create a pair of sender and receiver process which communicate via the new channel is likely to be performed without actually heap-allocating the channel. The framework is give.
Document Type: text
File Description: application/postscript
Language: English
Relation: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.45.5585
Availability: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.45.5585
Rights: Metadata may be used without restrictions as long as the oai identifier remains attached to it.
Accession Number: edsbas.3AB2A0E
Database: BASE
Description
Abstract:This thesis proposes a framework for compiling programming languages based on concurrent process calculi, in which computation is expressed by a combination of dynamically created processes and first-class channels. Our framework is based on a compile-time process scheduling and unboxed channels. The compile-time scheduling enables us to execute multiple concurrent processes without a scheduling pool operation. Unboxed channels allow us to create a channel without memory allocations and to communicate values on registers. These techniques correctly implement the semantics of first-class channels that appear in concurrent process calculi such as ß- calculus and HACL, and they are powerful in optimizing the performance in common programming idioms. In particular, a frequent idiom in which we create a new channel, create a pair of sender and receiver process which communicate via the new channel is likely to be performed without actually heap-allocating the channel. The framework is give.