Sprungtabelle
aus Wikipedia, der freien Enzyklopädie
Eine Sprungtabelle (engl. Jump Table) ist eine Software-Konstruktion, um eine bestimmte Auswahl von Funktionen (aus einem Betriebssystem oder aus einer Funktionsbibliothek) bequem und kompatibilitätssicher aufrufen zu können. Dazu sind die Aufrufe (oder manchmal auch nur die nackten Funktionsadressen) mit konstanter Länge hintereinander wie in einer Tabelle im Speicher angeordnet. Sie bestehen typischerweise aus einfachen Sprungbefehlen an die Stelle im ROM oder innerhalb der Funktionsbibliothek, wo der eigentliche Programmcode steht. Auf diese Weise werden mehrere Zwecke gleichzeitig erfüllt:
- Man erreicht dadurch Kompatibilität zwischen aufeinanderfolgenden Softwareversionen: Auch wenn sich der eigentliche Code einer oder mehrerer Funktionen verändert und sich die Adresslage der Funktionseinsprünge dadurch ändert, wird nur die Adresse in den Sprungbefehlen der Sprungtabelle geändert, wogegen die Anwendungssoftware, die diese Sprungtabelle benutzt, eben nicht angepasst werden muss.
- Man kann diese Funktionen praktisch über eine Nummer (ihren Index innerhalb der Tabelle) ansprechen, was die Programmierung in bestimmten Bereichen vereinfacht.
Manche Mikroprozessoren unterstützen solche Konstrukte auch durch spezielle Befehle, die solche indizierten Sprünge implementieren.
Beispiele:
- Das Betriebssystem des Commodore-PET 2001 und seiner Nachfolger bis hin zum C64 hatte am Ende seines ROMs so eine Sprungtabelle für die wichtigsten Betriebssystemaufrufe.
- Die Shared Libraries (Funktionsbibliotheken) des AmigaOS verfügen alle an ihrem Anfang über so eine Sprungtabelle, über die standardmäßig alle Aufrufe ihrer Funktionen erfolgen.