Pruefer: Phillipsen \\ Beisitzer: Baer\\ Zeit: 30 Minuten (voll ausgenutzt, nix zur Besprechung abgezwackt) === Lexer und Parser === Programmcode bekommen, erklaeren was ein Uebersetzer macht: \\ Sprache in Maschinencode uebersetzen, Lexer+Parser erklaeren. \\ Nachfrage: Welche Eingabe bekommt der Parsergenerator, hier wichtig: Die Tokenfolge, die Grammatikregeln, und was beim ausfuehren einer Grammatikregel passieren soll. \\ [Reduktionsregeln der Uebungen, was zurueckgegeben wird] foo(){ int a; int[10] x; int b; x[7] = ...; return a; } bar(){ int a; int[a] x; int b; ... } === Stack und Zwischencode === Erklaeren wie es weitergeht, also Zwischencode und Stack nach ABI der Vorlesung aufmalen und erklaeren. \\ Hier wichtig: Welche Register werden auf dem Stack gesichert, wo ist der Returnwert (auch auf dem Stack! laut ABI), SVV, Basepointer, lokale Variablen.)\\ Danach noch die Frage, wie Zugriffe auf das statische und dynamische Array (oben) realsiert werden. === Methodenaufrufe === Danach noch Methodenaufrufe in Java, welcher wird aufgerufen (spezifischte Methode zur Compilezeit), was wird zur Compilezeit (Wo muss gesucht werden, Modifikatoren, Ueberladung, Verbergen), was zur Laufzeit (Methodenueberschreibung in Unterklassen) ueberprueft. class Method { int foo(long a, int b); long foo(int a, long b); long foo(int a, int b); } ... Method m = new Method(); m.foo(2,3);