it-swarm.com.de

Was bedeutet Backpatching?

Was bedeutet backpatching? Bitte veranschaulichen Sie es mit einem einfachen Beispiel.

22
saplingPro

Back Patching bezieht sich normalerweise auf das Auflösen von Vorwärtsverzweigungen, die in den Code eingefügt wurden, z. bei 'if'-Anweisungen, wenn der Wert des Ziels bekannt wird, z. wenn die schließende Klammer oder das passende "else" gefunden wird.

19
user207421

In der Zwischencodegenerierungsstufe eines Compilers müssen wir häufig "Sprung" -Anweisungen an Stellen im Code ausführen, die noch nicht existieren. Um diese Art von Fällen zu behandeln, wird für diese Anweisung ein Zieletikett eingefügt. Ein Marker, der nicht in der Produktionsregel vorhanden ist, bewirkt, dass die semantische Aktion anspricht. 

11
Mostafiz Rahman

Einige Anweisungen wie Bedingungsanweisungen, while usw. werden beim Erzeugen des Zwischencodes als Bündel von "if" - und "goto" -Syntax dargestellt. Das Problem ist, dass diese "goto" -Anweisungen kein _ haben.gültige Referenz am Anfang (wenn der Compiler beginnt, den Quellcode Zeile für Zeile zu lesen - AKA 1st pass). Nachdem jedoch der gesamte Quellcode zum ersten Mal gelesen wurde, werden die Bezeichnungen und Referenzen, auf die diese "goto" s zeigen, bestimmt.

Das Problem ist, dass wir den Compiler so einrichten können, dass er das X in den "goto X" -Anweisungen in einem einzigen Durchgang ausfüllen kann oder nicht? Die Antwort lautet ja.

Wenn wir kein Backpatching verwenden, kann dies durch eine Analyse des Quellcodes mit zwei Durchgängen erreicht werden. Durch Backpatching können wir jedoch ein separate list erstellen, das ausschließlich für "goto" -Anweisungen gedacht ist. Da es nur in einem Durchlauf ausgeführt wird, füllt der erste Durchgang das X in den "goto X" -Anweisungen nicht, da der Kompressor wo das X ist auf den ersten Blick nicht kennt. Es speichert jedoch X in dieser exklusiven Liste und nachdem der gesamte Code durchgegangen ist und festgestellt wurde, dass X der X ist durch diese Adresse oder Referenz ersetzt. 

3
alighdev

Backpatching: Die Syntax-gerichtete Definition kann in zwei oder mehr Durchläufen implementiert werden (wir haben sowohl synthetisierte Attribute als auch vererbte Attribute).

Baue zuerst den Baum.

Gehen Sie den Baum in der ersten Reihenfolge.

Die Hauptschwierigkeit bei der Codegenerierung in einem Durchlauf besteht darin, dass wir das Ziel eines Zweigs möglicherweise nicht kennen, wenn wir Code für den Fluss von Steueranweisungen generieren

Backpatching ist die Technik, mit der dieses Problem umgangen werden kann .. _. Verzweigungsbefehle mit leeren Zielen generieren Wenn das Ziel bekannt ist, geben Sie die Bezeichnung der Verzweigungsbefehle ein (Backpatching).

3

Beim Backpaching werden leere Einträge für die goto-Anweisung gelassen, bei denen die Zieladresse bei der Vorwärtsübertragung im ersten Durchlauf nicht bekannt ist und diese im zweiten Durchlauf unbekannt sind.

2
Anu Goit

backpatching ist ein Prozess, bei dem das Operandenfeld einer Anweisung, die eine Vorwärtsreferenz enthält, anfänglich leer gelassen wird. Die Adresse des Vorwärtsreferenzsymbols wird in dieses Feld eingefügt, wenn seine Definition im Programm gefunden wird.

1
rubal mahal

Back Patching ist die Aktivität des Auffüllens der nicht spezifizierten Informationen der Labels Mithilfe des entsprechenden semantischen Ausdrucks während des Codegenerierungsprozesses.

Es wird gemacht von:

  1. boolescher Ausdruck.
  2. fluss der Kontrollanweisung.
0
shubham mittal