Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmierung 1 - Repetitorium

Ähnliche Präsentationen


Präsentation zum Thema: "Programmierung 1 - Repetitorium"—  Präsentation transkript:

1 Programmierung 1 - Repetitorium
WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:

2 Direkt ausführbare Programme
Donnerstag, den Kapitel 8 Direkt ausführbare Programme

3 8.1 Zeichen und Zeichenreihen
Zeichenreihe = Werte des Typs string “Informatik“ leere Zeichenreihe = “ “ Zeichen = Wert des Typs char #“S“ Konvertierungsprozeduren : explode : string → char list “SML“ → [#“S“,#“M“,#“L“] implode : char list → string [#“S“,#“M“,#“L“] → “SML“ ord : char → int #“A“ → 65 chr : int → char 65 → #“A“ Hinweis : Große Buchstaben werden mit kleineren Zahlen dargestellt als kleine Buchstaben ! Sonderzeichen : \“ Anführungszeichen \t Tabulator \\ Backslash \n Zeilenwechsel

4 8.1 Zeichen und Zeichenreihen
Die Operation ^ konkateniert zwei Zeichenreihen. lexikographische Vergleiche auf Zeichenreihen mit < , <= , > , >= size : string → int liefert die Länge einer Zeichenreihe Prozeduren zum Konvertieren zwischen ganzen Zahlen und Zeichenreihen : Int.toString : int → string Int.fromString : string → int option weitere Funktionen : siehe Standardstrukturen Char und String Eine Auflistung der gesamten Bibliothek von Moscow ML ist hier zu finden :

5 8.2 Übersetzung Der Übersetzer überprüft das Quellprogramm zunächst auf Zulässigkeit und meldet eventuelle Fehler. Nur wenn das Quellprogramm fehlerfrei ist, wird ein Objektprogramm erzeugt. Ausgabeprozedur print : string → unit Übersetzer mosmlc CommandLine.arguments : unit → string list liefert die Startargumente als Zeichenreihe. Das Laden von Standardstrukturen ist beim Arbeiten mit dem Übersetzer nicht erforderlich. app : (‘a → unit ) → ‘a list → unit wendet eine Prozedur auf jedes Element einer Liste an : app p [ x1 , ... , xn ] = ( p x1 ; ... ; p xn )

6 8.3 Dateien und Prozesse Das Dateisystem realisiert einen Speicher, dessen Einträge (die Dateien) jeweils aus einem Namen (dem Dateinamen) und einer Zeichenreihe (dem Inhalt der Datei) bestehen. Ein Programmaufruf ist eine Folge p a1, ... , an von Zeichenreihen. Dabei ist p der Name der Datei, in der das Programm steht. Die Zeichenreihe a1 , ... , an sind die Startargumente. Wenn das Betriebssystem einen Programmaufruf ausführt, erzeugt es einen Prozess, in dem das Programm ausgeführt wird.

7 8.4 Lesen und Schreiben von Dateien
Mithilfe der Standardstruktur TextIO können Programme auf das Dateisystem des Betriebssystems zugreifen und Dateien lesen und schreiben. Lesevorgang : Öffnen einer Datei mit TextIO.openIn : string → instream Zeile aus dem Eingabstrom lesen mit TextIO.inputLine : instream → string Schließen einer Datei mit TextIO.closeIn : instream → unit Schreibvorgang : Öffnen einer Datei mit TextIO.openOut : string → outstream Zeichen in Datei schreiben mit TextIO.output : outstream * string → unit Schließen einer Datei mit TextIO.closeOut : outstream → unit

8 8.5 Interaktive Programme
immer offener Eingabestrom TextIO.stdIn Wenn der Benutzer noch keine Zeile eingegeben hat, blockiert die Ausführung des Ausdrucks TextIO.inputLine TextIO.stdIn solange, bis der Benutzer eine Zeile eingibt. Die Ausführung eines direkt ausführbaren Programms kann übrigens immer mit Gewalt durch die Eingabe von Ctrl + c abgebrochen werden.

9 8.6 Imperative Prozeduren
fun date () = Date.toString(Date.fromTimeLocal(Time.now())) liefert das aktuelle Datum mit Uhrzeit date ( ) = date ( ) kann durchaus zu false auswerten Prozeduren, deren Semantik vollständig durch die zugeordnete Funktion beschrieben wird, werden als funktionale Prozeduren bezeichnet. Alle anderen Prozeduren werden als imperative Prozeduren bezeichnet.


Herunterladen ppt "Programmierung 1 - Repetitorium"

Ähnliche Präsentationen


Google-Anzeigen