Changeset 8adcfee


Ignore:
Timestamp:
Feb 22, 2019, 6:19:09 PM (6 years ago)
Author:
Aaron Moss <a3moss@…>
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:
11b3053
Parents:
d065ded
Message:

thesis: first draft of conclusion

Location:
doc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • doc/bibliography/pl.bib

    rd065ded r8adcfee  
    11321132    year        = 1998,
    11331133    note        = {{\small\textsf{ftp://\-plg.uwaterloo.ca/\-pub/\-Cforall/\-refrat.ps.gz}}},
     1134}
     1135
     1136@misc{Clang,
     1137    keywords = {clang},
     1138    contributer = {a3moss@uwaterloo.ca},
     1139    title = {Clang: a {C} language family frontend for {LLVM}},
     1140    howpublished = {href{https://clang.llvm.org/}{https://\-clang.llvm.org/}},
     1141    note = {Accessed 2019-02-22}
    11341142}
    11351143
  • doc/theses/aaron_moss_PhD/phd/conclusion.tex

    rd065ded r8adcfee  
    11\chapter{Conclusion}
    22
    3 Wrap it up --- Done, done done.
     3Decades after its first standardization, the C language remains a widely-used tool and a vital part of the software development landscape.
     4The \CFA{} language under development at the University of Waterloo represents an evolutionary modernization of C with expressive modern language features paired with strong C backwards-compatibility.
     5This thesis has contributed to those project goals in a variety of ways, including the addition of a generic types language feature (Chapter~\ref{generic-chap}) and refinement of the \CFA{} overload selection rules to produce a more expressive and intuitive model (Section~\ref{conv-cost-sec}).
     6Based on the technical contribution of the resolver prototype system (Section~\ref{rp-features-sec}), I have also made significant improvements to \CFA{} compilation performance, including un-combined bottom-up expression traversal (Section~\ref{arg-parm-matching-sec}), deferred-cached assertion satisfaction (Section~\ref{assn-sat-sec}), and a novel persistent union-find type environment data structure (Section~\ref{env-persistent-union-find}).
     7The combination of these practical improvements and added features significantly improve the viability of \CFA{} as a practical programming language.
     8
     9Further improvements to \CFA{} are still possible, however.
     10One area suggested by this work is development of a scheme for user-defined conversions; to integrate properly with the \CFA{} conversion model, there would need to be a distinction between safe and unsafe conversions, and possibly a way to denote conversions as explicit-only or non-chainable.
     11Another place for ongoing effort is improvement of compilation performance; I believe the most promising direction for that is rebuilding the \CFA{} compiler on a different framework than Bilson's \CFACC{}.
     12The resolver prototype presented in this work has good performance and already has the basics of \CFA{} semantics implemented, as well as many of the necessary core data structures, and would be a viable candidate for a new compiler architecture.
     13An alternate approach would be to fork an existing C compiler such as Clang~\cite{Clang}, which would need to be modified to use one of the resolution algorithms discussed here, as well as various other features introduced by Bilson~\cite{Bilson03}.
Note: See TracChangeset for help on using the changeset viewer.