Type Resolution in C∀

No Thumbnail Available

Date

2025-05-21

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

LC Subject Headings

Citation