Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 2 » Allgemeines

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
pruefungen:hauptstudium:ls2:ueb1-2017-02-14_2 [14.02.2017 14:57] preisipruefungen:hauptstudium:ls2:ueb1-2017-02-14_2 [14.02.2017 15:22] (aktuell) preisi
Zeile 12: Zeile 12:
 Nervoes. Unter anderem nach dem Kommentar von P, dass ich mich in die Mitte setzen soll, damit B und P mich von beiden Seiten in die Zange nehmen koennen zum zerstoeren.. Nervoes. Unter anderem nach dem Kommentar von P, dass ich mich in die Mitte setzen soll, damit B und P mich von beiden Seiten in die Zange nehmen koennen zum zerstoeren..
  
-====== Refactoring ======+====== Analyse ======
      int x // <= soll v werden.      int x // <= soll v werden.
            
Zeile 97: Zeile 97:
  
 ====== Codierungsphase ====== ====== Codierungsphase ======
-B: +B: Soo, was passiert denn in der Codierungsphase? 
 + 
 +S: Es wird Programmcode aus dem Zwischencode erstellt und dieser wird anschliessend assembliert/gelinkt. Davor findet noch die Registerzuteilung statt. 
 + 
 +P: Ok, und was muss man da noch beachten? 
 + 
 +S: Erm.. Faellt mir gerade nicht ein.. 
 + 
 +P: Operationen-Reihenfolge festlegen. Warum? 
 + 
 +S: Ach das liegt doch an der Hardware, weil manche Operationen (div, mul) laenger dauern und man so sein Programm noch auf die Hardware optimieren kann. 
 + 
 +P: Ja, und was noch? 
 + 
 +S: Erm.. Manche Operationen muessen vor anderen ausgefuehrt werden, weil man deren Ergebnis braucht. 
 + 
 +B: Gut, Hier hast du n Code, wie bekomme ich da einen Baum? 
 + 
 +     t1 <- a * b 
 +     t2 <- 3 * c 
 +     t3 <- t1 * t2 
 +     a <- t3 
 + 
 +(Habs erstmal falsch gemacht und n Graph fuers List-Scheduling aufgestellt) 
 + 
 +P: Das sieht jetzt aber seeehr nach List-Scheduling aus. Wie geht es denn richtig? 
 + 
 +S: Man muss sich den Code von unten nach oben angucken und erstellt dann fuer jede Zeile einen Knoten mit den Kanten als Abhaengigkeiten. 
 + 
 +P: Passt. 
 + 
 +B: So, kommen wir nochmal zur Operationen-Reihenfolge: Wie funktionieren denn Baumtransformationen? Was braucht man dafuer erstmal? 
 + 
 +S: Also man hat ja seine Grammatikregeln (reg <- mem, etc) und braucht jetzt Regeln fuer die Baumtransformationen. 
 + 
 +B: Richtig. (legt mir ein Blatt mit ein paar ASM-Befehlen und Grammatikregeln hin.) Wie geht das hier zum Beispiel? 
 + 
 +S: (Baumtranformationsregeln kurz angefangen, waren ziemlich trivial) 
 + 
 +B: Ok passt, das reicht. Und wie geht die hier? (War eine "minimal schwerere" mit zwei Aesten) 
 + 
 +S: (wieder schnell die Loesung hingekritzelt.) 
 + 
 +P: Ja, und wie krieg ich jetzt meinen Code?? 
 + 
 +S: Man hat ja die ASM-Befehle, die man hinschreibt, sobald man eine Baumtransformationsregel durchfuehrt.. 
 + 
 +P: Ja. 
 + 
 +B: So, du hast vorhin Registerzuteilung erwaehnt. Wie funktioniert da die Baumtransformation? (wieder mit kleinem Beispiel) 
 + 
 +S: Man hat wieder seine Regeln und nutzt in dem Baum Pattern-matching von unten nach oben (bottom-top) und wandelt dabei seine Knoten je nach Regel um. 
 + 
 +P: Dann zeigen sie doch mal, wie das geht. 
 + 
 +S: (war unsicher, wo man wie anfangen muss. Hab es schlussendlich anscheinend falsch gemacht und bin wie bei Graham & Glenville vorgegangen.) 
 + 
 +P: Ja, und wo ist jetzt der Unterschied zu G&G? Was ist der Vorteil? 
 + 
 +Doch dann war die Zeit schon vorbei.. 
  
 ====== Besprechung ====== ====== Besprechung ======
-TODO+ 
 +P: Was wuerden Sie sich denn geben? 
 + 
 +S: Keine Ahnung, kann ich echt schlecht einschaetzen. 
 + 
 +P: Das sagen irgendwie alle... 
 + 
 +Zum Schluss wurde ich noch darauf hingewiesen, dass ich die Baumtransformation fuer die Registerzuweisung falsch gemacht hab und P meinte, dass ihm vor allem wichtig ist, dass Stundenten den Stoff anwenden koennen, was ich scheinbar ganz gut konnte.