Type-Preserving Compilation of Class-Based Languages

07/09/2023
by   Guillaume Martres, et al.
0

The Dependent Object Type (DOT) calculus was designed to put Scala on a sound basis, but while DOT relies on structural subtyping, Scala is a fundamentally class-based language. This impedance mismatch means that a proof of DOT soundness by itself is not enough to declare a particular subset of the language as sound. While a few examples of Scala snippets have been manually translated into DOT, no systematic compilation scheme has been presented so far. In this thesis we develop a series of calculi of increasing complexity to model Scala and present a type-preserving compilation scheme from each of these calculus into DOT. Along the way, we develop some necessary extensions to DOT.

READ FULL TEXT

page 3

page 35

page 36

research
04/15/2022

Formalizing φ-calculus: a purely object-oriented calculus of decorated objects

Many calculi exist for modelling various features of object-oriented lan...
research
08/13/2018

A prototype-based approach to object reclassification

We investigate, in the context of functional prototype-based lan- guages...
research
10/30/2018

Dynamic Type Inference for Gradual Hindley--Milner Typing

Garcia and Cimini study a type inference problem for the ITGL, an implic...
research
10/23/2020

Proof-theoretic aspects of NLλ

We present a proof-theoretic analysis of the logic NLλ (Barker & Shan 20...
research
10/31/2017

Proving Soundness of Extensional Normal-Form Bisimilarities

Normal-form bisimilarity is a simple, easy-to-use behavioral equivalence...
research
12/28/2021

From Semantics to Types: the Case of the Imperative lambda-Calculus

We propose an intersection type system for an imperative lambda-calculus...
research
04/15/2019

A Path To DOT: Formalizing Fully-Path-Dependent Types

The Dependent Object Types (DOT) calculus aims to formalize the Scala pr...

Please sign up or login with your details

Forgot password? Click here to reset