Trampolin (Computerwissenschaft)

In der Computerprogrammierung hat das Worttrampolin mehrere Bedeutungen, und wird allgemein mit Sprüngen vereinigt (d. h., sich zu verschiedenen Codepfaden bewegend).

Programmierung der niedrigen Stufe

Trampoline (manchmal gekennzeichnet als indirekte Sprung-Vektoren) sind Speicherpositionen, die Adressen halten, die hinweisen, Dienstroutinen, Eingabe/Ausgabe-Routinen, usw. Ausführungssprünge ins Trampolin zu unterbrechen, und springt dann sofort, oder Schläge, folglich der Begriff Trampolin aus. Sie haben vielen Nutzen:

Zentraleinheiten

  • Trampolin kann verwendet werden, um die Beschränkungen zu überwinden, die durch eine Zentraleinheitsarchitektur auferlegt sind, die annimmt, immer Vektoren in festen Positionen zu finden.
  • Wenn ein Betriebssystem auf einer SMP Maschine gestartet wird, wird nur ein Verarbeiter, der Stiefelstrippe-Verarbeiter, aktiv sein. Nachdem das Betriebssystem sich konfiguriert hat, wird es die anderen Verarbeiter beauftragen, zu einem Stück des Trampolin-Codes zu springen, der die Verarbeiter initialisieren und auf das Betriebssystem warten wird, um anzufangen, Fäden auf ihnen zu planen.

In C und C ++

Wenn
  • man Stücke des Codes mit der unvereinbaren rufenden Vereinbarung verbindet, wird ein Trampolin verwendet, um die Tagung des Anrufers in die Tagung des callee umzuwandeln.
  • In eingebetteten Systemen sind Trampoline kurze Schnipsel des Codes, die andere Schnipsel des Codes in Gang bringen. Zum Beispiel, anstatt Unterbrechungsdressierern völlig auf der Zusammenbau-Sprache zu schreiben, ist eine andere Auswahl, Unterbrechungsdressierern größtenteils in C zu schreiben, und ein kurzes Trampolin zu verwenden, um die mit dem Zusammenbau sprachige Unterbrechungsbenennen-Tagung in den C das Benennen der Tagung umzuwandeln.
Wenn
  • man eine Rückrufaktion zu einem System passiert, das annimmt, eine C-Funktion zu nennen, aber man will, dass es die Methode-Funktion eines besonderen Beispiels eines Gegenstands durchführt, der in C ++ geschrieben ist, verwendet man ein kurzes Trampolin, um die C funktionsnennende Tagung zum C ++ Methode nennende Tagung umzuwandeln. Eine Methode, solch ein Trampolin zu schreiben, soll einen thunk verwenden. Eine andere Methode ist, einen allgemeinen Zuhörer zu verwenden.
  • Im Ziel-C ist ein Trampolin ein Gegenstand, der durch eine Methode zurückgegeben ist, die wie ein Delegierter handelt, eine Nachricht auf einem anderen Gegenstand "drängend".
  • Im GCC Bearbeiter bezieht sich Trampolin auf eine Technik, um Zeigestöcke zu verschachtelten Funktionen durchzuführen. Das Trampolin ist ein kleines Stück des Codes, der im Fluge auf dem Stapel gebaut wird, wenn die Adresse einer verschachtelten Funktion genommen wird. Das Trampolin stellt den statischen Verbindungszeigestock auf, der der verschachtelten Funktion erlaubt, auf lokale Variablen der Umgeben-Funktionen zuzugreifen. Der Funktionszeigestock ist dann einfach die Adresse des Trampolins. Das vermeidet, "fette" Funktionszeigestöcke für verschachtelte Funktionen verwenden zu müssen, die sowohl die Codeadresse als auch die statische Verbindung tragen.

Hohe Programmierung

  • Verwendet in einigen Lispeln-Durchführungen ist ein Trampolin eine Schleife, die wiederholend Thunk-Zurückbringen-Funktionen (Verlängerung passierender Stil) anruft. Ein einzelnes Trampolin ist genügend, um alle Kontrollübertragungen eines Programms auszudrücken; ein so ausgedrücktes Programm ist trampolined, oder im trampolined Stil; das Umwandeln eines Programms zum trampolined Stil ist trampolining. Funktionen von Trampolined können verwendet werden, um mit dem Schwanz rekursive Funktion durchzuführen, ruft Stapel-orientierte Programmiersprachen herbei.
  • In Java verweist ein Trampolin auf das Verwenden des Nachdenkens zu vermeiden, innere Klassen zum Beispiel in Ereignis-Zuhörern zu verwenden. Die Zeit oben eines Nachdenken-Anrufs wird gegen den Raum oben einer inneren Klasse getauscht. Trampoline in Java schließen gewöhnlich die Entwicklung von GenericListener ein, um Ereignisse zu einer Außenklasse zu passieren.

Andere Sprachen


Yuzawa, Akita / Ōmagari, Akita
Impressum & Datenschutz