Changeset 11b3053
- Timestamp:
- Feb 22, 2019, 6:51:09 PM (6 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 1b1a8da, b7175721
- Parents:
- 8adcfee
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/aaron_moss_PhD/phd/frontpgs.tex
r8adcfee r11b3053 124 124 \begin{center}\textbf{Abstract}\end{center} 125 125 126 This is the abstract. 126 The C programming language has been an important software development tool for decades. 127 \CFA{} 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. 128 129 This thesis presents a number of improvements to \CFA{}. 130 The author has developed one major new language feature, generic types, in a way that integrates naturally with both the existing polymorphism features of \CFA{} and the translation-unit-based encapsulation model of C. 131 This thesis also presents a number of smaller refinements to the \CFA{} overload resolution rules, each of which improves the expressivity or intuitive nature of the language. 132 133 This thesis also includes a number of practical improvements to \CFA{} compilation performance, focused on the expression resolution pass which is the main bottleneck. 134 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. 135 The compilation performance improvements have all been experimentally validated with a new prototype system which encapsulates the key aspects of the \CFA{} language; this prototype is a promising basis for future research, and is a technical contribution of this work. 127 136 128 137 \cleardoublepage
Note: See TracChangeset
for help on using the changeset viewer.