SS 2006: Konzepte höherer Programmiersprachen


Termine

Vorlesung: Di 16:15 - 17:45 H-A 8107 (neu!)
Do 16:00 - 17:30  H-F 116
Erste Vorlesung  Mo 03. 04. 2006 
Übung: Do 14:15 - 15:45  H-F 116
Erste Übung  20. 04. 2006


Folien und andere Materialien aus der Vorlesung:

 
Vorlesung Mo 03.04.2006  Stand: 05.04.2006  (Seiten 1-15)  PDF (76 K)
Vorlesung Do 06.04.2006  Stand: 09.04.2006  (Seiten 16-31)  PDF (76 K)
Definition der Umgebungssemantik  (vom 16.04.2006)    PDF (57 K)
Beispiele zur Umgebungssemantik  (vom 20.04.2006)  Bsp. 1: Statische Bindung  PDF (29 K)
    Bsp. 2: Information hiding  PDF (27 K)
  (vom 25.04.2006)  Bsp. 3: Rekursion  PDF (23 K)
Programmiersitzung:   (vom 04.05.2006)  Vom lambda-Kalkül zu Scheme  PDF (12 K)
Programmiersitzung:   (vom 09.05.2006)  Datenstrukturen in Scheme: Paare und Listen  PDF (11 K)  (neue Version vom 11.05.)
Programmiersitzung:   (vom 11.05.2006)  Datenstrukturen in Scheme: Bäume   PDF (12 K)
Typregeln für die einfach getypte Sprache:       PDF (35 K)
Herleitungs-Beispiele:     Fakultätsfunktion  PDF (21 K)
    map  PDF (24 K)
Typregeln für die let-Polymorphie::       PDF (28 K)
Herleitungs-Beispiele:   (vom 22.06.2006)  member  PDF (25 K)
  (vom 27.06.2006)  Illustration zu Regel (P-LET)  PDF (27 K)
Typinferenz-Algorithmen:       PDF (28 K)
Programmiersitzung:   (vom 11.07.2006)  Fallstudie zum Subtyping  PDF (19 K)

Übungsblätter

Übung 1 PDF
Übung 2 PDF
Übung 3 PDF
Hilfestellung zu Aufgabe 3
Übung 4 PDF
Übung 5 PDF
Übung 6 PDF
Übung 7 PDF
Übung 8 PDF
Übung 9 PDF
Übung 10 PDF
Übung 11 PDF

Lösungen

Übung 1, Aufgabe 1 O'Caml   O'Caml PDF   Scheme
Übung 1, Aufgabe 2 O'Caml   O'Caml PDF   Scheme
Übung 1, Aufgabe 3 O'Caml   O'Caml PDF
Übung 2, Aufgabe 1 und 2 O'Caml   O'Caml PDF
Übung 2, Aufgabe 3 b PDF
Übung 2, Aufgabe 3 c PDF
Übung 2, Aufgabe 3 d PDF
Übung 3, Aufgabe 1 PDF
Übung 3, Aufgabe 2 Scheme
Übung 3, Aufgabe 3 a Java
Übung 3, Aufgabe 3 a und b O'Caml   O'Caml PDF
Übung 5, Aufgabe 1 Scheme   Scheme PDF
Übung 5, Aufgabe 2 Scheme   Scheme PDF
Übung 7, Aufgabe 1 PDF  
Übung 7, Aufgabe 3 PDF  
Übung 8, Aufgabe 1 PDF  
Übung 9, Aufgabe 1 O'Caml  
Übung 9, Aufgabe 2 PDF  
Übung 10, Aufgabe 1 O'Caml  
Übung 10, Aufgabe 2 O'Caml  
Übung 10, Aufgabe 3 O'Caml  
Übung 10, Aufgabe 4 O'Caml  


Inhalt:

In der Vorlesung werden besprochen

    1. imperative Programmierung (Algol, Pascal, C) 
    2. objektorientierte Programmierung (Simula, Smalltalk, C++, Java, O'Caml)
    3. funktionale Programmierung (Lisp, Scheme, ML, O'Caml)
    4. logische Programmierung (Prolog)
    1. ungetypte (besser: dynamisch getypte) Sprachen (Lisp, Scheme, Smalltalk)
    2. einfach getypte Sprachen (Algol, Pascal, C)
    3. polymorph getypte Sprachen (Miranda, Haskell, ML, O'Caml, mit Einschränkung: C++)
    4. Typinferenz (ML, O'Caml)
    5. Subtyping (Java, O'Caml)
    6. Inklusions-Polymorphie (Java, O'Caml)
    1. Kontrollstrukturen (Iteration, Rekursion)
    2. Bindungsmechanismen (statische und dynamische Bindung, late binding)
    3. Parameterübergabe (call-by-value, call-by-name, call-by-reference)
    4. Datenstrukturen (Listen, records, arrays)
    5. Datenabstraktion (Module, Objekte, Klassen)
    6. exception handling


Literatur

Allgemein

  1. John Mitchell: Concepts in Programming Languages, Cambridge University Press, 2003
  2. Ravi Sethi: Programming Languages, Concepts & Constructs, 2nd Edition, Addison Wesley, 1997
  3. Bruce J. MacLennan: Principles of Programming Languages: Design, Evaluation and Implementation, Oxford University Press, 1999
  4. Robert D. Tennent: Principles of Programming Languages, Prentice Hall International, 1980
  5. Herbert Klaeren: Skript zur Vorlesung "Konzepte von Programmiersprachen", Universität Tübingen, Entwurf 2004 http://www-pu.informatik.uni-tuebingen.de/users/klaeren/kvps/index.html

Zu einzelnen Programmiersprachen

  1. Robert Harper: Programming in Standard ML, Carnegie Mellon University, Working Draft 2005 http://www-2.cs.cmu.edu/~rwh/smlbook
  2. Lawrence C. Paulson: ML for the Working Programmer, Cambridge University Press, 1996
  3. Jeffrey D. Ullman: Elements of ML Programming, Prentice Hall, 1998
  4. R. Kent Dybvig, The Scheme Programming Language, 3rd edition, MIT Press, 2003, auch als html-Version
  5. R. Kent Dybvig, Chez Scheme User's Guide, gibt es wohl nur als html-Version
  6. Harold Abelson, Gerald J. Sussman, Julie Sussman: Structure and Interpretation of Computer Programs, MIT Press, 1996