JUMP und CALL

Wie ein JUMP-und CALL-Anweisung anders? Wie bezieht es sich auf die höhere Ebene Konzepte wie die GOTO-Funktion oder eine Prozedur aufrufen? (Bin ich richtig in den Vergleich?)

Dies ist, was ich denke:

SPRINGEN oder SPRINGEN ist eine übertragung der Kontrolle an einen anderen Speicherort und die Kontrolle nicht automatisch an den Punkt zurückkehren, von wo aus es aufgerufen wird.

Auf der anderen Seite, ein ANRUF oder eine Prozedur/Funktion aufrufen, zurück zum Punkt, von wo aus es aufgerufen wird. Aufgrund dieses Unterschieds in Ihrer Natur, Sprachen in der Regel Gebrauch machen von einem stack und stack-frame geschoben wird, zu "erinnern", die Lage wieder zu kommen, für jedes Verfahren genannt. Dieses Verhalten gilt auch für rekursive Prozeduren zu. Im Fall von tail-Rekursion, es ist jedoch nicht notwendig, um "push" einen stack-frame für jeder nennen.

Ihre Antworten und Kommentare werden sehr geschätzt.

InformationsquelleAutor der Frage | 2009-02-07

Schreibe einen Kommentar