Modula-2 (modular programming language)

Die Programmiersprache Modula-2 (Modular Programming Language) vereinigt - mehr noch als ihre Vorläuferin Pascal - Einfachheit und Eleganz mit einer breiten Anwendungsmöglichkeit. Sie wurde 1977 von Niklaus Wirth als Antwort auf die Bedürfnisse bei der Bewältigung komplexer Programmieraufgaben konzipiert. Der Schlüsselbegriff dazu ist " Abstraktion durch Modularisierung". Modula-2 eignet sich sowohl für die Systemprogrammierung als auch für die Entwicklung umfangreicher Softwarepakete.


Modula-2 unterstützt einen guten Programmierstil und hat einen - im Vergleich z.B. zur Programmiersprache Ada - überschaubaren Wortschatz, dem ein klares Sprachkonzept zugrunde liegt.

Die Abstraktionsmittel von Modula-2

Das wichtigste Abstraktionsmittel der Programmiersprache Modula-2 ist ihr Modulkonzept. Mit ihm lassen sich Programme in überschaubare und voneinander weitgehend unabhängige Teile - in sogenannte Moduln - gliedern, deren Aufspaltung in Definitions- und Implementationsteil (Definitionsmodul und Implementationsmodul) ein separates Übersetzen ermöglicht. Diese Moduln können in einer Programmbibliothek abgelegt werden. In ihrem Definitionsteil wird von den Details der Realisierung der Modulfunktion abstrahiert. Er beschreibt, was das Modul leistet, nicht wie. Wie die Modulfunktion erfüllt wird steht im zugehörigen Implementationsteil. Für eine verteilte Entwicklung genügt es deshalb, als Schnittstellen nur die Definitionsmoduln festzulegen. Das Ausformulieren der Implementationsmoduln bleibt dann gänzlich dem jeweils zuständigen Entwickler überlassen. Auch das Austesten der Moduln kann weitgehend unabhängig vorgenommen werden. Modularisierung hilft somit, die Schwierigkeiten, die der Entwurf umfangreicher Programme mit sich bringt, in den Griff zu bekommen.

Das Modulkonzept von Modula-2

Das Modulkonzept von Modula-2 erlaubt ferner die Abkapselung maschinen-( compiler)-abhängiger Programmteile in sogenannte Basismoduln (low-level modules). Dadurch wird eine individuelle Spracherweiterung möglich und zugleich das Übertragen von Programmen auf unterschiedliche Plattformen erleichtert. Konsequenterweise wurde von Niklaus Wirth, dem Schöpfer von Modula-2, auch kein Element in die Sprache aufgenommen, dessen Implementierung besser dem Anwender der Sprache überlassen bleibt. So gibt es in Modula-2 beispielsweise keine Standardroutinen für die Ein- und Ausgabe, keinen Standard-Datentyp FILE, ebenso wenig das Konzept einer Task oder einer Semaphore. Solche Programmierelemente werden in allgemeinen Bibliotheksmoduln bereitgestellt.

Insgesamt gesehen erfüllt das Modulkonzept von Modula-2 die beiden wichtigsten Kriterien, die an ein adäquates sprachliches Abstraktionsmittel zu stellen sind: es ist leicht zu verstehen und dennoch hilfreich, komplexe Situationen zu meistern.

Das zweite, gegenüber Pascal neu hinzugekommene Sprachkonzept ist das einer Koroutine. Damit lassen sich mögliche Parallelitäten in der Bearbeitung einer Aufgabe ausdrücken. Koroutionen können ebenso wie Moduln als Erweiterung des Prozedurkonzepts aufgefasst werden. Koroutinen finden ihre Anwendung vor allem bei Simulationsaufgaben und in der System- und Echtzeitprogrammierung, d.h. bei einer Verarbeitung asynchroner Ereignisse. Sie lassen sich aber in anderen Aufgabenbereichen vorteilhaft verwenden, so z.B. als Alternative zur Rekursion.

Gegenüber Pascal enthält Modula-2 noch eine Reihe zusätzlicher Erweiterungen, aber auch einige Einschränkungen.

Modula-2 ist eine elegante, leicht zu erlernende Programmiersprache und - gerade auch wegen der Beschränkung des Sprachumfangs auf das Wesentliche - ein effizientes Werkzeug für die Entwicklung zuverlässiger Software. Sie ist leicht zu implementieren und konkurriert in der Hauptsache mit den Programmiersprachen C, Ada und Pascal.

Informationen zum Artikel
Deutsch:
Englisch: modular programming language - Modula-2
Veröffentlicht: 02.11.2013
Wörter: 513
Tags: #Sonstige Programmiersprachen
Links: Abstraktion, Ada, Compiler, Datei, Ereignis