Modularisierung


Unter einem Modul (das  Modul; Betonung auf der zweiten Silbe) verstehen wir in Modula 2 eine selbständige Übersetzungseinheit. Davon gibt es verschiedene Sorten: Ein Bibliotheks-Modul kann (fast) beliebige Modula-Objekte zum Import durch andere Module "exportieren". Oft sind es eine oder mehrere Objektklassen (in Modula: Datentypen), dann spricht man von einem Typen-Modul. Wird nur ein einziges Datenobjekt exportiert, so nennt man das Modul ein Daten-Modul. Ist eine Objektklasse schon anderweitig verfügbar und werden nur zusätzliche Methoden dafür zur Verfügung gestellt, so spricht man von einem Funktions-Modul.

Zu einem Bibliotheks-Modul gehören zwei Komponenten, ein Definitions-Modul und ein Implementierungs-Modul. Das Definitions-Modul ist eine Beschreibungsdatei, in der die Schnittstelle beschrieben ist; dort sind alle exportierten Modula-Objekte und Dienste aufgeführt samt allen zu ihrer Verwendung nötigen Informationen, also ihr Kontrakt. Die Beschreibungsdatei beginnt mit den Modula-Schlüsselwörtern "DEFINITION MODULE"; sie muß durch das Modula-System in eine maschinenlesbare interne Form überführt werden, um dann für "IMPORT" verfügbar zu sein.

Das Implementierungs-Modul enthält die Programmteile, die alle in der Schnittstelle angebotenen Objekte und Dienste realisieren. Es beginnt mit den Schlüsselwörtern "IMPLEMENTATION MODULE" und wird in ausführbaren Code übersetzt, der später mit den Aufrufern zusammen zu einem ausführbaren Programm zusammengebunden wird. Das Implementierungs-Modul bezieht sich implizit auf die Schnittstelle und kann geändert werden,  ohne daß die es aufrufenden Programmteile davon wissen müssen, solange die Schnittstelle, und also der Kontrakt, gleich bleibt.


zurück | Inhalt | Index | vor | Vorlesung

Klaus Lagally, 22. Februar 2000, 19:36