Thu 20 Jul 2023 11:30 - 11:45 at Habib Classroom (Gates G01) - ECOOP 4: Types Chair(s): Giorgio Audrito

In most programming languages a (runtime) environment stores all the definitions that are available to programmers. Typically, environments are a meta-level notion, used only conceptually or internally in the implementation of programming languages. Only a few programming languages allow environments to be first-class values, which can be manipulated directly in programs. Although there is some research on calculi with first-class environments for statically typed programming languages, these calculi typically have significant restrictions.

In this paper we propose a statically typed calculus, called Ei, with first-class environments. The main novelty of the Ei calculus is its support for first-class environments, together with an expressive set of operators that manipulate them. Such operators include: reification of the current environment, environment concatenation, environment restriction, and reflection mechanisms for running computations under a given environment. In Ei any type can act as a context (i.e. an environment type) and contexts are simply types. Furthermore, because Ei supports subtyping, there is a natural notion of context subtyping. There are two important ideas in Ei that generalize and are inspired by existing notions in the literature. The Ei calculus borrows disjoint intersection types and a merge operator, used in Ei to model contexts and environments, from the λi calculus. However, unlike the merges in λi, the merges in Ei can depend on previous components of a merge. From implicit calculi, the Ei calculus borrows the notion of a query, which allows type-based lookups on environments. In particular, queries are key to the ability of Ei to reify the current environment, or some parts of it. We prove the determinism and type soundness of Ei, and show that Ei can encode all well-typed λi programs.

Thu 20 Jul

Displayed time zone: Pacific Time (US & Canada) change

10:30 - 12:00
ECOOP 4: TypesResearch Papers at Habib Classroom (Gates G01)
Chair(s): Giorgio Audrito Università di Torino
10:30
15m
Talk
Python Type Hints are Turing Complete
Research Papers
Ori Roth Technion
DOI
10:45
15m
Talk
Restrictable Variants: A Simple and Practical Alternative to Extensible Variants
Research Papers
Magnus Madsen Aarhus University, Jonathan Lindegaard Starup Aarhus University, Matthew Lutze Aarhus University
DOI
11:00
15m
Talk
Modular Compilation for Higher-order Functional Choreographies
Research Papers
Luís Cruz-Filipe University of Southern Denmark, Eva Graversen University of Southern Denmark, Lovro Lugović University of Southern Denmark, Fabrizio Montesi University of Southern Denmark, Marco Peressotti University of Southern Denmark
DOI
11:15
15m
Talk
Programming with Purity Reflection: Peaceful Coexistence of Effects, Laziness, and Parallelism
Research Papers
Magnus Madsen Aarhus University, Jaco van de Pol Aarhus University
DOI
11:30
15m
Talk
Dependent Merges and First-Class Environments
Research Papers
Jinhao Tan University of Hong Kong, Bruno C. d. S. Oliveira University of Hong Kong
DOI
11:45
15m
Talk
super-Charging Object-Oriented Programming Through Precise Typing of Open Recursion
Research Papers
Andong Fan The Hong Kong University of Science and Technology, Lionel Parreaux HKUST (The Hong Kong University of Science and Technology)
DOI