From e0a531a3a71081c23f5a08bb31b788af0331966f Mon Sep 17 00:00:00 2001 From: Andreas Stadelmeier Date: Thu, 27 Jun 2024 16:54:16 +0200 Subject: [PATCH] Add Matrix exampel --- aspUnify.tex | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/aspUnify.tex b/aspUnify.tex index a984922..155cc94 100644 --- a/aspUnify.tex +++ b/aspUnify.tex @@ -77,6 +77,48 @@ Java has adopted more and more type inference features over time. Currently Java only has local type inference. We want to bring type inference for Java to the next level. +Our type inference algorithm for Java should be able to retrieve missing type annotations +in a Java program. +The main difference from existing type inference algorithms for Java is that we also allow method types to be omitted in the input program. + +\begin{figure} +\begin{lstlisting} +public class Matrix extends Vector> { + + public Matrix(vv) { + Integer i; + i = 0; + while(i < vv.size()) { + this.add(vv.elementAt(i)); + i=i+1; + } + } + + public mul(m) { + var ret = new Matrix(); + var i = 0; + while(i < size()) { + var v1 = this.elementAt(i); + var v2 = new Vector(); + var j = 0; + while(j < v1.size()) { + var erg = 0; + var k = 0; + while(k < v1.size()) { + erg = erg + v1.get(k) + * m.get(k).get(j); + k++; } + v2.addElement(erg); + j++; } + ret.addElement(v2); + i++; + } + return ret; + } +} +\end{lstlisting} +\end{figure} + \section{Subtyping} \begin{mathpar} \inferrule[Refl]{}{