Semantics for Communication Primitives in a Polymorphic Language

We propose a method to extend an ML-style polymorphic language with transparent communication primitives, and give their precise operational semantics. These primitives allow any polymorphic programs definable in ML to be used remotely in a manner completely transparent to the programmer. Furthermor...

Full description

Bibliographic Details
Main Authors: Atsushi Ohori, Kazuhiko Kato
Other Authors: The Pennsylvania State University CiteSeerX Archives
Format: Text
Language:English
Published: ACM Press 1993
Subjects:
DML
Online Access:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.796
http://www.osss.is.tsukuba.ac.jp/~kato/files/93popl.ps.gz
Description
Summary:We propose a method to extend an ML-style polymorphic language with transparent communication primitives, and give their precise operational semantics. These primitives allow any polymorphic programs definable in ML to be used remotely in a manner completely transparent to the programmer. Furthermore, communicating programs may be based on different architecture and use different data representations. We define a polymorphic functional calculus with transparent communication primitives, which we call dML, as an extension of Damas and Milner's proof system for ML. We then develop an algorithm to translate dML to a "core" language containing only low-level communication primitives that are readily implementable in most of distributed environments. To establish the type safety of communicating programs, we define an operational semantics of the core language and prove that the polymorphic type system of dML is sound with respect to the operational semantics of the translated terms of th.