Changeset 8f55e8e9
- Timestamp:
- Apr 20, 2019, 9:40:54 PM (6 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- cf01d0b
- Parents:
- 2834e99
- Location:
- doc
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified doc/bibliography/pl.bib ¶
r2834e99 r8f55e8e9 1259 1259 number = 11, 1260 1260 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}, 1261 1280 } 1262 1281 … … 4269 4288 } 4270 4289 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 4271 4312 @article{Sundell08, 4272 4313 keywords = {lock free, deque}, -
TabularUnified doc/theses/aaron_moss_PhD/phd/conclusion.tex ¶
r2834e99 r8f55e8e9 12 12 The 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. 13 13 An 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 15 More generally, the algorithmic techniques described in this thesis may be useful to implementors of other programming languages. 16 In 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. 17 The \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. -
TabularUnified doc/theses/aaron_moss_PhD/phd/experiments.tex ¶
r2834e99 r8f55e8e9 7 7 8 8 \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.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. 10 10 \CFACC{} is also instrumented to produce a number of code metrics. 11 11 These 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. … … 98 98 \item[Basic] (\textsc{bas}) Bilson-style type environment with hash-based equivalence class storage, as discussed in Section~\ref{naive-env-sec}. 99 99 \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$ descen tfrom 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. 101 101 \end{description} 102 102 \end{description}
Note: See TracChangeset
for help on using the changeset viewer.