====== Principles of Programming Languages (Juli 2015) ======
**Fach:** Principles of Programming Languages
**Prüfer:** Prof. Veldema
===== Fragen =====
* Was ist deine Lieblingssprache?
* Hat man in Java polymorphe Methoden?
* Gibt es Sprachen mit polymorphen Methoden?
* Java: Type-Introspection - was ist das?
* Java: Was sind Closures?
* Java: Was ist ein RPC? Was ist der Unterschied zwischen lokalen und entfernten Aufruf (semantisch)?
* Calling- Conventions - welche sind bekannt?
* Was ist Lazy Evaluation?
* Programmiere: Liste von allen geraden Zahlen (in List Comprehension)
* Funktionale Sprache: Baue Funktion, die Liste umdreht (mit Pattern-Matching)
* Länge einer Liste mit Pattern-Matching + das gleiche in Prolog
* Cut-Operator - was ist das
* Wie geht das Prologsystem vor? (Schrittweises durchgehen):
Wenn jemand Reich ist, hat man ein Fahrrad
Peter ist Reich
Ronald ist auch Reich
Wer hat ein Fahrrad?
* Präprozessor, was passiert hier:
define x ist 3
if x ist größer 2
x++
* Was sind Unions?
* Was ist Operator-Overloading?
* Was tut yield-Statement?
* Wie funktioniert Postscript?
* Javascript: was macht eval - statement?
* Welche Wege gibt es Typäquivalenz zu beweisen?
* Was ist Namens- und Strukturelleaquivalenz? Und was hat Java, was C, was ADA?
* Was ist ein Typ-Construktor?
* Java: Generics; C++ Templates - was sind die unterschiedlichen Semantiken? bzw wie funktionieren die beiden?
* Java: Dependency Injection - was ist das?
* Ich bau mir eine neue Programmiersprache - dazu schreibe ich Manual - welches Kapitel wird dieses Manual haben?
* Neue Programmiersprache hat while-statement:
- Nummerierter ListenpunktGrammatik dazu aufschreiben
- Wie geht das als Attribute-Grammatik
- Wie geht das als Operational und Axiomatic-Semantik