\relax \providecommand*\new@tpo@label[2]{} \providecommand\babel@aux[2]{} \@nameuse{bbl@beforestart} \catcode `"\active \AC@reset@newl@bel \providecommand\hyper@newdestlabel[2]{} \providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToCoFields[2]{} \providecommand\BKM@entry[2]{} \abx@aux@refcontext{nty/global//global/global} \gdef \LT@i {\LT@entry {1}{247.62204pt}\LT@entry {1}{247.62204pt}} \providecommand\@newglossary[4]{} \@newglossary{main}{glg}{gls}{glo} \providecommand\@glsorder[1]{} \providecommand\@istfilename[1]{} \@istfilename{main.ist} \@glsorder{word} \babel@aux{ngerman}{} \BKM@entry{id=1,dest={636861707465722A2E33},srcline={3}}{5C3337365C3337375C303030415C303030625C3030306B5C3030305C3337345C303030725C3030307A5C303030755C3030306E5C303030675C303030735C303030765C303030655C303030725C3030307A5C303030655C303030695C303030635C303030685C3030306E5C303030695C30303073} \pp@pagectr{footnote}{1}{6}{V} \@writefile{toc}{\contentsline {chapter}{\nonumberline Abkürzungsverzeichnis}{V}{chapter*.3}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{lol}{\addvspace {10\p@ }} \newacro{Java-TX}[\AC@hyperlink{Java-TX}{Java-TX}]{Java-Type eXtended} \newacro{GNU}[\AC@hyperlink{GNU}{GNU}]{GNU's Not Unix} \newacro{JVM}[\AC@hyperlink{JVM}{JVM}]{Java Virtual Machine} \newacro{JDK}[\AC@hyperlink{JDK}{JDK}]{Java Development Kit} \newacro{WSL}[\AC@hyperlink{WSL}{WSL}]{Windows Subsystem for Linux} \newacro{IDE}[\AC@hyperlink{IDE}{IDE}]{Integrated Development Environment} \newacro{GCC}[\AC@hyperlink{GCC}{GCC}]{GNU Compiler Collection} \newacro{Bash}[\AC@hyperlink{Bash}{Bash}]{Bourne Again Shell} \BKM@entry{id=2,dest={636861707465722A2E34},srcline={66}}{5C3337365C3337375C303030415C303030625C303030625C303030695C3030306C5C303030645C303030755C3030306E5C303030675C303030735C303030765C303030655C303030725C3030307A5C303030655C303030695C303030635C303030685C3030306E5C303030695C30303073} \@writefile{toc}{\contentsline {chapter}{\nonumberline Abbildungsverzeichnis}{VI}{chapter*.4}\protected@file@percent } \AC@undonewlabel{acro:Java-TX} \newlabel{acro:Java-TX}{{}{VI}{\acronymsPhrase }{section*.5}{}} \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \BKM@entry{id=3,dest={636861707465722A2E36},srcline={70}}{5C3337365C3337375C303030545C303030615C303030625C303030655C3030306C5C3030306C5C303030655C3030306E5C303030765C303030655C303030725C3030307A5C303030655C303030695C303030635C303030685C3030306E5C303030695C30303073} \@writefile{toc}{\contentsline {chapter}{\nonumberline Tabellenverzeichnis}{VII}{chapter*.6}\protected@file@percent } \BKM@entry{id=4,dest={636861707465722A2E37},srcline={74}}{5C3337365C3337375C3030304C5C303030695C303030735C303030745C303030695C3030306E5C303030675C30303073} \@writefile{toc}{\contentsline {chapter}{\nonumberline Listings}{VIII}{chapter*.7}\protected@file@percent } \acronymused{Java-TX} \acronymused{Java-TX} \BKM@entry{id=5,dest={636861707465722E31},srcline={3}}{5C3337365C3337375C303030315C3030305C3034305C303030475C303030725C303030755C3030306E5C303030645C3030306C5C303030615C303030675C303030655C3030306E} \BKM@entry{id=6,dest={73656374696F6E2E312E31},srcline={7}}{5C3337365C3337375C303030315C3030302E5C303030315C3030305C3034305C303030545C303030795C303030705C303030695C3030306E5C303030665C303030655C303030725C303030655C3030306E5C3030307A5C3030305C3034305C303030695C3030306E5C3030305C3034305C3030304A5C303030615C303030765C30303061} \BKM@entry{id=7,dest={73756273656374696F6E2E312E312E31},srcline={10}}{5C3337365C3337375C303030315C3030302E5C303030315C3030302E5C303030315C3030305C3034305C303030545C303030795C303030705C303030695C3030306E5C303030665C303030655C303030725C303030655C3030306E5C3030307A5C3030305C3034305C303030625C303030655C303030695C3030305C3034305C303030675C303030655C3030306E5C303030655C303030725C303030695C303030735C303030635C303030685C303030655C3030306E5C3030305C3034305C3030304D5C303030655C303030745C303030685C3030306F5C303030645C303030655C3030306E} \abx@aux@cite{0}{buckley_java_2004} \abx@aux@segm{0}{0}{buckley_java_2004} \abx@aux@cite{0}{gosling_java_2005} \abx@aux@segm{0}{0}{gosling_java_2005} \pp@pagectr{footnote}{2}{11}{1} \@writefile{toc}{\contentsline {chapter}{\numberline {1}Grundlagen}{1}{chapter.1}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{lol}{\addvspace {10\p@ }} \acronymused{Java-TX} \@writefile{toc}{\contentsline {section}{\numberline {1.1}Typinferenz in Java}{1}{section.1.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {1.1.1}Typinferenz bei generischen Methoden}{1}{subsection.1.1.1}\protected@file@percent } \pp@pagectr{footnote}{3}{11}{1} \abx@aux@cite{0}{cimadamore_jep_2011} \abx@aux@segm{0}{0}{cimadamore_jep_2011} \abx@aux@cite{0}{cimadamore_jep_2011} \abx@aux@segm{0}{0}{cimadamore_jep_2011} \abx@aux@cite{0}{oracle_type_nodate} \abx@aux@segm{0}{0}{oracle_type_nodate} \abx@aux@cite{0}{oracle_type_nodate} \abx@aux@segm{0}{0}{oracle_type_nodate} \abx@aux@cite{0}{oracle_type_nodate} \abx@aux@segm{0}{0}{oracle_type_nodate} \BKM@entry{id=8,dest={73756273656374696F6E2E312E312E32},srcline={51}}{5C3337365C3337375C303030315C3030302E5C303030315C3030302E5C303030325C3030305C3034305C303030445C303030655C303030725C3030305C3034305C303030445C303030695C303030615C3030306D5C3030306F5C3030306E5C303030645C3030305C3034305C3030304F5C303030705C303030655C303030725C303030615C303030745C3030306F5C30303072} \abx@aux@cite{0}{darcy_java_2010} \abx@aux@segm{0}{0}{darcy_java_2010} \abx@aux@cite{0}{gosling_java_2014} \abx@aux@segm{0}{0}{gosling_java_2014} \newlabel{lst:list_of_type_explizit}{{1.1}{2}{List.of() mit explizitem Typ}{lstlisting.1.1}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.1}List.of() mit explizitem Typ}{2}{lstlisting.1.1}\protected@file@percent } \newlabel{lst:list_of_type_implizit}{{1.2}{2}{List.of() mit implizitem Typ}{lstlisting.1.2}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.2}List.of() mit implizitem Typ}{2}{lstlisting.1.2}\protected@file@percent } \newlabel{lst:java8_typinferenz}{{1.3}{2}{Verbesserungen für Typinferenz in Java 8 (Beispiel aus {\cite {oracle_type_nodate}[Target Types]})}{lstlisting.1.3}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.3}Verbesserungen für Typinferenz in Java 8 (Beispiel aus {\blx@tocontentsinit {0}\cite {oracle_type_nodate}[Target Types]})}{2}{lstlisting.1.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {1.1.2}Der Diamond Operator}{2}{subsection.1.1.2}\protected@file@percent } \newlabel{lst:java7diamond}{{1.4}{2}{Java 7 Diamond Operator}{lstlisting.1.4}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.4}Java 7 Diamond Operator}{2}{lstlisting.1.4}\protected@file@percent } \abx@aux@cite{0}{oracle_type_nodate} \abx@aux@segm{0}{0}{oracle_type_nodate} \BKM@entry{id=9,dest={73756273656374696F6E2E312E312E33},srcline={67}}{5C3337365C3337375C303030315C3030302E5C303030315C3030302E5C303030335C3030305C3034305C303030545C303030795C303030705C303030695C3030306E5C303030665C303030655C303030725C303030655C3030306E5C3030307A5C3030305C3034305C303030625C303030655C303030695C3030305C3034305C3030304C5C303030615C3030306D5C303030625C303030645C303030615C3030305C3034305C303030415C303030755C303030735C303030645C303030725C3030305C3337345C303030635C3030306B5C303030655C3030306E} \abx@aux@cite{0}{darcy_jep_2011} \abx@aux@segm{0}{0}{darcy_jep_2011} \abx@aux@cite{0}{gosling_java_2014} \abx@aux@segm{0}{0}{gosling_java_2014} \BKM@entry{id=10,dest={73756273656374696F6E2E312E312E34},srcline={84}}{5C3337365C3337375C303030315C3030302E5C303030315C3030302E5C303030345C3030305C3034305C303030445C303030655C303030725C3030305C3034305C303030545C303030795C303030705C303030705C3030306C5C303030615C303030745C3030307A5C303030685C303030615C3030306C5C303030745C303030655C303030725C3030305C3034305C303030765C303030615C30303072} \abx@aux@cite{0}{goetz_jep_2016} \abx@aux@segm{0}{0}{goetz_jep_2016} \abx@aux@cite{0}{goetz_jep_2016} \abx@aux@segm{0}{0}{goetz_jep_2016} \newlabel{lst:java7nodiamond}{{1.5}{3}{Java Generics ohne Diamond Operator}{lstlisting.1.5}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.5}Java Generics ohne Diamond Operator}{3}{lstlisting.1.5}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {1.1.3}Typinferenz bei Lambda Ausdrücken}{3}{subsection.1.1.3}\protected@file@percent } \newlabel{lst:lambda}{{1.6}{3}{Java 8 Lambda-Ausdrücke}{lstlisting.1.6}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.6}Java 8 Lambda-Ausdrücke}{3}{lstlisting.1.6}\protected@file@percent } \newlabel{lst:lambda_explicit}{{1.7}{3}{Lambda-Ausdruck mit explizitem Typ}{lstlisting.1.7}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.7}Lambda-Ausdruck mit explizitem Typ}{3}{lstlisting.1.7}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {1.1.4}Der Typplatzhalter var}{3}{subsection.1.1.4}\protected@file@percent } \abx@aux@cite{0}{goetz_jep_2016} \abx@aux@segm{0}{0}{goetz_jep_2016} \BKM@entry{id=11,dest={73656374696F6E2E312E32},srcline={102}}{5C3337365C3337375C303030315C3030302E5C303030325C3030305C3034305C303030545C303030795C303030705C303030695C3030306E5C303030665C303030655C303030725C303030655C3030306E5C3030307A5C3030305C3034305C303030695C3030306E5C3030305C3034305C3030304A5C303030615C303030765C303030615C3030302D5C303030545C30303058} \abx@aux@cite{0}{thompson_haskell_2011} \abx@aux@segm{0}{0}{thompson_haskell_2011} \abx@aux@cite{0}{marlow_haskell_2010} \abx@aux@segm{0}{0}{marlow_haskell_2010} \abx@aux@cite{0}{pierce_types_2002} \abx@aux@segm{0}{0}{pierce_types_2002} \abx@aux@cite{0}{marlow_haskell_2010} \abx@aux@segm{0}{0}{marlow_haskell_2010} \newlabel{lst:java10var}{{1.8}{4}{Java 10 var Platzhalter}{lstlisting.1.8}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.8}Java 10 var Platzhalter}{4}{lstlisting.1.8}\protected@file@percent } \newlabel{lst:java10var_limits}{{1.9}{4}{Ungültige Verwendung des \lstinline |var| Schlüsselworts}{lstlisting.1.9}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.9}Ungültige Verwendung des \lstinline |var| Schlüsselworts}{4}{lstlisting.1.9}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {1.2}Typinferenz in Java-TX}{4}{section.1.2}\protected@file@percent } \newlabel{sec:java_tx_typeinference}{{1.2}{4}{Typinferenz in Java-TX}{section.1.2}{}} \newlabel{lst:haskell_add}{{1.10}{4}{Funktion add in Haskell}{lstlisting.1.10}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.10}Funktion add in Haskell}{4}{lstlisting.1.10}\protected@file@percent } \abx@aux@cite{0}{vandevoorde_c_2010} \abx@aux@segm{0}{0}{vandevoorde_c_2010} \acronymused{Java-TX} \acronymused{Java-TX} \newlabel{lst:simple_typeinference_wo_types}{{1.11}{5}{Untypisierte Methode add}{lstlisting.1.11}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.11}Untypisierte Methode add}{5}{lstlisting.1.11}\protected@file@percent } \newlabel{lst:simple_typeinference_w_types}{{1.12}{5}{Von Typinferenz errechnete Typen für \autoref {lst:simple_typeinference_wo_types}}{lstlisting.1.12}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.12}Von Typinferenz errechnete Typen für \autoref {lst:simple_typeinference_wo_types}}{5}{lstlisting.1.12}\protected@file@percent } \acronymused{Java-TX} \BKM@entry{id=12,dest={73656374696F6E2E312E33},srcline={172}}{5C3337365C3337375C303030315C3030302E5C303030335C3030305C3034305C303030415C3030306E5C3030306F5C3030306E5C303030795C3030306D5C303030655C3030305C3034305C303030465C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030655C3030306E5C3030305C3034305C303030695C3030306E5C3030305C3034305C3030304A5C303030615C303030765C30303061} \abx@aux@cite{0}{noauthor_openjdk_nodate} \abx@aux@segm{0}{0}{noauthor_openjdk_nodate} \abx@aux@cite{0}{goetz_java_2010} \abx@aux@segm{0}{0}{goetz_java_2010} \abx@aux@cite{0}{gosling_java_2014} \abx@aux@segm{0}{0}{gosling_java_2014} \newlabel{lst:globaltypeinference2}{{1.13}{6}{Methodenüberladungen durch Typinferenz}{lstlisting.1.13}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.13}Methodenüberladungen durch Typinferenz}{6}{lstlisting.1.13}\protected@file@percent } \newlabel{lst:globaltypeinference2result}{{1.14}{6}{Resultat der Typinferenz für \autoref {lst:globaltypeinference2}}{lstlisting.1.14}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.14}Resultat der Typinferenz für \autoref {lst:globaltypeinference2}}{6}{lstlisting.1.14}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {1.3}Anonyme Funktionen in Java}{6}{section.1.3}\protected@file@percent } \newlabel{sec:lambda_java}{{1.3}{6}{Anonyme Funktionen in Java}{section.1.3}{}} \BKM@entry{id=13,dest={73756273656374696F6E2E312E332E31},srcline={175}}{5C3337365C3337375C303030315C3030302E5C303030335C3030302E5C303030315C3030305C3034305C303030465C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030615C3030306C5C303030655C3030305C3034305C303030495C3030306E5C303030745C303030655C303030725C303030665C303030615C303030635C303030655C303030735C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304C5C303030615C3030306D5C303030625C303030645C303030615C3030305C3034305C303030415C303030755C303030735C303030645C303030725C3030305C3337345C303030635C3030306B5C30303065} \abx@aux@cite{0}{gosling_java_2014} \abx@aux@segm{0}{0}{gosling_java_2014} \@writefile{toc}{\contentsline {subsection}{\numberline {1.3.1}Funktionale Interfaces und Lambda Ausdrücke}{7}{subsection.1.3.1}\protected@file@percent } \newlabel{sec:lambda}{{1.3.1}{7}{Funktionale Interfaces und Lambda Ausdrücke}{subsection.1.3.1}{}} \newlabel{lst:runnable_wo_lambda}{{1.15}{7}{Erstellung eines Threads mit einer anonymen Klasse}{lstlisting.1.15}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.15}Erstellung eines Threads mit einer anonymen Klasse}{7}{lstlisting.1.15}\protected@file@percent } \newlabel{lst:runnable_w_lambda}{{1.16}{8}{Erstellung eines Threads mit einem Lambda Ausdruck}{lstlisting.1.16}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.16}Erstellung eines Threads mit einem Lambda Ausdruck}{8}{lstlisting.1.16}\protected@file@percent } \newlabel{lst:lambda_with_var}{{1.17}{8}{Lambda Ausdruck mit var}{lstlisting.1.17}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.17}Lambda Ausdruck mit var}{8}{lstlisting.1.17}\protected@file@percent } \abx@aux@cite{0}{goos_variance-based_2002} \abx@aux@segm{0}{0}{goos_variance-based_2002} \abx@aux@cite{0}{plumicke_java-tx_2022} \abx@aux@segm{0}{0}{plumicke_java-tx_2022} \@writefile{lot}{\contentsline {table}{\numberline {1.1}{\ignorespaces Gängige funktionale Interfaces in der Java Standardbibliothek}}{9}{table.1.1}\protected@file@percent } \newlabel{tab:java_functional_interfaces}{{1.1}{9}{Gängige funktionale Interfaces in der Java Standardbibliothek}{table.1.1}{}} \pp@pagectr{footnote}{4}{19}{9} \abx@aux@cite{0}{naftalin_java_2007} \abx@aux@segm{0}{0}{naftalin_java_2007} \BKM@entry{id=14,dest={73756273656374696F6E2E312E332E32},srcline={292}}{5C3337365C3337375C303030315C3030302E5C303030335C3030302E5C303030325C3030305C3034305C303030575C303030695C3030306C5C303030645C303030635C303030615C303030725C303030645C30303073} \abx@aux@cite{0}{naftalin_java_2007} \abx@aux@segm{0}{0}{naftalin_java_2007} \newlabel{def:subtyping_of_function_types}{{1.3.5}{10}{Subtypisierung für Funktionstypen}{definition.1.3.5}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.3.2}Wildcards}{10}{subsection.1.3.2}\protected@file@percent } \abx@aux@cite{0}{piquerez_variances_nodate} \abx@aux@segm{0}{0}{piquerez_variances_nodate} \abx@aux@cite{0}{wagner_creating_2021} \abx@aux@segm{0}{0}{wagner_creating_2021} \BKM@entry{id=15,dest={73656374696F6E2E312E34},srcline={307}}{5C3337365C3337375C303030315C3030302E5C303030345C3030305C3034305C303030455C303030635C303030685C303030745C303030655C3030305C3034305C303030465C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030735C303030745C303030795C303030705C303030655C3030306E5C3030305C3034305C303030695C3030306E5C3030305C3034305C3030304A5C303030615C303030765C303030615C3030302D5C303030545C30303058} \abx@aux@cite{0}{plumicke_java-tx_2022} \abx@aux@segm{0}{0}{plumicke_java-tx_2022} \abx@aux@cite{0}{plumicke_introducing_2017} \abx@aux@segm{0}{0}{plumicke_introducing_2017} \newlabel{lst:covariance}{{1.18}{11}{Varianz in Java}{lstlisting.1.18}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.18}Varianz in Java}{11}{lstlisting.1.18}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {1.4}Echte Funktionstypen in Java-TX}{11}{section.1.4}\protected@file@percent } \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \BKM@entry{id=16,dest={73656374696F6E2E312E35},srcline={333}}{5C3337365C3337375C303030315C3030302E5C303030355C3030305C3034305C303030475C3030304E5C303030555C3030305C3034305C3030304D5C303030615C3030306B5C30303065} \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \newlabel{lst:subtyping_of_function_types}{{1.19}{12}{Subtypisierung von Funktionstypen in Java-TX}{lstlisting.1.19}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.19}Subtypisierung von Funktionstypen in Java-TX}{12}{lstlisting.1.19}\protected@file@percent } \acronymused{Java-TX} \newlabel{lst:lambda_with_function_type}{{1.20}{12}{Lambda Ausdruck ohne Typkontext}{lstlisting.1.20}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.20}Lambda Ausdruck ohne Typkontext}{12}{lstlisting.1.20}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {1.5}GNU Make}{12}{section.1.5}\protected@file@percent } \newlabel{sec:make}{{1.5}{12}{GNU Make}{section.1.5}{}} \AC@undonewlabel{acro:GNU} \newlabel{acro:GNU}{{1.5}{12}{GNU Make}{section*.8}{}} \acronymused{GNU} \newlabel{lst:make_rule}{{1.21}{12}{Aufbau einer Makefile-Regel aus {\cite {stallman_gnu_2004}[S.3]}}{lstlisting.1.21}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.21}Aufbau einer Makefile-Regel aus {\blx@tocontentsinit {0}\cite {stallman_gnu_2004}[S.3]}}{12}{lstlisting.1.21}\protected@file@percent } \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \abx@aux@cite{0}{jetbrains_java_2023} \abx@aux@segm{0}{0}{jetbrains_java_2023} \newlabel{lst:sample_makefile}{{1.22}{13}{Beispiel eines Makefiles aus {\cite {stallman_gnu_2004}[S.4]}}{lstlisting.1.22}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1.22}Beispiel eines Makefiles aus {\blx@tocontentsinit {0}\cite {stallman_gnu_2004}[S.4]}}{13}{lstlisting.1.22}\protected@file@percent } \acronymused{GNU} \BKM@entry{id=17,dest={73656374696F6E2E312E36},srcline={376}}{5C3337365C3337375C303030315C3030302E5C303030365C3030305C3034305C303030535C303030655C3030306C5C303030625C303030735C303030745C3030306B5C3030306F5C3030306D5C303030705C303030695C3030306C5C303030695C303030655C303030725C303030655C3030306E5C303030645C303030655C3030305C3034305C303030435C3030306F5C3030306D5C303030705C303030695C3030306C5C303030655C30303072} \abx@aux@cite{0}{noauthor_openjdk_nodate-1} \abx@aux@segm{0}{0}{noauthor_openjdk_nodate-1} \abx@aux@cite{0}{noauthor_gcc--cxx_nodate} \abx@aux@segm{0}{0}{noauthor_gcc--cxx_nodate} \abx@aux@cite{0}{stallman_using_2024} \abx@aux@segm{0}{0}{stallman_using_2024} \abx@aux@cite{0}{terry_compilers_1997} \abx@aux@segm{0}{0}{terry_compilers_1997} \@writefile{toc}{\contentsline {section}{\numberline {1.6}Selbstkompilierende Compiler}{14}{section.1.6}\protected@file@percent } \AC@undonewlabel{acro:GCC} \newlabel{acro:GCC}{{1.6}{14}{Selbstkompilierende Compiler}{section*.9}{}} \acronymused{GCC} \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \@writefile{lof}{\contentsline {figure}{\numberline {1.1}{\ignorespaces Selbstkompilierender Compiler in Java-TX}}{15}{figure.1.1}\protected@file@percent } \newlabel{fig:self_compiling_compiler_java_tx}{{1.1}{15}{Selbstkompilierender Compiler in Java-TX}{figure.1.1}{}} \BKM@entry{id=18,dest={636861707465722E32},srcline={3}}{5C3337365C3337375C303030325C3030305C3034305C303030415C303030755C303030665C303030625C303030615C303030755C3030305C3034305C303030645C303030655C303030725C3030305C3034305C303030555C3030306D5C303030675C303030655C303030625C303030755C3030306E5C30303067} \BKM@entry{id=19,dest={73656374696F6E2E322E31},srcline={5}}{5C3337365C3337375C303030325C3030302E5C303030315C3030305C3034305C303030565C3030306F5C303030725C303030615C303030755C303030735C303030735C303030655C303030745C3030307A5C303030755C3030306E5C303030675C303030655C3030306E} \abx@aux@cite{0}{plumicke_java-tx_2022} \abx@aux@segm{0}{0}{plumicke_java-tx_2022} \pp@pagectr{footnote}{5}{26}{16} \@writefile{toc}{\contentsline {chapter}{\numberline {2}Aufbau der Umgebung}{16}{chapter.2}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{lol}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {2.1}Voraussetzungen}{16}{section.2.1}\protected@file@percent } \newlabel{sec:prequisites}{{2.1}{16}{Voraussetzungen}{section.2.1}{}} \acronymused{Java-TX} \pp@pagectr{footnote}{6}{26}{16} \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \pp@pagectr{footnote}{7}{26}{16} \acronymused{Java-TX} \@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces Zirkuläre Abhängigkeiten zwischen Java und \ac {Java-TX} Dateien}}{16}{figure.2.1}\protected@file@percent } \acronymused{Java-TX} \newlabel{fig:circular_dependency}{{2.1}{16}{Zirkuläre Abhängigkeiten zwischen Java und \ac {Java-TX} Dateien}{figure.2.1}{}} \acronymused{Java-TX} \abx@aux@cite{0}{noauthor_maven_nodate} \abx@aux@segm{0}{0}{noauthor_maven_nodate} \BKM@entry{id=20,dest={73656374696F6E2E322E32},srcline={54}}{5C3337365C3337375C303030325C3030302E5C303030325C3030305C3034305C3030304B5C3030306F5C3030306D5C303030705C303030695C3030306C5C303030695C303030655C303030725C303030755C3030306E5C303030675C3030305C3034305C3030306D5C303030695C303030745C3030305C3034305C3030304D5C303030615C3030306B5C30303065} \@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces Zirkuläre Abhängigkeiten zwischen Java und \ac {Java-TX} Dateien behoben}}{17}{figure.2.2}\protected@file@percent } \acronymused{Java-TX} \newlabel{fig:circular_dependency_resolved}{{2.2}{17}{Zirkuläre Abhängigkeiten zwischen Java und \ac {Java-TX} Dateien behoben}{figure.2.2}{}} \acronymused{Java-TX} \@writefile{toc}{\contentsline {section}{\numberline {2.2}Kompilierung mit Make}{18}{section.2.2}\protected@file@percent } \acronymused{GNU} \newlabel{lst:makefile}{{2.1}{18}{Makefile für die Kompilierung des \JTXCinJTX {}}{lstlisting.2.1}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {2.1}Makefile für die Kompilierung des \glqq {}Java-TX Compiler in Java-TX\grqq {}{}}{18}{lstlisting.2.1}\protected@file@percent } \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \acronymused{GNU} \acronymused{Java-TX} \abx@aux@cite{0}{stallman_gnu_2004} \abx@aux@segm{0}{0}{stallman_gnu_2004} \BKM@entry{id=21,dest={73756273656374696F6E2E322E322E31},srcline={113}}{5C3337365C3337375C303030325C3030302E5C303030325C3030302E5C303030315C3030305C3034305C303030505C303030655C303030725C303030665C3030306F5C303030725C3030306D5C303030615C3030306E5C303030635C303030655C303030705C303030725C3030306F5C303030625C3030306C5C303030655C3030306D5C30303065} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Performanceprobleme}{20}{subsection.2.2.1}\protected@file@percent } \newlabel{sec:performance}{{2.2.1}{20}{Performanceprobleme}{subsection.2.2.1}{}} \AC@undonewlabel{acro:JVM} \newlabel{acro:JVM}{{2.2.1}{20}{Performanceprobleme}{section*.10}{}} \acronymused{JVM} \BKM@entry{id=22,dest={73656374696F6E2E322E33},srcline={139}}{5C3337365C3337375C303030325C3030302E5C303030335C3030305C3034305C3030304B5C3030306F5C3030306D5C303030705C303030695C3030306C5C303030695C303030655C303030725C303030755C3030306E5C303030675C3030305C3034305C3030306D5C303030695C303030745C3030305C3034305C303030425C303030615C303030735C30303068} \@writefile{lot}{\contentsline {table}{\numberline {2.1}{\ignorespaces Kompilierzeiten des \glqq {}Java-TX Compiler\grqq {}{} mit \gls {javac}\FN@sf@gobble@opt {Diese Zeiten wurden mit einem Intel i5-12400F Prozessor und 16GB RAM auf einem Linux Rechner mit dem \ac {GNU} Time Befehl gemessen. Jeder Test wurde 5x durchgeführt. Der Durchschnitt wurde aus allen Durchläufen berechnet.}}}{21}{table.2.1}\protected@file@percent } \pp@pagectr{footnote}{8}{31}{21} \newlabel{tab:compiletimes_javac}{{2.1}{21}{Kompilierzeiten des \JTXC {} mit \gls {javac}\footnote {Diese Zeiten wurden mit einem Intel i5-12400F Prozessor und 16GB RAM auf einem Linux Rechner mit dem \ac {GNU} Time Befehl gemessen. Jeder Test wurde 5x durchgeführt. Der Durchschnitt wurde aus allen Durchläufen berechnet.}}{table.2.1}{}} \@writefile{toc}{\contentsline {section}{\numberline {2.3}Kompilierung mit Bash}{21}{section.2.3}\protected@file@percent } \newlabel{sec:script}{{2.3}{21}{Kompilierung mit Bash}{section.2.3}{}} \AC@undonewlabel{acro:Bash} \newlabel{acro:Bash}{{2.3}{21}{Kompilierung mit Bash}{section*.11}{}} \acronymused{Bash} \AC@undonewlabel{acro:WSL} \newlabel{acro:WSL}{{2.3}{21}{Kompilierung mit Bash}{section*.12}{}} \acronymused{WSL} \acronymused{Java-TX} \@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Dateistruktur des Projekts}}{22}{figure.2.3}\protected@file@percent } \newlabel{fig:folder_structure}{{2.3}{22}{Dateistruktur des Projekts}{figure.2.3}{}} \acronymused{Java-TX} \acronymused{Java-TX} \BKM@entry{id=23,dest={73656374696F6E2E322E34},srcline={219}}{5C3337365C3337375C303030325C3030302E5C303030345C3030305C3034305C303030545C303030655C303030735C303030745C30303073} \@writefile{toc}{\contentsline {section}{\numberline {2.4}Tests}{23}{section.2.4}\protected@file@percent } \newlabel{sec:tests}{{2.4}{23}{Tests}{section.2.4}{}} \AC@undonewlabel{acro:IDE} \newlabel{acro:IDE}{{2.4}{23}{Tests}{section*.13}{}} \acronymused{IDE} \acronymused{Java-TX} \newlabel{lst:testscript}{{2.2}{24}{Skript zum Kompilieren und Ausführen der Tests}{lstlisting.2.2}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {2.2}Skript zum Kompilieren und Ausführen der Tests}{24}{lstlisting.2.2}\protected@file@percent } \BKM@entry{id=24,dest={636861707465722E33},srcline={3}}{5C3337365C3337375C303030335C3030305C3034305C303030415C303030755C303030665C303030675C303030655C303030745C303030725C303030655C303030745C303030655C3030306E5C303030655C3030305C3034305C303030505C303030725C3030306F5C303030625C3030306C5C303030655C3030306D5C30303065} \BKM@entry{id=25,dest={73656374696F6E2E332E31},srcline={34}}{5C3337365C3337375C303030335C3030302E5C303030315C3030305C3034305C3030304E5C303030655C303030755C303030655C3030305C3034305C303030465C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030655C3030306E} \pp@pagectr{footnote}{9}{36}{26} \@writefile{toc}{\contentsline {chapter}{\numberline {3}Aufgetretene Probleme}{26}{chapter.3}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{lol}{\addvspace {10\p@ }} \acronymused{Java-TX} \acronymused{Java-TX} \@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Gefundene Probleme und neue Funktionen}}{26}{figure.3.1}\protected@file@percent } \newlabel{fig:problems_plot}{{3.1}{26}{Gefundene Probleme und neue Funktionen}{figure.3.1}{}} \BKM@entry{id=26,dest={73756273656374696F6E2E332E312E31},srcline={37}}{5C3337365C3337375C303030335C3030302E5C303030315C3030302E5C303030315C3030305C3034305C303030465C3030306F5C303030725C303030455C303030615C303030635C303030685C3030305C3034305C303030535C303030635C303030685C3030306C5C303030655C303030695C303030665C30303065} \abx@aux@cite{0}{noauthor_for-each_nodate} \abx@aux@segm{0}{0}{noauthor_for-each_nodate} \BKM@entry{id=27,dest={73756273656374696F6E2E332E312E32},srcline={63}}{5C3337365C3337375C303030335C3030302E5C303030315C3030302E5C303030325C3030305C3034305C303030575C303030655C303030695C303030745C303030655C303030725C303030655C3030305C3034305C3030306E5C303030655C303030755C303030655C3030305C3034305C303030465C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030655C3030306E} \@writefile{toc}{\contentsline {section}{\numberline {3.1}Neue Funktionen}{27}{section.3.1}\protected@file@percent } \acronymused{Java-TX} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}For\-Each Schleife}{27}{subsection.3.1.1}\protected@file@percent } \newlabel{lst:for_each_java}{{3.1}{27}{For-Each Schleife in Java}{lstlisting.3.1}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.1}For-Each Schleife in Java}{27}{lstlisting.3.1}\protected@file@percent } \acronymused{Java-TX} \newlabel{lst:for_each_javatx}{{3.2}{27}{For-Each Schleife in Java-TX}{lstlisting.3.2}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.2}For-Each Schleife in Java-TX}{27}{lstlisting.3.2}\protected@file@percent } \BKM@entry{id=28,dest={73656374696F6E2E332E32},srcline={84}}{5C3337365C3337375C303030335C3030302E5C303030325C3030305C3034305C303030425C303030755C303030675C30303073} \BKM@entry{id=29,dest={73756273656374696F6E2E332E322E31},srcline={87}}{5C3337365C3337375C303030335C3030302E5C303030325C3030302E5C303030315C3030305C3034305C3030304A5C303030565C3030304D5C3030305C3034305C303030435C3030306C5C303030615C303030735C303030735C303030705C303030615C303030745C303030685C3030305C3034305C303030775C303030695C303030725C303030645C3030305C3034305C303030765C3030306F5C3030306E5C3030305C3034305C3034305C3033365C3030304A5C303030615C303030765C303030615C3030302D5C303030545C303030585C3030305C3034305C303030435C3030306F5C3030306D5C303030705C303030695C3030306C5C303030655C303030725C3034305C3033345C3030305C3034305C303030625C303030655C303030615C303030635C303030685C303030745C303030655C30303074} \abx@aux@cite{0}{baeldung_class_2024} \abx@aux@segm{0}{0}{baeldung_class_2024} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Weitere neue Funktionen}{28}{subsection.3.1.2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.2}Bugs}{28}{section.3.2}\protected@file@percent } \abx@aux@cite{0}{baeldung_class_2024} \abx@aux@segm{0}{0}{baeldung_class_2024} \abx@aux@cite{0}{nero_all_2023} \abx@aux@segm{0}{0}{nero_all_2023} \abx@aux@cite{0}{nero_all_2023} \abx@aux@segm{0}{0}{nero_all_2023} \abx@aux@cite{0}{nero_all_2023} \abx@aux@segm{0}{0}{nero_all_2023} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}JVM Classpath wird von \glqq {}Java-TX Compiler\grqq {}{} beachtet}{29}{subsection.3.2.1}\protected@file@percent } \pp@pagectr{footnote}{10}{39}{29} \acronymused{JVM} \AC@undonewlabel{acro:JDK} \newlabel{acro:JDK}{{3.2.1}{29}{JVM Classpath wird von \JTXC {} beachtet}{section*.14}{}} \acronymused{JDK} \acronymused{JVM} \acronymused{JDK} \acronymused{JDK} \@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Die Classloader Hierarchie des \glqq {}Java-TX Compiler\grqq {}{} (vgl. \blx@tocontentsinit {0}\cite {nero_all_2023})}}{30}{figure.3.2}\protected@file@percent } \newlabel{fig:classloader}{{3.2}{30}{Die Classloader Hierarchie des \JTXC {} (vgl. \cite {nero_all_2023})}{figure.3.2}{}} \acronymused{JVM} \pp@pagectr{footnote}{11}{40}{30} \acronymused{JVM} \newlabel{lst:jvm_classpath}{{3.3}{30}{Verwenden von Klassen im JVM Classpath}{lstlisting.3.3}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.3}Verwenden von Klassen im JVM Classpath}{30}{lstlisting.3.3}\protected@file@percent } \BKM@entry{id=30,dest={73756273656374696F6E2E332E322E32},srcline={201}}{5C3337365C3337375C303030335C3030302E5C303030325C3030302E5C303030325C3030305C3034305C3030304B5C3030306F5C3030306D5C303030705C303030615C303030745C303030695C303030625C303030695C3030306C5C303030695C303030745C3030305C3334345C303030745C3030305C3034305C303030765C3030306F5C3030306E5C3030305C3034305C3030304A5C303030615C303030765C303030615C3030302D5C303030545C303030585C3030305C3034305C303030465C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030735C303030745C303030795C303030705C303030655C3030306E5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C303030665C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030615C3030306C5C303030655C3030306E5C3030305C3034305C303030495C3030306E5C303030745C303030655C303030725C303030665C303030615C303030635C303030655C30303073} \abx@aux@cite{0}{plumicke_introducing_2017} \abx@aux@segm{0}{0}{plumicke_introducing_2017} \abx@aux@cite{0}{baeldung_java_2016} \abx@aux@segm{0}{0}{baeldung_java_2016} \abx@aux@cite{0}{softwarealchemy_streamline_2024} \abx@aux@segm{0}{0}{softwarealchemy_streamline_2024} \acronymused{JVM} \acronymused{JDK} \acronymused{JDK} \@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Die Classloader Hierarchie des \glqq {}Java-TX Compiler\grqq {}{} ohne den ApplicationClassLoader}}{31}{figure.3.3}\protected@file@percent } \newlabel{fig:classloader_no_application}{{3.3}{31}{Die Classloader Hierarchie des \JTXC {} ohne den ApplicationClassLoader}{figure.3.3}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Kompatibilität von Java-TX Funktionstypen und funktionalen Interfaces}{31}{subsection.3.2.2}\protected@file@percent } \acronymused{Java-TX} \newlabel{lst:java_functional_interface}{{3.4}{32}{Verwendung der Stream API in Java}{lstlisting.3.4}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.4}Verwendung der Stream API in Java}{32}{lstlisting.3.4}\protected@file@percent } \pp@pagectr{footnote}{12}{42}{32} \acronymused{Java-TX} \acronymused{JVM} \acronymused{Java-TX} \newlabel{lst:javatx_not_working_1}{{3.5}{33}{Aktuell nicht lauffähiger \ac {Java-TX} Code I}{lstlisting.3.5}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.5}Aktuell nicht lauffähiger \ac {Java-TX} Code I}{33}{lstlisting.3.5}\protected@file@percent } \acronymused{Java-TX} \BKM@entry{id=31,dest={73756273656374696F6E2E332E322E33},srcline={292}}{5C3337365C3337375C303030335C3030302E5C303030325C3030302E5C303030335C3030305C3034305C3030305C3333345C303030625C303030655C303030725C303030735C303030635C303030685C303030725C303030655C303030695C303030625C303030655C3030306E5C3030305C3034305C303030765C3030306F5C3030306E5C3030305C3034305C3030304D5C303030655C303030745C303030685C3030306F5C303030645C303030655C3030306E5C3030305C3034305C3030306D5C303030695C303030745C3030305C3034305C303030705C303030725C303030695C3030306D5C303030695C303030745C303030695C303030765C303030655C3030306E5C3030305C3034305C303030445C303030615C303030745C303030655C3030306E5C303030745C303030795C303030705C303030655C3030306E} \newlabel{lst:javatx_not_working_2}{{3.6}{34}{Aktuell nicht lauffähiger \ac {Java-TX} Code II}{lstlisting.3.6}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.6}Aktuell nicht lauffähiger \ac {Java-TX} Code II}{34}{lstlisting.3.6}\protected@file@percent } \acronymused{Java-TX} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Überschreiben von Methoden mit primitiven Datentypen}{34}{subsection.3.2.3}\protected@file@percent } \acronymused{Java-TX} \acronymused{Java-TX} \abx@aux@cite{0}{naftalin_java_2007} \abx@aux@segm{0}{0}{naftalin_java_2007} \abx@aux@cite{0}{naftalin_java_2007} \abx@aux@segm{0}{0}{naftalin_java_2007} \@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces Primitive Datentypen in Java-TX}}{35}{figure.3.4}\protected@file@percent } \newlabel{fig:primitive_types_javatx}{{3.4}{35}{Primitive Datentypen in Java-TX}{figure.3.4}{}} \acronymused{Java-TX} \pp@pagectr{footnote}{13}{45}{35} \newlabel{lst:primitive_types}{{3.7}{35}{Überschreiben von Methoden mit primitiven Datentypen in Java-TX}{lstlisting.3.7}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.7}Überschreiben von Methoden mit primitiven Datentypen in Java-TX}{35}{lstlisting.3.7}\protected@file@percent } \acronymused{Java-TX} \newlabel{lst:primitive_types_infer}{{3.8}{35}{Ergebnis der Typinferenz für die Methode \texttt {hashCode} in Java-TX}{lstlisting.3.8}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.8}Ergebnis der Typinferenz für die Methode \texttt {hashCode} in Java-TX}{35}{lstlisting.3.8}\protected@file@percent } \newlabel{lst:covariant_overloading}{{3.9}{36}{Kovariante Methodenüberladung in Java}{lstlisting.3.9}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.9}Kovariante Methodenüberladung in Java}{36}{lstlisting.3.9}\protected@file@percent } \BKM@entry{id=32,dest={73756273656374696F6E2E332E322E34},srcline={395}}{5C3337365C3337375C303030335C3030302E5C303030325C3030302E5C303030345C3030305C3034305C3030304B5C3030306F5C303030725C303030725C303030655C3030306B5C303030745C303030655C303030725C3030305C3034305C3030304D5C303030655C303030745C303030685C3030306F5C303030645C303030655C3030306E5C303030615C303030755C303030665C303030725C303030755C303030665C3030305C3034305C303030665C3030305C3337345C303030725C3030305C3034305C3030305C3337345C303030625C303030655C303030725C3030306C5C303030615C303030645C303030655C3030306E5C303030655C3030305C3034305C3030304D5C303030655C303030745C303030685C3030306F5C303030645C303030655C3030306E5C3030305C3034305C3030306D5C303030695C303030745C3030305C3034305C303030535C303030755C303030625C303030745C303030795C303030705C303030655C3030306E5C3030305C3034305C303030615C3030306C5C303030735C3030305C3034305C303030505C303030615C303030725C303030615C3030306D5C303030655C303030745C303030655C30303072} \abx@aux@cite{0}{naftalin_java_2007} \abx@aux@segm{0}{0}{naftalin_java_2007} \abx@aux@cite{0}{gosling_java_2005} \abx@aux@segm{0}{0}{gosling_java_2005} \newlabel{lst:covariant_overloading_bytecode}{{3.10}{37}{Dekompilierter Bytecode der Klasse A}{lstlisting.3.10}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.10}Dekompilierter Bytecode der Klasse A}{37}{lstlisting.3.10}\protected@file@percent } \acronymused{Java-TX} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4}Korrekter Methodenaufruf für überladene Methoden mit Subtypen als Parameter}{37}{subsection.3.2.4}\protected@file@percent } \BKM@entry{id=33,dest={73756273656374696F6E2E332E322E35},srcline={427}}{5C3337365C3337375C303030335C3030302E5C303030325C3030302E5C303030355C3030305C3034305C303030575C303030655C303030695C303030745C303030655C303030725C303030655C3030305C3034305C303030425C303030755C303030675C303030735C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C303030665C303030655C303030685C3030306C5C303030655C3030306E5C303030645C303030655C3030305C3034305C303030465C303030655C303030615C303030745C303030755C303030725C303030655C30303073} \newlabel{lst:overloaded_methods}{{3.11}{38}{Überladene Methoden in Java}{lstlisting.3.11}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.11}Überladene Methoden in Java}{38}{lstlisting.3.11}\protected@file@percent } \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.5}Weitere Bugs und fehlende Features}{39}{subsection.3.2.5}\protected@file@percent } \BKM@entry{id=34,dest={636861707465722E34},srcline={3}}{5C3337365C3337375C303030345C3030305C3034305C303030565C3030306F5C303030725C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030695C3030306E5C3030305C3034305C303030645C303030655C303030725C3030305C3034305C303030505C303030725C303030615C303030785C303030695C30303073} \abx@aux@cite{0}{plumicke_java-tx_2022} \abx@aux@segm{0}{0}{plumicke_java-tx_2022} \abx@aux@cite{0}{plumicke_java-tx_2022} \abx@aux@segm{0}{0}{plumicke_java-tx_2022} \pp@pagectr{footnote}{14}{50}{40} \@writefile{toc}{\contentsline {chapter}{\numberline {4}Vorteile in der Praxis}{40}{chapter.4}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{lol}{\addvspace {10\p@ }} \acronymused{Java-TX} \acronymused{Java-TX} \pp@pagectr{footnote}{15}{50}{40} \newlabel{lst:prinzipal_type_example}{{4.1}{40}{Beispielklasse aus dem \JTXC {}}{lstlisting.4.1}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {4.1}Beispielklasse aus dem \glqq {}Java-TX Compiler\grqq {}{}}{40}{lstlisting.4.1}\protected@file@percent } \abx@aux@cite{0}{noauthor_java_nodate-2} \abx@aux@segm{0}{0}{noauthor_java_nodate-2} \abx@aux@cite{0}{noauthor_java_nodate-2} \abx@aux@segm{0}{0}{noauthor_java_nodate-2} \newlabel{lst:prinzipal_type_example_javatx}{{4.2}{41}{\autoref {lst:prinzipal_type_example} ohne Typinformationen}{lstlisting.4.2}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {4.2}\autoref {lst:prinzipal_type_example} ohne Typinformationen}{41}{lstlisting.4.2}\protected@file@percent } \pp@pagectr{footnote}{16}{51}{41} \abx@aux@cite{0}{noauthor_for-each_nodate} \abx@aux@segm{0}{0}{noauthor_for-each_nodate} \abx@aux@cite{0}{naftalin_java_2007} \abx@aux@segm{0}{0}{naftalin_java_2007} \@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces Vererbungshierarchie von java.util.List ab Java 21 \blx@tocontentsinit {0}\cite {noauthor_java_nodate-2}}}{42}{figure.4.1}\protected@file@percent } \newlabel{fig:java_21_collections}{{4.1}{42}{Vererbungshierarchie von java.util.List ab Java 21 \cite {noauthor_java_nodate-2}}{figure.4.1}{}} \newlabel{lst:prinzipal_type_example_javatx_infered}{{4.3}{42}{Inferierte Typen für \autoref {lst:prinzipal_type_example_javatx}}{lstlisting.4.3}{}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {4.3}Inferierte Typen für \autoref {lst:prinzipal_type_example_javatx}}{42}{lstlisting.4.3}\protected@file@percent } \abx@aux@cite{0}{stadelmeier_java_2015} \abx@aux@segm{0}{0}{stadelmeier_java_2015} \abx@aux@cite{0}{plumicke_java-tx_2022} \abx@aux@segm{0}{0}{plumicke_java-tx_2022} \acronymused{Java-TX} \BKM@entry{id=35,dest={636861707465722E35},srcline={1}}{5C3337365C3337375C303030355C3030305C3034305C303030465C303030615C3030307A5C303030695C303030745C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C303030415C303030755C303030735C303030625C3030306C5C303030695C303030635C3030306B} \BKM@entry{id=36,dest={73656374696F6E2E352E31},srcline={2}}{5C3337365C3337375C303030355C3030302E5C303030315C3030305C3034305C303030465C303030615C3030307A5C303030695C30303074} \BKM@entry{id=37,dest={73656374696F6E2E352E32},srcline={17}}{5C3337365C3337375C303030355C3030302E5C303030325C3030305C3034305C303030415C303030755C303030735C303030625C3030306C5C303030695C303030635C3030306B} \abx@aux@cite{0}{noauthor_raw_nodate} \abx@aux@segm{0}{0}{noauthor_raw_nodate} \abx@aux@cite{0}{naftalin_java_2007} \abx@aux@segm{0}{0}{naftalin_java_2007} \abx@aux@cite{0}{noauthor_string_nodate} \abx@aux@segm{0}{0}{noauthor_string_nodate} \pp@pagectr{footnote}{17}{54}{44} \@writefile{toc}{\contentsline {chapter}{\numberline {5}Fazit und Ausblick}{44}{chapter.5}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{lol}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {5.1}Fazit}{44}{section.5.1}\protected@file@percent } \acronymused{Java-TX} \@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces Verhältnis der Java und \ac {Java-TX} Dateien im \glqq {}Java-TX Compiler in Java-TX\grqq {}}}{44}{figure.5.1}\protected@file@percent } \acronymused{Java-TX} \newlabel{fig:distribution}{{5.1}{44}{Verhältnis der Java und \ac {Java-TX} Dateien im \JTXCinJTX }{figure.5.1}{}} \acronymused{Java-TX} \@writefile{toc}{\contentsline {section}{\numberline {5.2}Ausblick}{45}{section.5.2}\protected@file@percent } \acronymused{Java-TX} \pp@pagectr{footnote}{18}{55}{45} \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \acronymused{Java-TX} \BKM@entry{id=38,dest={636861707465722A2E3135},srcline={97}}{5C3337365C3337375C3030304C5C303030695C303030745C303030655C303030725C303030615C303030745C303030755C30303072} \pp@pagectr{footnote}{19}{56}{46} \@writefile{toc}{\contentsline {chapter}{\nonumberline Literatur}{46}{chapter*.15}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{lol}{\addvspace {10\p@ }} \BKM@entry{id=39,dest={636861707465722A2E3136},srcline={3}}{5C3337365C3337375C303030415C3030306E5C303030685C303030615C3030306E5C30303067} \BKM@entry{id=40,dest={73656374696F6E2E416C7068302E31},srcline={5}}{5C3337365C3337375C3030302E5C303030315C3030305C3034305C303030535C3030306F5C303030755C303030725C303030635C303030655C303030635C3030306F5C303030645C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C303030425C303030615C303030735C303030685C3030305C3034305C303030535C3030306B5C303030725C303030695C303030705C303030745C303030735C3030305C3034305C3030307A5C303030755C303030725C3030305C3034305C3030304B5C3030306F5C3030306D5C303030705C303030695C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \pp@pagectr{footnote}{20}{61}{51} \@writefile{toc}{\contentsline {chapter}{\nonumberline Anhang}{51}{chapter*.16}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{lol}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {.1}Sourcecode des Bash Skripts zur Kompilierung}{51}{section.Alph0.1}\protected@file@percent } \newlabel{app:bash}{{.1}{51}{Sourcecode des Bash Skripts zur Kompilierung}{section.Alph0.1}{}} \abx@aux@read@bbl@mdfivesum{DF5F5D175C269048B897CEF96297F0D6} \abx@aux@defaultrefcontext{0}{baeldung_class_2024}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{baeldung_java_2016}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{buckley_java_2004}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{cimadamore_jep_2011}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{darcy_java_2010}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{darcy_jep_2011}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{noauthor_gcc--cxx_nodate}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{goetz_jep_2016}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{goetz_java_2010}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{gosling_java_2005}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{gosling_java_2014}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{goos_variance-based_2002}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{noauthor_java_nodate-2}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{jetbrains_java_2023}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{marlow_haskell_2010}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{noauthor_maven_nodate}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{naftalin_java_2007}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{nero_all_2023}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{noauthor_openjdk_nodate-1}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{noauthor_openjdk_nodate}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{oracle_type_nodate}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{pierce_types_2002}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{piquerez_variances_nodate}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{plumicke_introducing_2017}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{plumicke_java-tx_2022}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{noauthor_raw_nodate}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{softwarealchemy_streamline_2024}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{stadelmeier_java_2015}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{stallman_using_2024}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{stallman_gnu_2004}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{noauthor_string_nodate}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{terry_compilers_1997}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{noauthor_for-each_nodate}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{thompson_haskell_2011}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{vandevoorde_c_2010}{nty/global//global/global} \abx@aux@defaultrefcontext{0}{wagner_creating_2021}{nty/global//global/global} \global\@namedef{scr@dte@chapter@lastmaxnumwidth}{11.8799pt} \global\@namedef{scr@dte@section@lastmaxnumwidth}{19.71382pt} \global\@namedef{scr@dte@subsection@lastmaxnumwidth}{28.8528pt} \global\@namedef{scr@dte@table@lastmaxnumwidth}{19.71382pt} \global\@namedef{scr@dte@figure@lastmaxnumwidth}{19.71382pt} \global\@namedef{scr@dte@lstlisting@lastmaxnumwidth}{25.5888pt} \@writefile{toc}{\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file} \@writefile{lof}{\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file} \@writefile{lot}{\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file} \@writefile{lol}{\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file} \gdef \@abspage@last{63}