Results 1 -
3 of
3
Semantics for communication primitives in a polymorphic language
- In Proc. 20th ACM Symp. on Principles of Programming Languages
, 1993
"... 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 de nable in ML to be used remotely in a manner completely transparent to the programmer. Furthermore ..."
Abstract
-
Cited by 35 (7 self)
- Add to MetaCart
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 de nable in ML to be used remotely in a manner completely transparent to the programmer. Furthermore, communicating programs may be based on di erent architecture and use di erent data representations. We de ne 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 de ne 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 the core language.
Polymorphic Type Inference and Semi-Unification
, 1989
"... In the last ten years declaration-free programming languages with a polymorphic typing discipline (ML, B) have been developed to approximate the flexibility and conciseness of dynamically typed languages (LISP, SETL) while retaining the safety and execution efficiency of conventional statically type ..."
Abstract
-
Cited by 21 (2 self)
- Add to MetaCart
In the last ten years declaration-free programming languages with a polymorphic typing discipline (ML, B) have been developed to approximate the flexibility and conciseness of dynamically typed languages (LISP, SETL) while retaining the safety and execution efficiency of conventional statically typed languages (Algol68, Pascal). These polymorphic languages can be type checked at compile time, yet allow functions whose arguments range over a variety of types. We investigate several polymorphic type systems, the most powerful of which, termed Milner-Mycroft Calculus, extends the so-called let-polymorphism found in, e.g., ML with a polymorphic typing rule for recursive definitions. We show that semi-unification, the problem of solving inequalities over firstorder terms, characterizes type checking in the Milner-Mycroft Calculus to polynomial time, even in the restricted case where nested definitions are disallowed. This permits us to extend some infeasibility results for related combinato...
LEAP: A Language with Eval And Polymorphism
"... We describe the core of a new strongly-typed functional programming language called LEAP, a \Language with Eval And Polymorphism. " Pure LEAP is an extension of the!-order polymorphic-calculus (F!) by global de nitions that allows the representation of programs and the de nition of versions of reify ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
We describe the core of a new strongly-typed functional programming language called LEAP, a \Language with Eval And Polymorphism. " Pure LEAP is an extension of the!-order polymorphic-calculus (F!) by global de nitions that allows the representation of programs and the de nition of versions of reify, reflect, and eval for all of F!. Pure LEAP is therefore highly re exive and strongly typed. We believe that Pure LEAP can be extended to a practical and e cient metalanguage in the ML tradition. At present we are experimenting with a prototype implementation of Pure LEAP. 1

