Changeset 70eaa80b
- Timestamp:
- Apr 23, 2019, 11:28:34 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:
- 6eed619
- Parents:
- 3b40801b
- Location:
- doc
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/bibliography/pl.bib
r3b40801b r70eaa80b 7627 7627 } 7628 7628 7629 @misc{Java-diamond,7630 keywords = {Java, diamond inference},7631 contributer = {a3moss@uwaterloo.ca},7632 author = {Oracle Corporation},7633 title = {Type Inference for Generic Instance Creation},7634 year = 2019,7635 howpublished= {\href{https://docs.oracle.com/javase/8/docs/technotes/guides/language/type-inference-generic-instance-creation.html}7636 {https://docs.oracle.com/\-javase/\-8/\-docs/\-technotes/\-guides/\-language/\-type-inference-generic-instance-creation.html}},7637 optnote = {Accessed: 2019-04},7638 }7639 7640 7629 % U 7641 7630 -
doc/theses/aaron_moss_PhD/phd/introduction.tex
r3b40801b r70eaa80b 45 45 In particular, with the addition of \emph{concepts} in \CCtwenty{}~\cite{C++Concepts}, conforming \CC{} compilers must support a model of type assertions very similar to that in \CFA{}, and the algorithmic techniques used here may prove useful. 46 46 \cbstart 47 Much of the difficulty of type-checking \CFA{} stems from the language design choice to allow type inference from the context of a function call in addition to its arguments; this feature allows the programmers to specify fewer redundant type annotations on functions which are polymorphic in their return type. 48 Java's diamond type-inference operator~\cite{Java-diamond} and the !auto! keyword in \CCeleven{} support similar but sharply restricted forms of this contextual inference -- the demonstration of the richer inference in \CFA{} raises possibilities for similar features in future versions of these languages. 49 Scala~\cite{Scala}, by contrast, already supports a similarly-powerful \emph{local type inference} model~\cite{Pierce00,Odersky01}, so the algorithmic techniques in this thesis may be effective for Scala compiler implementors. 50 \cbend 47 Much of the difficulty of type-checking \CFA{} stems from the language design choice to allow type inference from the context of a function call in addition to its arguments; this feature allows the programmers to specify fewer redundant type annotations on functions which are polymorphic in their return type. 48 \cbend \cbstartx 49 The !auto! keyword in \CCeleven{} supports a similar but sharply restricted form of this contextual inference -- the demonstration of the richer inference in \CFA{} raises possibilities for similar features in future versions of \CC{}. 50 By contrast, Java~8~\cite{Java8} and Scala~\cite{Scala} use comparably powerful forms of type inference, so the algorithmic techniques in this thesis may be effective for those languages' compiler implementors. 51 \cbendx 51 52 Type environments are also widely modelled in compiler implementations, particularly for functional languages, though also increasingly commonly for other languages (such as Rust~\cite{Rust}) which perform type inference; the type environment presented here may be useful to those language implementors. -
doc/theses/aaron_moss_PhD/phd/thesis.tex
r3b40801b r70eaa80b 34 34 \usepackage[color]{changebar} 35 35 \cbcolor{blue} 36 \newcommand{\cbstartx}{\cbcolor{red} \cbstart} 37 \newcommand{\cbendx}{\cbend \cbcolor{blue}} 36 38 37 39 % Hyperlinks make it very easy to navigate an electronic document.
Note: See TracChangeset
for help on using the changeset viewer.