skip to main content
10.1145/3103111.3104036acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Mutable WadlerFest DOT

Published: 18 June 2017 Publication History

Abstract

The Dependent Object Types (DOT) calculus aims to model the essence of Scala, with a focus on abstract type members, path-dependent types, and subtyping. Other Scala features could be defined by translation to DOT.
Mutation is a fundamental feature of Scala currently missing in DOT. Mutation in DOT is needed not only to model effectful computation and mutation in Scala programs, but even to precisely specify how Scala initializes immutable variables and fields (vals).
We present an extension to DOT that adds typed mutable reference cells. We have proven the extension sound with a mechanized proof in Coq. We present the key features of our extended calculus and its soundness proof, and discuss the challenges that we encountered in our search for a sound design and the alternative solutions that we considered.

References

[1]
Nada Amin. 2016. Soundness issue with path-dependent type on null path. https://issues.scala-lang.org/browse/SI-9633. (2016).
[2]
Nada Amin, Samuel Grütter, Martin Odersky, Tiark Rompf, and Sandro Stucki. 2016. The Essence of Dependent Object Types. In A List of Successes That Can Change the World - Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday. 249--272.
[3]
Nada Amin, Adriaan Moors, and Martin Odersky. 2012. Dependent Object Types. In FOOL 2012.
[4]
Nada Amin and Tiark Rompf. 2017. Type soundness proofs with definitional interpreters. In POPL 2017. 666--679.
[5]
Nada Amin, Tiark Rompf, and Martin Odersky. 2014. Foundations of path-dependent types. In OOPSLA 2014. 233--249.
[6]
Nada Amin and Ross Tate. 2016. Java and Scala's type systems are unsound: the existential crisis of null pointers. In OOPSLA 2016. 838--848.
[7]
Vincent Cremet, François Garillot, Sergueï Lenglet, and Martin Odersky. 2006. A Core Calculus for Scala Type Checking. In MFCS 2006. 1--23.
[8]
Atsushi Igarashi, Benjamin C. Pierce, and Philip Wadler. 2001. Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans. Program. Lang. Syst. 23, 3 (2001), 396--450.
[9]
Julian Mackay, Hannes Mehnert, Alex Potanin, Lindsay Groves, and Nicholas Robert Cameron. 2012. Encoding Featherweight Java with assignment and immutability using the Coq proof assistant. In FTfJP 2012. 11--19.
[10]
Adriaan Moors, Frank Piessens, and Martin Odersky. 2008. Safe type-level abstraction in Scala. In FOOL 2008.
[11]
Martin Odersky. 2016. Scaling DOT to Scala --- Soundness. http://www.scala-lang.org/blog/2016/02/17/scaling-dot-soundness.html. (2016).
[12]
Martin Odersky, Vincent Cremet, Christine Röckl, and Matthias Zenger. 2003. A Nominal Theory of Objects with Dependent Types. In ECOOP 2003. 201--224.
[13]
Dimitry Petrashko. 2016. Making Sense of Initialization Order in Scala. https://d-d.me/talks/scalar2016/. (2016).
[14]
Benjamin C. Pierce. 2002. Types and Programming Languages.
[15]
Marianna Rapoport and Ondřej Lhoták. 2016. Mutable WadlerFest DOT. (2016). http://arxiv.org/abs/1611.07610
[16]
Tiark Rompf and Nada Amin. 2015. From F to DOT: Type Soundness Proofs with Definitional Interpreters. (2015). http://arxiv.org/abs/1510.05216v1
[17]
Tiark Rompf and Nada Amin. 2016a. From F to DOT: Type Soundness Proofs with Definitional Interpreters. (2016). http://arxiv.org/abs/1510.05216v2
[18]
Tiark Rompf and Nada Amin. 2016b. Type soundness for dependent object types (DOT). In OOPSLA 2016. 624--641.
[19]
Andrew K. Wright and Matthias Felleisen. 1994. A Syntactic Approach to Type Soundness. Inf. Comput. 115, 1 (1994), 38--94.

Cited By

View all
  • (2018)κDOT: scaling DOT with mutation and constructorsProceedings of the 9th ACM SIGPLAN International Symposium on Scala10.1145/3241653.3241659(40-50)Online publication date: 17-Sep-2018
  • (2017)A simple soundness proof for dependent object typesProceedings of the ACM on Programming Languages10.1145/31338701:OOPSLA(1-27)Online publication date: 12-Oct-2017

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
FTFJP'17: Proceedings of the 19th Workshop on Formal Techniques for Java-like Programs
June 2017
49 pages
ISBN:9781450350983
DOI:10.1145/3103111
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 June 2017

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

ECOOP '17

Acceptance Rates

FTFJP'17 Paper Acceptance Rate 10 of 12 submissions, 83%;
Overall Acceptance Rate 51 of 75 submissions, 68%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2018)κDOT: scaling DOT with mutation and constructorsProceedings of the 9th ACM SIGPLAN International Symposium on Scala10.1145/3241653.3241659(40-50)Online publication date: 17-Sep-2018
  • (2017)A simple soundness proof for dependent object typesProceedings of the ACM on Programming Languages10.1145/31338701:OOPSLA(1-27)Online publication date: 12-Oct-2017

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media