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