A Typed Slicing Compilation of the Polymorphic RPC calculus

  title={A Typed Slicing Compilation of the Polymorphic RPC calculus},
  author={Kwanghoon Choi and James Cheney and Sam Lindley and Bob Reynders},
  journal={23rd International Symposium on Principles and Practice of Declarative Programming},
The polymorphic RPC calculus allows programmers to write succinct multitier programs using polymorphic location constructs. However, until now it lacked an implementation. We develop an experimental programming language based on the polymorphic RPC calculus. We introduce a polymorphic Client-Server (CS) calculus with the client and server parts separated. In contrast to existing untyped CS calculi, our calculus is not only able to resolve polymorphic locations statically, but it is also able to… 

Figures from this paper



A Polymorphic RPC Calculus

Simple imperative polymorphism

A study of a number of ML programs shows that the inability to type all Hindley-Milner typable expressions seldom impacts realistic programs, so with a module system that separates specifications from implementations, imperative features can be freely used to implement polymorphic specifications.

Intensional polymorphism in type-erasure semantics

This work presents a type-theoretic framework that supports intensional polymorphism, but avoids many of the disadvantages of type passing, and allows unknown types to be refined in place thereby avoiding certain beta-expansions required by other frameworks.

Type-Safe Distributed Programming with ML5

The language allows an entire distributed application to be developed and reasoned about as a unified program, and its type system, based on modal logic, statically excludes programs that use mobile resources unsafely.

Tierless web programming in ML

Eliom is a dialect of OCaml for Web programming in which server and client pieces of code can be mixed in the same file using syntactic annotations that ensures that communications are well-behaved through novel language constructs that match the specificity of Web programming.

Eliom: A Core ML Language for Tierless Web Programming

Eliom is a dialect of OCaml for Web programming in which server and client pieces of code can be mixed in the same file using syntactic annotations. This allows to build a whole application as a

Eliom: tierless Web programming from the ground up

This work presents how the language extensions introduced by Eliom enable a new paradigm for Web programming, and how this paradigm allows building complex libraries easily, safely, and in a composable manner.

Compiling polymorphism using intensional type analysis

This paper examines an alternative approach for compiling polymorphism where types are passed as arguments to polymorphic routines in order to determine the representation of an object, and shows how to translate an ML-like language into the target language so that primitive operators can analyze types to produce efficient representations.

An optimizing compiler for a purely functional web-application language

A compiler that makes it possible to have most of the best of both worlds, coding Web applications in a high-level language but compiling to native code with performance comparable to handwritten C code.

A theory of RPC calculi for client–server model

This theory can improve the existing stateless server strategy to construct new state-encoding calculi that eliminate runtime checks on remote procedure calls present in the existing strategy, and it enables the design of a new mixed strategy that combines the benefits of both kinds of strategies.