Changeset 6162e0e

Jul 28, 2016, 2:22:21 PM (5 years ago)
Aaron Moss <a3moss@…>
aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, with_gc

Add Proposal section to conclude Comp II draft

1 edited


  • doc/aaron_comp_II/comp_II.tex

    r95330f5 r6162e0e  
     365Baker\cite{Baker82} discussed various expression resolution algorithms that could handle name overloading, but left experimental comparison of those algorithms to future work; Bilson\cite{Bilson03} described one extension of Baker's algorithm to handle implicit conversions, but did not fully explore the space of algorithmic approaches to handle both overloaded names and implicit conversions.
     366This project is intended to experimentally test a number of expression resolution algorithms which are powerful enough to handle the \CFA type system, including both name overloading and implicit conversions.
     367This comparison will close Baker's open research question, as well as potentially improving on Bilson's \CFA compiler.
     369Rather than testing all of these algorithms in-place in the \CFA compiler, a resolver prototype will be developed which acts on a simplified input language encapsulating the essential details of the \CFA type system\footnote{Note that this simplified input language is not required to be a usable programming language.}.
     370Multiple variants of this resolver prototype will be implemented, each encapsulating a different expression resolution variant, sharing as much code as feasible.
     371These variants will be instrumented to test runtime performance, and run on a variety of input files; the input files may be generated programmatically or from exisiting code in \CFA or similar languages.
     372These experimental results will allow the research team to determine the algorithm likely to be most performant in practical use, and replace {CFA-CC}'s existing expression resolver with that code.
     373The experimental results will also provide some empirical sense of the compile-time cost of various language features by comparing the results of the most performant resolver variant that supports the feature with the most performant resolver variant that doesn't, a useful capability to guide language design.
    368 \section{Completion Timeline}\label{app:completion}
     376\section{Completion Timeline}
    369377The following is a preliminary estimate of the time necessary to complete the major components of this research project:
    371379\begin{tabular}{ | r @{--} l | p{4in} | }
    372380\hline       May 2015 & April 2016   & Project familiarization and generic types design \& implementation. \\
    373 \hline       May 2016 & April 2017   & Design \& implement prototype resolver and run performance experiments. \\
     381\hline       May 2016 & April 2017   & Design \& implement resolver prototype and run performance experiments. \\
    374382\hline       May 2017 & August 2017  & Integrate new language features and best-performing resolver prototype into {CFA-CC}. \\
    375383\hline September 2017 & January 2018 & Thesis writing \& defense. \\
Note: See TracChangeset for help on using the changeset viewer.