Changeset ce00317
- Timestamp:
- Aug 27, 2018, 6:18:18 PM (6 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
- Children:
- 514247d
- Parents:
- 62e782e
- Location:
- doc/theses/aaron_moss/phd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/aaron_moss/phd/aaron-thesis.bib
r62e782e rce00317 36 36 } 37 37 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 38 51 @mastersthesis{Delisle18, 39 52 author = {Thierry Delisle }, … … 65 78 note = {Accepted, to appear}, 66 79 } 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 1 1 \chapter{Background} 2 2 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. 4 To 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 6 The 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. 7 Building 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. 8 This 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 10 The \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. 11 As 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{}. 12 Notable 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.