Type Resolution in C∀
No Thumbnail Available
Date
2025-05-21
Authors
Advisor
Buhr, Peter
Journal Title
Journal ISSN
Volume Title
Publisher
University of Waterloo
Abstract
C∀ (C-for-all) is an evolutionary extension of the C programming language, which introduces many modern programming language features to C.
C∀ has a type system built around parametric polymorphism, and the polymorphic functions are prefixed by a "forall" declaration of type parameters, giving the language its name.
This thesis presents a series of work I did on type resolution in C∀.
Every function, including the built-in C operators, can be overloaded in C∀, therefore resolving function overloads and generic type parameters is at the heart of C∀ expression analysis.
This thesis focuses on the interactions of various C∀ language features such as reference and generic types in type resolution, analyzes the known issues and presents improvements to the type system that fix several of the problems.
Ideas for future work are also given for further improving the consistency of the C∀ type-system at a language design level.
Description
Keywords
programming language, C∀, compiler, type system, polymorphism