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

H.Leiß

Programmierkurs
Zeit: Di. 13-15
Ort: Raum 0.13
Voraussetzung: Nützlich sind Grundkenntnisse über endliche Automaten, die in der Veranstaltung ,,Endliche Automaten und Formale Sprachen'' vermittelt werden.

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 also 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 http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/bool-unit-list.ps
  2. Syntax der Kernsprache http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/kernsprache.ps
  3. Typsprache und Typherleitungsregeln http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/typsprache.ps
  4. Syntax der Modulsprache http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/modulsprache.ps
  5. Abstrakte Datentypen http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/abstype.ps
  6. Funktoren: parametrisierte Module http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/funktoren.ps
  7. Lokale Deklarationen und Feldtypen: http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/deklarationen.ps
  8. Endliche Automaten: http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/automaten.ps
  9. Abhängige Signaturen und Signatureinschränkung http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/signatureinschraenkung.ps
  10. Referenzierbare Objekte (Zeiger) http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/pointer.ps

Aufgaben

  1. Aussagenlogische Formeln 1 http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-aufgaben/formeln.ps
  2. Aussagenlogische Formeln 2 http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-aufgaben/formeln2.ps
  3. Mengen und Mengenoperationen http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-aufgaben/mengen.ps
  4. Einfache Strukturen und Signaturen http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-aufgaben/halbringe.ps
  5. Funktoren zur Berechnung eines Matrixpakets http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-aufgaben/matrizenringe.ps

Software

Es gibt verschiedene, zum Teil frei verfügbare, Implementierungen von Standard ML.

Im Kurs wird ,,Standard ML of New Jersey, version 110.0.3'' benutzt, das auch auf den Rechnern im Raum Z 11 installiert ist. Eine Beschreibung der Bedienung der SML-Installation am CIS findet man unter

http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-00-01.bedienung.html

Jeder Teilnehmer, bei dem immer noch eine der dort beschriebenen Anweisungen nicht funktioniert, schicke mir eine Email oder komme vorbei! (Die Probleme in der 2.Übungstunde lagen an Fehlern beim Abschreiben der Zeilen für die Datei .emacs oder daran, daß der Suchpfad das Verzeichnis /usr/local/bin nicht enthielt; die Datei sml-init.el war korrekt.)

(Bisher habe ich weder den neuesten Patch 110.0.7 noch die Arbeitsversion 110.29 für Compiler-Hacker installiert; ich warte lieber auf die für 2000 angekündigte Version 111.)

Man kann Standard ML of New Jersey kostenlos sowohl für Linux wie für Windows NT bekommen. Siehe dazu

http://cm.bell-labs.com/cm/cs/what/smlnj/

Dort findet man Installationsbeschreibung, Binärdateien und Quelldateien. Man kann die Dateien schneller aus dem Archiv an der Universität Kopenhagen bekommen, siehe ftp://ftp.diku.dk/pub/smlnj/.


File translated from TEX by TTH, version 2.54.
On 26 Jan 2001, 19:48.