University of Waterloo COVID-19 update

Please see the University of Waterloo’s frequently asked questions for information about COVID-19 and how it has affected university operations.

Please visit the list of modified services if you have questions about university services.

Although the University of Waterloo is closed for in-person events until further notice, many virtual events and presentations of interest to computer scientists are taking place each week at the Cheriton School of Computer Science. Please check out what our students and faculty are doing.

PhD Defence • Programming Languages — A Path to DOT: Formalizing Scala with Dependent Object TypesExport this event to calendar

Monday, November 11, 2019 — 1:30 PM EST

Marianna Rapoport, PhD candidate
David R. Cheriton School of Computer Science

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 

  • essential features in a
  • type-safe way and is
  • easy to extend with more features.

I build on the Dependent Object Types (DOT) calculus that formalizes path-dependent types. My contributions are

  • a generalization of DOT with types that depend on paths of arbitrary length,
  • simple, extensible type-safety proof for DOT, and
  • 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.

Location 
DC - William G. Davis Computer Research Centre
2314
200 University Avenue West

Waterloo, ON N2L 3G1
Canada

S M T W T F S
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
  1. 2020 (105)
    1. June (4)
    2. May (17)
    3. April (20)
    4. March (17)
    5. February (25)
    6. January (22)
  2. 2019 (255)
    1. December (21)
    2. November (25)
    3. October (16)
    4. September (20)
    5. August (18)
    6. July (12)
    7. June (23)
    8. May (23)
    9. April (32)
    10. March (25)
    11. February (16)
    12. January (24)
  3. 2018 (220)
  4. 2017 (36)
  5. 2016 (21)
  6. 2015 (36)
  7. 2014 (33)
  8. 2013 (23)
  9. 2012 (4)
  10. 2011 (1)
  11. 2010 (1)
  12. 2009 (1)
  13. 2008 (1)