Changeset 8f55e8e9


Ignore:
Timestamp:
Apr 20, 2019, 9:40:54 PM (2 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr
Children:
cf01d0b
Parents:
2834e99
Message:

thesis: comment on general applications in conclusion, per Gregor

Location:
doc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • doc/bibliography/pl.bib

    r2834e99 r8f55e8e9  
    12591259    number      = 11,
    12601260    pages       = {853-860},
     1261}
     1262
     1263@inproceedings{Odersky01,
     1264 keywords = {Scala},
     1265 contributer = {a3moss@uwaterloo.ca},
     1266 author = {Odersky, Martin and Zenger, Christoph and Zenger, Matthias},
     1267 title = {Colored Local Type Inference},
     1268 booktitle = {Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
     1269 series = {POPL '01},
     1270 year = {2001},
     1271 isbn = {1-58113-336-7},
     1272 location = {London, United Kingdom},
     1273 pages = {41--53},
     1274 numpages = {13},
     1275 url = {http://doi.acm.org/10.1145/360204.360207},
     1276 doi = {10.1145/360204.360207},
     1277 acmid = {360207},
     1278 publisher = {ACM},
     1279 address = {New York, NY, USA},
    12611280}
    12621281
     
    42694288}
    42704289
     4290@article{Pierce00,
     4291 keywords = {Scala},
     4292 contributer = {a3moss@uwaterloo.ca},
     4293 author = {Pierce, Benjamin C. and Turner, David N.},
     4294 title = {Local Type Inference},
     4295 journal = {ACM Trans. Program. Lang. Syst.},
     4296 issue_date = {Jan. 2000},
     4297 volume = {22},
     4298 number = {1},
     4299 month = jan,
     4300 year = {2000},
     4301 issn = {0164-0925},
     4302 pages = {1--44},
     4303 numpages = {44},
     4304 url = {http://doi.acm.org/10.1145/345099.345100},
     4305 doi = {10.1145/345099.345100},
     4306 acmid = {345100},
     4307 publisher = {ACM},
     4308 address = {New York, NY, USA},
     4309 keywords = {polymorphism, subtyping, type inference},
     4310}
     4311
    42714312@article{Sundell08,
    42724313    keywords    = {lock free, deque},
  • doc/theses/aaron_moss_PhD/phd/conclusion.tex

    r2834e99 r8f55e8e9  
    1212The 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.
    1313An 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}.
     14
     15More generally, the algorithmic techniques described in this thesis may be useful to implementors of other programming languages.
     16In particular, the demonstration of practical performance for polymorphic return-type inference suggests the possibility of eliding return-type-only template parameters in \CC{} function calls, though integrating such an extension into \CC{} expression resolution in a backwards-compatible manner may be challenging.
     17The \CFA{} expression resolution problem also bears some similarity to the \emph{local type inference} model put forward by Pierce \& Turner \cite{Pierce00} and Odersky \etal{} \cite{Odersky01}; compiler implementors for languages such as Scala \cite{Scala} that perform type inference based on this model may be able to profitably adapt the algorithms and data structures presented in this thesis.
  • doc/theses/aaron_moss_PhD/phd/experiments.tex

    r2834e99 r8f55e8e9  
    77
    88\CFACC{} can generate realistic test inputs for the resolver prototype from equivalent \CFA{} code;
    9 the generated test inputs currently comprise all \CFA{} code currently in existence, $9,000$ lines drawn primarily from the standard library and compiler test suite.
     9the generated test inputs currently comprise all \CFA{} code currently in existence, 9,000 lines drawn primarily from the standard library and compiler test suite.
    1010\CFACC{} is also instrumented to produce a number of code metrics.
    1111These metrics were used to construct synthetic test inputs during development of the resolver prototype; these synthetic inputs provided useful design guidance, but the performance results presented in this chapter are based on the more realistic directly-generated inputs.
     
    9898                \item[Basic] (\textsc{bas}) Bilson-style type environment with hash-based equivalence class storage, as discussed in Section~\ref{naive-env-sec}.
    9999                \item[Incremental Inheritance] (\textsc{inc}) Incremental-inheritance variant sharing unmodified common parent information among environments, as discussed in Section~\ref{inc-env-sec}.
    100                 \item[Persistent union-find] (\textsc{per}) Union-find-based environment, using the persistent variant discussed in Section~\ref{env-persistent-union-find} for backtracking and combination. This variant requires that all pairs of type arguments used as arguments to $combine$ descent from a common root environment; this requirement is incompatible with the caching used in the top-down traversal direction, and thus no \textsc{td-*-per} algorithms are tested.
     100                \item[Persistent union-find] (\textsc{per}) Union-find-based environment, using the persistent variant discussed in Section~\ref{env-persistent-union-find} for backtracking and combination. This variant requires that all pairs of type arguments used as arguments to $combine$ descend from a common root environment; this requirement is incompatible with the caching used in the top-down traversal direction, and thus no \textsc{td-*-per} algorithms are tested.
    101101        \end{description}
    102102\end{description}
Note: See TracChangeset for help on using the changeset viewer.