A Path to DOT: Formalizing Scala with Dependent Object Types
dc.contributor.author | Rapoport, Marianna | |
dc.date.accessioned | 2019-12-13T19:34:15Z | |
dc.date.available | 2019-12-13T19:34:15Z | |
dc.date.issued | 2019-12-13 | |
dc.date.submitted | 2019-11-11 | |
dc.description.abstract | The goal of my thesis is to enable formal reasoning about the Scala programming language. To that end I present a core calculus that formalizes Scala's i) essential features in a ii) type-safe way and is iii) easy to extend with more features. I build on the Dependent Object Types (DOT) calculus that formalizes path-dependent types. My contributions are i) a generalization of DOT with types that depend on paths of arbitrary length, ii) a simple, extensible type-safety proof for DOT, and iii) an extension of DOT with mutable references. The simple proof makes designing smaller extensions such as mutation straightforward, and larger extensions, such as full support for paths, approachable. Adding fully path-dependent types to DOT allows us to model the key feature of Scala's type and module system. The calculi and proofs presented in my thesis are fully mechanized in Coq. | en |
dc.identifier.uri | http://hdl.handle.net/10012/15322 | |
dc.language.iso | en | en |
dc.pending | false | |
dc.publisher | University of Waterloo | en |
dc.relation.uri | https://amaurremi.github.io/dot-calculus/ | en |
dc.subject | Coq | en |
dc.subject | DOT | en |
dc.subject | programming languages | en |
dc.subject | Scala | en |
dc.subject | type safety | en |
dc.subject | type systems | en |
dc.title | A Path to DOT: Formalizing Scala with Dependent Object Types | en |
dc.type | Doctoral Thesis | en |
uws-etd.degree | Doctor of Philosophy | en |
uws-etd.degree.department | David R. Cheriton School of Computer Science | en |
uws-etd.degree.discipline | Computer Science | en |
uws-etd.degree.grantor | University of Waterloo | en |
uws.contributor.advisor | Lhoták, Ondřej | |
uws.contributor.affiliation1 | Faculty of Mathematics | en |
uws.peerReviewStatus | Unreviewed | en |
uws.published.city | Waterloo | en |
uws.published.country | Canada | en |
uws.published.province | Ontario | en |
uws.scholarLevel | Graduate | en |
uws.typeOfResource | Text | en |