Modula-2
Modula-2 ist eine imperative, aber nicht objektorientierte Programmiersprache. Sie wurde 1978 von Nikolaus Wirth aus dem Vorläufer Pascal entwickelt.
Wichtigste Neuerung gegenüber Pascal ist ein Modulkonzept, bei dem die Schnittstelle und die Implementierung eines Moduls in zwei verschiedenen Dateien (DEFINITION MODULE und IMPLEMENTATION MODULE) erfasst wird.
Elementare Typen
INTEGER - vorzeichenbehaftete Ganzzahlen
CARDINAL - nichtnegative Ganzzahlen
REAL - reelle Zahlen
BOOLEAN - boolesche Werte
CHAR - Zeichen
[..] - Unterbereiche, z.B. ['A' .. 'Z']
(<value>, ...) - Aufzählungen
Abgeleitete Typen
SET OF <type> - Mengen
ARRAY OF <type> - Arrays
RECORD <name>:<type> ... END - zusammengesetzte Typen, auch mit Varianten
POINTER TO <type> - Zeiger
PROCEDURE(<name>:<type>, ...) - Prozedurtypen
Die Definition eines Zeigertyps kann in einem Definition Module ausgelassen werden und wird dann nur im Implementation Module gemacht (opaquer Typ).
Kontrollstrukturen
IF <condition> THEN ... ELSIF <condition> ... END - Fallunterscheidung
CASE <value> OF <value>:... END - Fallunterscheidung anhand eines Werts
WHILE <condition> DO ... END - Schleife mit Bedingung am Anfang
REPEAT ... UNTIL <condition> - Schleife mit Bedingung am Ende
LOOP ... EXIT; ... END - Schleife mit explizitem Abbruch
FOR <variable> = <value> TO <value> DO ... END - Zählschleife
PROCEDURE <name>(<name>:<type>, ...) ... END - Prozedurdefinition
<name>(<value>, ...) - Prozeduraufruf
Standardmodule
Modula-2 bringt eine Reihe von Standardmodulen mit. Diese decken unter anderem Funktionalitäten wie mathematische Standardfunktionen, Zeichenkettenverarbeitung, Verwaltung von dynamischem Speicher, IO und Nebenläufigkeit ab.
Quellen
http://de.wikipedia.org/wiki/Modula-2
Wichtigste Neuerung gegenüber Pascal ist ein Modulkonzept, bei dem die Schnittstelle und die Implementierung eines Moduls in zwei verschiedenen Dateien (DEFINITION MODULE und IMPLEMENTATION MODULE) erfasst wird.
Elementare Typen
INTEGER - vorzeichenbehaftete Ganzzahlen
CARDINAL - nichtnegative Ganzzahlen
REAL - reelle Zahlen
BOOLEAN - boolesche Werte
CHAR - Zeichen
[..] - Unterbereiche, z.B. ['A' .. 'Z']
(<value>, ...) - Aufzählungen
Abgeleitete Typen
SET OF <type> - Mengen
ARRAY OF <type> - Arrays
RECORD <name>:<type> ... END - zusammengesetzte Typen, auch mit Varianten
POINTER TO <type> - Zeiger
PROCEDURE(<name>:<type>, ...) - Prozedurtypen
Die Definition eines Zeigertyps kann in einem Definition Module ausgelassen werden und wird dann nur im Implementation Module gemacht (opaquer Typ).
Kontrollstrukturen
IF <condition> THEN ... ELSIF <condition> ... END - Fallunterscheidung
CASE <value> OF <value>:... END - Fallunterscheidung anhand eines Werts
WHILE <condition> DO ... END - Schleife mit Bedingung am Anfang
REPEAT ... UNTIL <condition> - Schleife mit Bedingung am Ende
LOOP ... EXIT; ... END - Schleife mit explizitem Abbruch
FOR <variable> = <value> TO <value> DO ... END - Zählschleife
PROCEDURE <name>(<name>:<type>, ...) ... END - Prozedurdefinition
<name>(<value>, ...) - Prozeduraufruf
Standardmodule
Modula-2 bringt eine Reihe von Standardmodulen mit. Diese decken unter anderem Funktionalitäten wie mathematische Standardfunktionen, Zeichenkettenverarbeitung, Verwaltung von dynamischem Speicher, IO und Nebenläufigkeit ab.
Quellen
http://de.wikipedia.org/wiki/Modula-2