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:
- Typsystem:
- Automatische Herleitung von Typen bei der Übersetzung
- Deklaration von freien Datentypen
- Abstrakte Datentypen
- Funktionen:
- Höherstufige Funktionen
- Funktionsdefinition durch Fallunterscheidung nach Mustern des Arguments
- Imperative Konstrukte:
- referenzierbare Objekte (Zeiger)
- Schleifenkonstrukte
- Modulsystem:
- Verpackung von Typen, Objekten und Funktionen in ,,Strukturen''
- Zusammensetzung von Strukturen zu größeren Moduln durch ,,Funktoren''
- Spezifikation und Überprüfung von Schnittstellen zwischen Moduln
- Neuübersetzung nach Programmänderungen:
- Automatische Abhängigkeitsanalyse zwischen Moduln
- Automatische Neuübersetzung nur der notwendigen Module
Der Kurs wird diese Sprachkonstrukte und Programmierwerkzeuge neben
Beispielen aus dem Buch von Paulson hauptsächlich an folgenden Beispielen
erläutern:
- Übersetzungen zwischen regulären Ausdrücken und endlichen Automaten
- Berechnung von Eigenschaften und Transformationen kontextfreier
Grammatiken
- Berechnung von Suffixbäumen und Suchverfahren
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
- Typen bool, unit, 'a list und Funktionsdefinitionen
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/bool-unit-list.ps
- Syntax der Kernsprache
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/kernsprache.ps
- Typsprache und Typherleitungsregeln
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/typsprache.ps
- Syntax der Modulsprache
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/modulsprache.ps
- Abstrakte Datentypen
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/abstype.ps
- Funktoren: parametrisierte Module
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/funktoren.ps
- Lokale Deklarationen und Feldtypen:
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/deklarationen.ps
- Endliche Automaten:
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/automaten.ps
- Abhängige Signaturen und Signatureinschränkung
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/signatureinschraenkung.ps
- Referenzierbare Objekte (Zeiger)
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-folien/pointer.ps
Aufgaben
- Aussagenlogische Formeln 1
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-aufgaben/formeln.ps
- Aussagenlogische Formeln 2
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-aufgaben/formeln2.ps
- Mengen und Mengenoperationen
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-aufgaben/mengen.ps
- Einfache Strukturen und Signaturen
http://www.cis.uni-muenchen.de/~leiss/sml-Kurs-aufgaben/halbringe.ps
- 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.