Changeset 70eaa80b


Ignore:
Timestamp:
Apr 23, 2019, 11:28:34 PM (5 years ago)
Author:
Aaron Moss <a3moss@…>
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
Message:

thesis: update discussion of Java type inference

Location:
doc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • doc/bibliography/pl.bib

    r3b40801b r70eaa80b  
    76277627}
    76287628
    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 
    76407629% U
    76417630
  • doc/theses/aaron_moss_PhD/phd/introduction.tex

    r3b40801b r70eaa80b  
    4545In 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.
    4646\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
     47Much 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
     49The !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{}.
     50By 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
    5152Type 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  
    3434\usepackage[color]{changebar}
    3535\cbcolor{blue}
     36\newcommand{\cbstartx}{\cbcolor{red} \cbstart}
     37\newcommand{\cbendx}{\cbend \cbcolor{blue}}
    3638
    3739% Hyperlinks make it very easy to navigate an electronic document.
Note: See TracChangeset for help on using the changeset viewer.