Changeset ce00317


Ignore:
Timestamp:
Aug 27, 2018, 6:18:18 PM (3 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer
Children:
514247d
Parents:
62e782e
Message:

Add history of CFA to thesis background

Location:
doc/theses/aaron_moss/phd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/aaron_moss/phd/aaron-thesis.bib

    r62e782e rce00317  
    3636}
    3737
     38@article{Buhr94a,
     39    keywords    = {assignment, parameter passing, multiple assignment},
     40    contributer = {pabuhr@plg},
     41    author      = {P. A. Buhr and David Till and C. R. Zarnke},
     42    title       = {Assignment as the Sole Means of Updating Objects},
     43    journal     = spe,
     44    month       = sep,
     45    year        = 1994,
     46    volume      = 24,
     47    number      = 9,
     48    pages       = {835-870},
     49}
     50
    3851@mastersthesis{Delisle18,
    3952    author      = {Thierry Delisle },
     
    6578    note        = {Accepted, to appear},
    6679}
     80
     81@mastersthesis{Schluntz17,
     82    keywords    = {constructors, destructors, tuples},
     83    author      = {Robert Schluntz},
     84    title       = {Resource Management and Tuples in \textsf{C}$\mathbf{\forall}$},
     85    school      = {School of Computer Science, University of Waterloo},
     86    year        = 2017,
     87    address     = {Waterloo, Ontario, Canada, N2L 3G1},
     88    note        = {\href{https://uwspace.uwaterloo.ca/handle/10012/11830}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-11830}},
     89}
  • doc/theses/aaron_moss/phd/background.tex

    r62e782e rce00317  
    11\chapter{Background}
    22
    3 This is the background. Basically, need to cite Ditchfield\cite{Ditchfield92}, Bilson\cite{Bilson03}, and Moss~\etal\cite{Moss18}
     3\CFA{} adds a number of features to C, some of them providing significant increases to the expressive power of the language, but all designed to maintain the existing procedural programming paradigm of C and to be as orthogonal as possible with each other.
     4To provide background for the contributions in subsequent chapters, this chapter provides a summary of the features of \CFA{} at the time this work was conducted.
     5
     6The core design of \CFA{} is laid out in Glen Ditchfield's 1992 PhD thesis, \emph{Contextual Polymorphism}\cite{Ditchfield92}; in that thesis, Ditchfield lays out the theoretical underpinnings of the \CFA{} polymorphism model.
     7Building on Ditchfield's design for contextual polymorphism as well as KW-C\cite{Buhr94a}, an earlier set of (largely syntactic) extensions to C, Richard Bilson\cite{Bilson03} built the first version of the \CFA{} compiler, \CFACC{}, in the early 2000's.
     8This early \CFACC{} provided basic functionality, but incorporated a number of poor algorithmic choices due to a rushed implementation time frame, and as such lacked the runtime performance required for practical use; this thesis is substantially concerned with rectifying those deficits.
     9
     10The \CFA{} project was revived in 2015 with the intention of building a production-ready language and compiler; at the time of this writing, both \CFA{} and \CFACC{} have been under active development continuously since.
     11As this development has been proceeding concurrently with the work described in this thesis, the state of \CFA{} has been somewhat of a moving target; however, Moss~\etal\cite{Moss18} provides a reasonable summary of the current design of \CFA{}.
     12Notable features added during this period include generic types[Chapter~\ref{generic-chap}], constructors and destructors\cite{Schluntz17}, improved support for tuples\cite{Schluntz17}, reference types\cite{Moss18}, first-class concurrent and parallel programming support\cite{Delisle18}, as well as numerous pieces of syntactic sugar and the start of an idiomatic standard library\cite{Moss18}.
     13
Note: See TracChangeset for help on using the changeset viewer.