|
Bei Prozedurtypen gibt es eine wesentliche Einschränkung
in Oberon: Es dürfen nur globale Prozeduren an Variablen
oder Parameter eines Prozedurtyps zugewiesen oder übergeben
werden.
| |
Das bedeutet, daß der Prozedur nur ihre Parameter und
globale Variablen zur Verfügung stehen.
| |
Da wir die Sortierprozedur unabhängig von dem zu
sortierenden Typ halten wollten, können wir das zu
sortierende Array nicht als Parameter übergeben.
| |
Daraus folgt, daß die zu sortierenden Arrays in
globalen Variablen untergebracht werden müssen.
| |
Es gibt Programmiersprachen, die auch lokale Prozeduren
zulassen. Diese sorgen dann dafür, daß die Umgebung einer
lokalen Prozedur auch erhalten bleibt, wenn es eine entsprechende
Referenz auf eine lokale Prozedur gibt. Beispiele dafür sind
Scheme und Perl.
| |
In Sprachen mit objekt-orientierten Techniken wird das
Problem typischerweise anders gelöst. In Oberon geschieht
dies durch sogenannte Typ-Erweiterungen. Mehr dazu im
nächsten Semester.
|
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005 |