TL;DR
This paper introduces a typed slicing compilation for the polymorphic RPC calculus, enabling static and dynamic resolution of polymorphic locations and providing an implementation with proven correctness.
Contribution
It develops a type-based slicing compilation translating the polymorphic RPC calculus into a typed Client-Server calculus with correctness guarantees.
Findings
Successfully resolves polymorphic locations both statically and dynamically.
Proves type and semantic correctness of the compilation.
Provides an implementation of the polymorphic RPC calculus.
Abstract
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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
