PhD Defence • Programming Languages — C∀ Type System ImplementationExport this event to calendar

Monday, April 22, 2019 — 10:00 AM EDT

Aaron Moss, PhD candidate
David R. Cheriton School of Computer Science

The C programming language has been an important software development tool for decades. C∀ is a new programming language designed with strong backwards-compatibility to take advantage of widely distributed C programming expertise and the large deployed base of C code, paired with modern language features to improve developer productivity.

This thesis presents a number of improvements to C∀. The author has developed one major new language feature, generic types, in a way that integrates naturally with both the existing polymorphism features of C∀ and the translation-unit-based encapsulation model of C. This thesis also presents a number of smaller refinements to the C∀ overload resolution rules, each of which improves the expressivity or intuitive nature of the language.

This thesis also includes a number of practical improvements to C∀ compilation performance, focused on the expression resolution pass, which is the main bottleneck. These include better algorithms for argument-parameter matching and type assertion satisfaction, as well as a new type-environment data-structure based on a novel variant of union-find. The compilation performance improvements have all been experimentally validated with a new prototype system that encapsulates the key aspects of the C∀ language; this prototype is a promising basis for future research and a technical contribution of this work.

Location 
DC - William G. Davis Computer Research Centre
3317
200 University Avenue West
Waterloo, ON N2L 3G1
Canada

S M T W T F S
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
  1. 2019 (123)
    1. June (4)
    2. May (22)
    3. April (32)
    4. March (25)
    5. February (16)
    6. January (24)
  2. 2018 (221)
    1. December (16)
    2. November (19)
    3. October (26)
    4. September (23)
    5. August (17)
    6. July (20)
    7. June (13)
    8. May (25)
    9. April (34)
    10. March (24)
    11. February (3)
    12. January (1)
  3. 2017 (36)
  4. 2016 (21)
  5. 2015 (36)
  6. 2014 (33)
  7. 2013 (23)
  8. 2012 (4)
  9. 2011 (1)
  10. 2010 (1)
  11. 2009 (1)
  12. 2008 (1)