Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 2 » Prüfling 1
- “Principles of Programming Languages” (PoPL), SS2012
- Dauer ~ 30min
- Prüfer: Ronald Veldema
- Beisitzer: Michael Philippsen
Vll hilfreich: Eine MindMap mit den zusammengefassten Inhalten im PDF und FreeMind-Format
Prüfling 1
P: was ist Lieblingssprache, wo kennen sie sich gut aus?
S: Haskell
P: was ist eine Monade?
S: Data und Metadaten mit unit und bind function
P: Was macht Logiksprachen aus?
S: clause und fact
P: Prolog - wie schreibe ich „Ronald und Michael sind reich, wer reich ist hat viele Fahrräder
wie in Prolog?“
S:
reich(roland). reich(michael). bikes(X) :- reich(X).
P: wie sieht eine anfrage aus? wie können sie eine liste aller Menschen mit Fahrräder ausgeben?
S: unifikation und backtracking
P: Wie geht Constraint programming
S:
x = 3 y = x + 1
P: Wie geht DataFlow programming
S:
a = 5 b = a + 1
P: Sie haben Klasse liste und node, implementieren sie add(node) (am anfang der liste) mittels
duck typing
S:
class list { add(Node n) { n.next = h h = n } }
Prüfling 2
P: Was ist ihre Lieblingsprogrammiersprache?
S: Java, Go (ganz gut)
P: was ist Introspection?
S: Reflections!
P: Was kann man damit machen?
S: Meta informationen zu den Klassen / Objekten einholen
P: Was sind delegates? S verpeilts, antwort ist funktionspointer
P: C-Präprozessor
#define x y void test() { int x = 5; #if x == 5 y++ #endif }
Ist y++ im resultierenden Code?
P: Funktional: was ist das? „ich definiere mir mal globale variable x“
S: gibt keine globale Variablen
P: Wie sind Listen aufgebaut?
S: rekursiv definiert
P: Programmieren sie eine Funktion (Syntax egal) die zählt wie oft der String „ronald“ in einer Liste enthalten ist
P: Was ist ducktyping?
S: „if it walks like a duck, if it quacks like a duck, its a duck“
P: da Python bei der Erklärung erwähnt, wie läuft das konkret bei Python? Beispiel verkettete liste, programmieren sie mal, Klassen: Node, List
S hat hier etwas gehangen weil er sich nicht zu 100% sicher war ob man die Instanzvariablen von einem Objekt (hier next referenz) explizit bei der Definition von der Node-Klasse angeben muss.
P: logisch, wie funktioniert eine Anfrage?
S: Fakten und Regeln
P: konkret - wenn man viele Fahrräder hat, dann ist man reich (aufschreiben )
viele_fahrraeder(X) : reich(X). reich(ronald). reich(michael).
P: skizzieren sie was bei der Anfrage passiert
S erklärt Backtracking
P: was ist Unification?
Das war's dann auch schon, war relativ langsam bei den Erklärungen → nicht alle Fragen konnten gestellt werden, daher nur 2.0 alles in allem mehr konkrete Abläufe als nur die Idee dahinter!