Typtransfer-Funktionen


Beim Aufbau von Ein- oder Ausgaberoutinen steht man vor dem Problem, beliebige druckbare Zeichen anhand ihrer Position in der ASCII-Tabelle auszuwählen, oder auch umgekehrt zu einem vorgelegten Zeichen seine Position in der Tabelle zu bestimmen; dieses Problem tritt bereits bei den Ziffern auf!

Dafür bietet Modula zwei Umwandlungsfunktionen standardmäßig an:

Ein gutes Beispiel für die Verwendung dieser Transfer-Funktionen und auch die Anwendung der Rekursion ist die Ausgabe von CARDINAL-Werten zur Basis 16 (hexadezimal).

Auch für andere Datentypen gibt es Umwandlungsfunktionen: so ist in der Mathematik die Menge N eine Teilmenge von Z, und Z ist Teilmenge sowohl von Q wie von R. Für die entsprechenden Datentypen CARDINAL, INTEGER, REAL in Modula gilt dies aber keineswegs, weil die interne Darstellung der Werte verschieden ist.

Daß die beiden letzten Funktionen ebenso heißen wie die Ergebnis-Datentypen, ist merkwürdig, aber praktisch, da leicht zu merken. Natürlich muß sich das Ergebnis im neuen Datentyp intern darstellen lassen, sonst kann beliebig Fürchterliches passieren.

Auch in anderen Programmiersprachen gibt es solche Umwandlungsfunktionen, die allerdings meist etwas anders heißen und auch etwas anders arbeiten; manchmal wird auch automatisch bei Bedarf umgewandelt. Hier ist man von einer Standardisierung leider weit entfernt. Auch die oben genannten Funktionen sind in Modula nicht wirklich genormt, sondern implementierungsabhängig.


zurück | Inhalt | Index | vor | Vorlesung

Klaus Lagally, 22. Februar 2000, 19:36