The paper introduces a call-by-value linear lambda calculus with multi-level contexts, where contextual values (closing arbitrary terms over a series of variables) may be boxed and transmitted in messages. Once received, a contextual value can be unboxed and locally applied before being run.
The key highlights and insights are:
Metaprogramming allows for the generation and evaluation of code at runtime, which can be used to explore the availability of certain arguments to functions and save computational effort.
Session types provide a way to discipline concurrent computations by accurately describing protocols for the channels used to exchange messages between processes.
The integration of session types with metaprogramming enables the setup of code-producing servers that can provide code on demand, exchanged on typed channels.
The authors extend a simple model of contextual modal type theory with support for linear types, resulting in a call-by-value linear lambda calculus with multi-level contexts.
They then sketch how to extend this language with support for concurrency and session types, allowing for the implementation of examples where servers prepare and ship code on demand via session typed messages.
The type system proposed is deliberately non-algorithmic, but the authors believe that standard techniques, such as an explicitly typed and level-annotated syntax and having the typing rules "return" the unused part of the context, would lead to algorithmic type checking.
In eine andere Sprache
aus dem Quellinhalt
arxiv.org
Tiefere Fragen