Changeset 62e782e


Ignore:
Timestamp:
Aug 27, 2018, 5:30:25 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:
ce00317
Parents:
2a9d12d
Message:

Initial draft of thesis introduction

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

Legend:

Unmodified
Added
Removed
  • doc/theses/aaron_moss/phd/Makefile

    r2a9d12d r62e782e  
    66AUX = ${BASE}.aux ${BASE}.bbl ${BASE}.blg ${BASE}.log ${BASE}.out ${BASE}.toc
    77
    8 .PHONY : all rebuild-refs clean
     8SOURCES = ${addsuffix .tex, \
     9thesis \
     10frontpgs \
     11introduction \
     12background \
     13type-environment \
     14resolution-heuristics \
     15conclusion \
     16}
     17
     18.PHONY : all rebuild-refs clean wc
    919
    1020all : ${DOCUMENT}
     
    1323        @rm -frv ${DOCUMENT} ${AUX}
    1424
    15 ${DOCUMENT} :
     25wc :
     26        wc ${SOURCES}
     27
     28${DOCUMENT} : ${SOURCES}
    1629        ${LATEX} ${BASE}
    1730        ${LATEX} ${BASE}
    1831
    19 rebuild-refs :
     32rebuild-refs : ${SOURCES} aaron-thesis.bib
    2033        ${LATEX} ${BASE}
    2134        ${BIBTEX} ${BASE}
  • doc/theses/aaron_moss/phd/aaron-thesis.bib

    r2a9d12d r62e782e  
    3636}
    3737
     38@mastersthesis{Delisle18,
     39    author      = {Thierry Delisle },
     40    title       = {Concurrency in \textsf{C}$\mathbf{\forall}$},
     41    school      = {School of Computer Science, University of Waterloo},
     42    year        = 2018,
     43    address     = {Waterloo, Ontario, Canada, N2L 3G1},
     44    note        = {\href{https://uwspace.uwaterloo.ca/handle/10012/12888}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-12888}},
     45}
     46
    3847@phdthesis{Ditchfield92,
    3948    keywords    = {C, parametric polymorphism, overloading},
  • doc/theses/aaron_moss/phd/generic-types.tex

    r2a9d12d r62e782e  
    11\chapter{Generic Types}
     2\label{generic-chap}
    23
    34Talk about generic types. Pull from Moss~\etal\cite{Moss18}.
  • doc/theses/aaron_moss/phd/introduction.tex

    r2a9d12d r62e782e  
    11\chapter{Introduction}
    22
    3 This is the introduction.
     3\CFA{}\footnote{Pronounced ``C-for-all'', and written \CFA{} or \CFL{}.} is an evolutionary modernization of the C programming language.
     4\CFA{} both fixes existing design problems and adds multiple new features to C, including name overloading, user-defined operators, parametric-polymorphic routines, and type constructors and destructors, among others.
     5The new features make \CFA{} more powerful and expressive than C, but impose a compile-time cost, particularly in the expression resolver, which must evaluate the typing rules of a significantly more complex type-system.
     6
     7This thesis is focused on making \CFA{} a more powerful and expressive language, both by adding new features to the \CFA{} type system and ensuring that both added and existing features can be efficiently implemented in \CFACC{}, the \CFA{} reference compiler.
     8Particular contributions of this work include design and implementation of
     9parametric-polymorphic (``generic'') types in a manner compatible with the existing polymorphism design of \CFA{} (Chapter~\ref{generic-chap}), a type environment data structure based on a novel variant of the union-find algorithm (Chapter~\ref{env-chap}), and a new expression resolution algorithm designed to quickly locate the optimal declarations for a \CFA{} declaration (Chapter~\ref{resolution-chap}).
     10This expression resolution algorithm was designed with the aid of a purpose-built prototype system which encapsulates the essential aspects of the \CFA{} type system without incurring the technical debt of the existing system or the friction-inducing necessity of maintaining a working compiler; the goal of this prototype system was to discover effective heuristics to avoid performing unnecessary work in the process of locating the optimal \CFA{} expression resolution.
     11
     12Though the direction and validation of this work was fairly narrowly focused on the \CFA{} programming language, the tools used and results obtained should be of interest to a wider compiler and programming language design community.
     13In particular, with the addition of \emph{concepts} in \CCtwenty{}, conforming \CC{} compilers must support a model of type assertions very similar to that in \CFA{}, and the algorithmic techniques used in the expression resolution algorithm presented here may prove useful.
     14Type environments are also widely modelled in compiler implementations, particularly of functional languages, though also increasingly commonly in other languages (such as Rust) which also perform type inference; the type environment presented here may be useful to those language implementers.
  • doc/theses/aaron_moss/phd/macros.tex

    r2a9d12d r62e782e  
    33
    44\newcommand{\CFAIcon}{\textsf{C}\raisebox{\depth}{\rotatebox{180}{\textsf{A}}}} % Cforall symbolic name
    5 \newcommand{\CFA}{\protect\CFAIcon}             % safe for section/caption
     5\newcommand{\CFA}{\protect\CFAIcon}     % safe for section/caption
     6\newcommand{\CFL}{\textrm{Cforall}} % Cforall symbolic name
     7\newcommand{\CFACC}{\texttt{cfa-cc}} % Cforall compiler
     8\newcommand{\Celeven}{\textrm{C11}} % C11 symbolic name
     9\newcommand{\CC}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}} % C++ symbolic name
     10\newcommand{\CCeleven}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}11} % C++11 symbolic name
     11\newcommand{\CCfourteen}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}14} % C++14 symbolic name
     12\newcommand{\CCseventeen}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}17} % C++17 symbolic name
     13\newcommand{\CCtwenty}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}20} % C++20 symbolic name
    614
    715\newcommand{\ie}{\textit{i.e.}}
  • doc/theses/aaron_moss/phd/resolution-heuristics.tex

    r2a9d12d r62e782e  
    11\chapter{Resolution Heuristics}
     2\label{resolution-chap}
    23
    34Talk about the resolution heuristics. This is the bulk of the thesis.
  • doc/theses/aaron_moss/phd/type-environment.tex

    r2a9d12d r62e782e  
    11\chapter{Type Environment}
     2\label{env-chap}
    23
    34Talk about the type environment data structure. Pull from your presentation.
Note: See TracChangeset for help on using the changeset viewer.