Lune

OOPSLA2020顶会

ιDOT: a DOT calculus with object initialization

Ifaz Kabir, Yufeng Li, Ondrej Lhoták

2020年份
3被引次数
1顶会引用

摘要

The Dependent Object Types (DOT) calculus serves as a foundation of the Scala programming language, with a machine-verified soundness proof. However, Scala's type system has been shown to be unsound due to null references, which are used as default values of fields of objects before they have been initialized. This paper proposes 𝜄DOT, an extension of DOT for ensuring safe initialization of objects. DOT was previously extended to 𝜅DOT with the addition of mutable fields and constructors. To 𝜅DOT, 𝜄DOT adds an initialization effect system that statically prevents the possibility of reading a null reference from an uninitialized object. To design 𝜄DOT, we have reformulated the Freedom Before Commitment object initialization scheme in terms of disjoint subheaps to make it easier to formalize in an effect system and prove sound. Soundness of 𝜄DOT depends on the interplay of three systems of rules: a type system close to that of DOT, an effect system to ensure definite assignment of fields in each constructor, and an initialization system that tracks the initialization status of objects in a stack of subheaps. We have proven the overall system sound and verified the soundness proof using the Coq proof assistant.

CCS Concepts: • Software and its engineering → Formal language definitions; Object oriented languages.

问问这篇 Paper

智能体会读完全文。

Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。

可以从这些问题问起

智能体调用

Luneget_paper_fulltext

在 Lune 里问

免费开始,无需绑卡

引用它的顶会 Paper1

问问它们各自怎么用它

相关 Paper

黄昏的海面,两侧是细线勾勒的悬崖