C∀ Type System Implementation

dc.contributor.authorMoss, Aaron
dc.date.accessioned2019-04-30T15:31:24Z
dc.date.available2019-04-30T15:31:24Z
dc.date.issued2019-04-30
dc.date.submitted2019-04-25
dc.description.abstractThe 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. C∀, extended and refined in this thesis, presents both an independently interesting combination of language features and a comprehensive approach to the modernization of C. This work demonstrates the hitherto unproven compiler-implementation viability of the C∀ language design, and provides a number of useful tools to implementors of other languages.en
dc.identifier.urihttp://hdl.handle.net/10012/14584
dc.language.isoenen
dc.pendingfalse
dc.publisherUniversity of Waterlooen
dc.subjectprogramming languagesen
dc.subjecttype inferenceen
dc.subjectC languageen
dc.subjectpolymorphismen
dc.subjectgeneric typesen
dc.subjectexpression resolutionen
dc.subjecttype environmenten
dc.subjectunion-finden
dc.subjectname overloadingen
dc.subjectcompiler constructionen
dc.subjectC∀en
dc.titleC∀ Type System Implementationen
dc.typeDoctoral Thesisen
uws-etd.degreeDoctor of Philosophyen
uws-etd.degree.departmentDavid R. Cheriton School of Computer Scienceen
uws-etd.degree.disciplineComputer Scienceen
uws-etd.degree.grantorUniversity of Waterlooen
uws.contributor.advisorBuhr, Peter
uws.contributor.affiliation1Faculty of Mathematicsen
uws.peerReviewStatusUnrevieweden
uws.published.cityWaterlooen
uws.published.countryCanadaen
uws.published.provinceOntarioen
uws.scholarLevelGraduateen
uws.typeOfResourceTexten

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Moss_Aaron.pdf
Size:
1.22 MB
Format:
Adobe Portable Document Format
Description:

License bundle

Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
6.08 KB
Format:
Item-specific license agreed upon to submission
Description: