Einführung in Standard ML Einführung in Standard ML

H.Leiß

Programmierkurs
Zeit: Mi. 10-12
Ort: Raum 0.13
Dozent: H.Leiß
Voraussetzung: Grundkenntnisse über endliche Automaten und kontextfreie Grammatiken.

Inhalt und Ziele der Veranstaltung

Die funktionale Programmiersprache Standard ML ist eine getypte Sprache, die einige Unterstützung bei der Programmierung bietet:

  1. Typsystem:
  2. Funktionen:
  3. Imperative Konstrukte:
  4. Modulsystem:
  5. Neuübersetzung nach Programmänderungen:

Der Kurs wird diese Sprachkonstrukte und Programmierwerkzeuge neben Beispielen aus dem Buch von Paulson hauptsächlich an folgenden Beispielen erläutern:

Der Kurs dient auch dazu, einige im Proseminar ,,Endliche Automaten und Formale Sprachen'' behandelte Verfahren unter Anleitung zu implementieren und dadurch besser verstehen zu lernen.

Literatur

L.C.Paulson: ML for the Working Programmer. 2nd edition. Cambridge University Press 1996

Erfolgsbescheinigung

bei brauchbarer Lösung der Programmieraufgaben.

Vorlesungsfolien

  1. Typen bool, unit, 'a list und Funktionsdefinitionen
  2. Syntax der Kernsprache
  3. Syntax der Typsprache
  4. Syntax der Modulsprache, Abstrakte Datentypen
  5. Funktoren: Beispiel Lexikographische Ordnung
  6. Funktoren: Beispiel Matrizenring über einem Halbring    (Quellcode)

Übungsaufgaben

  1. Aufgabenblatt 1 (Listenfunktionen)
  2. Aufgabenblatt 2 (Aussagenlogische Formeln)
  3. Aufgabenblatt 3 (Syntaxbäume und Durchsuchen von Bäumen)
  4. Aufgabenblatt 4 (Ein Modul für Suchbäume (Tries))
  5. Aufgabenblatt 5 (Ein Funktor zum kartesischen Produkt von Halbringen)
  6. Aufgabenblatt 6 (Abhängige Signaturen und ein anderer Matrixfunktor)

Lösungen zu ausgewählten Aufgaben

  1. Lösungen zu Aufgabenblatt 2
  2. Lösungen zu Aufgabenblatt 3 (Erweitert um eine Lösung zu Aufg. 3.2)
  3. Lösungen zu Aufgabenblatt 4

Aufruf und Bedienung von SML

Wird noch ergänzt. Vorläufig siehe die Bemerkungen dazu zum SML-Kurs WS 2000/01

  1. sml-mode-3.1.tgz, angepaßt ans CIS


File translated from TEX by TTH, version 2.54.
On 18 Jun 2003, 19:07.