SS 2004: Konzepte höherer Programmiersprachen


Termine


Vorlesung: Mi 10:15 - 11:45 H-F 116

Do 14:15 - 15:45  H-C 3303 
Übung: Di 12:00 - 13:30  H-C 5324

 

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. Subtyp-Polymorphie (O'Caml)
  1. Kontrollstrukturen (Iteration, Rekursion)
  2. Datenstrukturen (Listen, records, arrays)
  3. Datenabstraktion (Module, Objekte, Klassen)
  4. exception handling
Da die Sprache O'Caml fast alle Konzepte enthält, die wir besprechen wollen, wird sie uns als "roter Faden" für die Vorlesung dienen.

OCaml-Sitzungen (noch nicht kommentiert):

22.04.2004  simple_expressions.ml  simple_declarations.ml rationals  simple_functions.ml  simple_recursion.ml  higher_order.ml
28.04.2004  exponent.ml  block.ml
29.04.2004  tuples.ml  records.ml  unions.ml  lists.ml 
05.05.2004  lists_continued.ml  trees.ml 
02.06.2004  type_equality.ml  streams.ml  refs.ml 
03.06.2004  arrays.ml  mutable_records.ml  polyref.ml  objects.ml 
09.06.2004  oo.ml 
16.06.2004  subtyping.ml 
17.06.2004  subtyping_rules.ml  subtype_polymorphism.ml 
30.06.2004  oo_functional.ml 
01.07.2004  oo_lists.ml  oo_features.ml 
08.07.2004  modules.ml 
14.07.2004  comparison.ml 
15.07.2004  exceptions.ml 

Literatur

1. John Mitchell: Concepts in Programming Languages, Cambridge University Press, 2003

2. Ravi Sethi: Programming Languages, Concepts & Constructs, 2nd Edition, Addison Wesley, 1997