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
-
die verschiedenen Programmierparadigmen
- imperative Programmierung (Algol, Pascal, C)
- objektorientierte Programmierung (Simula, Smalltalk, C++, Java,
O'Caml)
- funktionale Programmierung (Lisp, Scheme, ML, O'Caml)
- logische Programmierung (Prolog)
-
die unterschiedlichen Typsysteme von Programmiersprachen
- ungetypte (besser: dynamisch getypte) Sprachen (Lisp, Scheme,
Smalltalk)
- einfach getypte Sprachen (Algol, Pascal, C)
- polymorph getypte Sprachen (Miranda, Haskell, ML, O'Caml, mit
Einschränkung: C++)
- Typinferenz (ML, O'Caml)
- Subtyping (Java, O'Caml)
- Subtyp-Polymorphie (O'Caml)
- Kontrollstrukturen (Iteration, Rekursion)
- Datenstrukturen (Listen, records, arrays)
- Datenabstraktion (Module, Objekte, Klassen)
- 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