Modula 2 Sprachbeschreibung
Leider ist nicht normiert, welche Module einem Entwicklungssystem
als Standardmodule beigelegt werden. Als grober Anhaltspunkt kann aber
die von Wirth vorgegebene Struktur dienen. Einige dieser Module sind
im folgenden mit einigen darin enthaltenen Definitionen
aufgeführt.
- SYSTEM
- Dieses Modul enthält maschinennahe Funktionen wie z.B.
Zugriff auf Prozessorregister o.ä. und liegt nicht als Datei vor.
Es ist prakktisch im Compiler eingebaut.
- BYTE, WORD, LONGWORD
Datentypen der Lämge 8, 16, 32. Zuweisungen zu Typen der
gleichen Länge sind möglich, Rechenoperationen sind nicht
definiert.
- ADDRESS
Typ zur Aufnahme einer Adresse, der kompatibel zu POINTER ist.
- ADR(variable):ADDRESS
Ermittelt die Adresse eienr Variable.
- CODE(w0,w1 ... : CARDINAL)
Dient zum Einfügen von Maschinencode.
- Storage
- Dieses Modul enthält Funktionen zur dynamischen
Speicherverwaltung.
- ALLOCATE(VAR a:ADDRESS;size:CARDINAL);
Fordert einen Speicherbereich an.
- DEALLOCATE(VAR a:ADDRESS;size:CARDINAL);
Gibt einen angeforderten Speicherbereich wieder frei.
- Strings
- Dieses Modul enthält Funktionen zur Behandlung von
Zeichenketten.
- Assign(VAR Dest: ARRAY OF CHAR; VAR Source:ARRAY OF CHAR);
Source in Dest kopieren
- Insert(VAR Substr: ARRAY OF CHAR; VAR Into: ARRAY OF CHAR; at:
CARDINAL);
Substr in Into ab Zeichen at einfügen
- Delete(VAR From: ARRAY OF CHAR; at,len:CARDINAL);
In From an at len Zeichen entfernen
- Copy(VAR From: ARRAY OF CHAR; at,len:CARDINAL; VAR Into: ARRAY OF
CHAR);
Von From ab at len Zeichen in Into kopieren
- Concat(VAR Source1, Source2: ARRAY OF CHAR; VAR Into: ARRAY OF
CHAR);
Source2 an Source1 anhängen und in Into ablegen
- Length(VAR Source: ARRAY OF CHAR): CARDINAL;
Anzahl der Zeichen in Source abliefern
- Compare(VAR Source1, Source2: ARRAY OF CHAR): CompareResults;
Less, wenn Source1 alphabetisch kleiner oder kürzer als
Source2: Equal, wenn Source1 = Source2; Greater, sonst
- Pos(VAR Source,Match: ARRAY OF CHAR; Start:CARDINAL; VAR Foundat:
CARDINAL): BOOLEAN;
Match in Source ab Start suchen. Liefert TRUE und Fundstelle in
Foundat, wenn gefunden. Sonst FALSE und ungültiges Foundat.
- InOut
- Dieses Modul enthält Funktionen zur Ein- und Ausgabe, also
Kommunikation mit einem Benutzer.
- Read (VAR ch: CHAR);
Liest ein Zeichen ein.
- ReadString (VAR s: ARRAY OF CHAR);
Liest eine Zeichenkette ein.
- ReadInt (VAR x: INTEGER);
Liest einen INTEGER ein.
- ReadCard (VAR x: CARDINAL);
Liest einen CARDINAL ein.
- ReadLong (VAR x: LONGINT);
Liest einen LONGINT ein.
- Write (ch: CHAR);
Schreibt ein Zeichen.
- WriteLn;
Fügt einen Zeilenvorschub ein.
- Filesystems
- Dieses Modul enthält Funktionen zum wahlfreien Zugriff auf
Dateien.
- File
Datentyp, der eine Datei beschreibt.
- Lookup(VAR f: File; VAR filename: ARRAY OF CHAR; new: BOOLEAN);
Sucht eine Datei und öffnet sie, wenn new = TRUE ist, wird
sie neu angelegt und eine bereits vorhandene gelöscht.
- Close(VAR f: File);
Schließen der Datei.
- Delete(VAR f: File);
Löschern der Datei.
- Rename(VAR f: File; VAR filename: ARRAY OF CHAR);
Umbenennen der Datei.
- SetPos(VAR f: File; pos: LONGINT);
Position für Zugriff in Datei setzen.
- GetPos(VAR f: File; VAR pos: LONGINT);
Position für Zugriff abfragen (0..x-1).
- Length(VAR f: File; VAR pos: LONGINT);
Dateilänge ermitteln (1..x).
- ReadWord(VAR f: File; VAR w: WORD);
Liest einen 2 Byte langen Wert.
- WriteWord(VAR f: File; w: WORD);
Schreibt einen 2 Byte langen Wert.
- ReadChar(VAR f: File; VAR ch: CHAR);
Liest ein CHAR.
- WriteChar(VAR f: File; ch: CHAR);
Schreibt ein CHAR.
- Streams
- Dieses Modul enthält Funktionen zum Zugriff auf einen
Datenstrom, also sequentielle Dateien.
- Stream
Datentyp, der einen Stream beschreibt.
- OpenStream(VAR s:Stream;name:ARRAY OF CHAR;kind:StreamKinds;VAR
reply:INTEGER);
Öffnen eines Streams mit dem Namen name der Art kind.
- CloseStream(VAR s:Stream;VAR reply:INTEGER);
Schließen eines Streams.
- Write8Bit(s:Stream;ch:BYTE);
- Write16Bit(s:Stream;ch:WORD);
- Write32Bit(s:Stream;ch:LONGWORD);
- Read8Bit(s:Stream;VAR ch:BYTE);
- Read16Bit(s:Stream;VAR ch:WORD);
- Read32Bit(s:Stream;VAR ch:LONGWORD);
Liest bzw. schreibt einen Datentyp der angegebene Länge.
- Write8BitBack(s:Stream;ch:BYTE);
- Write16BitBack(s:Stream;ch:WORD);
- Write32BitBack(s:Stream;ch:LONGWORD);
- Read8BitBack(s:Stream;VAR ch:BYTE);
- Read16BitBack(s:Stream;VAR ch:WORD);
- Read32BitBack(s:Stream;VAR ch:LONGWORD);
Liest bzw. schreibt einen Datentyp der angegebene Länge ohne
Veränderung des Dateizeigers. Dadurch werden gerade geschriebenen
Daten überschrieben bzw. erneut gelesen.
- MathLib
- Dieses Modul enthält höhere mathematische Funktionen.
Es kann auch MathLib0 heißen.
- sqrt(x: REAL): REAL;
- exp(x: REAL): REAL;
- ln(x: REAL): REAL;
- sin(x: REAL): REAL;
- cos(x: REAL): REAL;
- arctan(x: REAL): REAL;
Module speziell für die grafische Oberfläche des ST
(VDI, AES) sind nicht standardisiert. Von Wirth selbst existiert
für grafische Oberflächen ein Vorschlag: Windows,
GraphicWindows, TextWindows, CursorMouse und Menu.
|
English version not yet available.
|
Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home -
Mail an den Webmaster -
Impressum