4 research outputs found
A Polymorphic RPC Calculus
The RPC calculus is a simple semantic foundation for multi-tier programming
languages such as Links in which located functions can be written for the
client-server model. Subsequently, the typed RPC calculus is designed to
capture the location information of functions by types and to drive location
type-directed slicing compilations. However, the use of locations is currently
limited to monomorphic ones, which is one of the gaps to overcome to put into
practice the theory of RPC calculi for client-server model. This paper proposes
a polymorphic RPC calculus to allow programmers to write succinct multi-tier
programs using polymorphic location constructs. Then the polymorphic multi-tier
programs can be automatically translated into programs only containing location
constants amenable to the existing slicing compilation methods. We formulate a
type system for the polymorphic RPC calculus, and prove its type soundness.
Also, we design a monomorphization translation together with proofs on its type
and semantic correctness for the translation.Comment: SBMF-Brazilian Symposium on Formal Methods 201
A Typed Slicing Compilation of the Polymorphic RPC Calculus
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 do so dynamically. We design a
type-based slicing compilation of the polymorphic RPC calculus into this CS
calculus, proving type and semantic correctness. We propose a method to erase
types unnecessary for execution but retaining locations at runtime by
translating the polymorphic CS calculus into an untyped CS calculus, proving
semantic correctness.Comment: A long version of PPDP 2021 (23rd International Symposium on
Principles and Practice of Declarative Programming