Changeset 5ca1766


Ignore:
Timestamp:
Apr 10, 2025, 12:11:05 PM (5 months ago)
Author:
Fangren Yu <f37yu@…>
Branches:
master
Children:
28182444
Parents:
7e4f226
Message:

conclusion of thesis

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/fangren_yu_MMath/conclusion.tex

    r7e4f226 r5ca1766  
    11\chapter{Conclusion}
    22
    3 The goal of this thesis is to ...
     3In the past few years of development, \CFA has gone from a proof-of-concept prototype to an actual experimental language, with a few medium-sized projects written completely in \CFA included in the language's library.
     4Many of the works done in this thesis are motivated by real needs arising from the development and testing of these projects, which often pushes the limits of \CFA's type system and compiler capabilities. While most of the previous \CFA language feature and compiler developments were done either in isolation or with limited testing, getting them to work together and with real projects present new challenges, a lot of which are unforseen before development and testing started.
    45
     6This work aims to identify and fix the practical issues of multiple \CFA type system features and their interactions. In particular, the inclusion of reference types, tuple types and generic structs together with rich overloading in the language makes the complexity of expression resolution much higher in \CFA. Significant reworks in abstract syntax-tree representations and resolution algorithms are done to push the \CFA compilation time down to a practical level. The expression cost system is also revised multiple times to make overload selection more predictable and match programmer's intuition in majority of cases, although some fundamental problems still remain and fixing them will require some changes to the language from the ground up.
     7
     8As per \CFA project's motto of "describe not prescribe," \CFA type system is designed to have a lot of flexibility and gives programmers great deal of freedom in the usage of overloading and polymorphism. With such a complex type system, it is very difficult (sometimes even impossible) to try to have the compiler accept all kinds of valid \CFA programs. The \CFA programming language is still far from complete, and we will aim to expand \CFA compiler's type resolution capability while maintaining decent compile-time and run-time performance. Some theoretical insights of parametric polymorphism coming from functional programming also prove to be useful.
Note: See TracChangeset for help on using the changeset viewer.