Actions
shareshare link cite add Please grant OpenAIRE to access and update your ORCID works.This Research product is the result of merged Research products in OpenAIRE.
You have already added 0 works in your ORCID record related to the merged Research product.
See an issue? Give us feedback
Please grant OpenAIRE to access and update your ORCID works.
This Research product is the result of merged Research products in OpenAIRE.
You have already added 0 works in your ORCID record related to the merged Research product.
You have already added 0 works in your ORCID record related to the merged Research product.
Research software . Software . 2019
A Path to DOT: Formalizing Fully Path-Dependent Types (Artifact)
Rapoport, Marianna; Lhoták, Ondřej;
Rapoport, Marianna; Lhoták, Ondřej;
Open Access
Published: 05 Jul 2019
Publisher: Zenodo
Abstract
This is the artifact for our OOPSLA'19 paper that presents pDOT, a generalization of the Dependent Object Types calculus with support for paths of arbitrary length. This artifact contains the type soundness proof of pDOT mechanized in Coq. Paper abstract: The Dependent Object Types (DOT) calculus aims to formalize the Scala programming language with a focus on path-dependent types — types such as \(x.a_1\dots a_n.T\) that depend on the runtime value of a path \(x.a_1 \dots a_n\) to an object. Unfortunately, existing formulations of DOT can model only types of the form \(x.A\) which depend on variables rather than general paths. This restriction makes it impossible to model nested module dependencies. Nesting small components inside larger ones is a necessary ingredient of a modular, scalable language. DOT's variable restriction thus undermines its ability to fully formalize a variety of programming-language features including Scala's module system, family polymorphism, and covariant specialization. This paper presents the pDOT calculus, which generalizes DOT to support types that depend on paths of arbitrary length, as well as singleton types to track path equality. We show that naive approaches to add paths to DOT make it inherently unsound, and present necessary conditions for such a calculus to be sound. We discuss the key changes necessary to adapt the techniques of the DOT soundness proofs so that they can be applied to pDOT. Our paper comes with a Coq-mechanized type-safety proof of pDOT. With support for paths of arbitrary length, pDOT can realize DOT's full potential for formalizing Scala-like calculi.
Subjects by Vocabulary
arXiv: Computer Science::Programming Languages
ACM Computing Classification System: TheoryofComputation_LOGICSANDMEANINGSOFPROGRAMS
Subjects
Scala, DOT, type systems, type safety, Coq
Scala, DOT, type systems, type safety, Coq
arXiv: Computer Science::Programming Languages
ACM Computing Classification System: TheoryofComputation_LOGICSANDMEANINGSOFPROGRAMS
See an issue? Give us feedback
Download fromView all 2 sources
https://doi.org/10.5281/zenodo...
Software . 2019
License: https://opensource.org/licenses/MIT
Providers: Datacite
Do the share buttons not appear? Please make sure, any blocking addon is disabled, and then reload the page.